Terraformを使用したインフラストラクチャ・コンポーネントの開発について
ダウンロードしたTerraformモジュールには、様々なインフラストラクチャ・コンポーネントを作成して設定するための個別のスクリプトが含まれています。これらのスクリプトを表示および編集して、作成されるコンポーネントおよび各コンポーネントの特性を理解できます。
Terraformディレクトリのルート・レベルには、様々なサブディレクトリの構成ファイルを参照する主要な構成ファイルmain.tf,
が含まれます。このディレクトリには、Terraform構成ファイルで使用される変数や、Terraformプロバイダ、データ・リソースまたは出力に関する情報を含む変数を定義するファイルも含まれます。さらに、セキュリティ・リストおよびルート表を作成するためのTerraform構成ファイルもルート・レベルに配置されています。
Terraformディレクトリには、modules
ディレクトリがあります。modules
ディレクトリの内容は次のとおりです。
-
bastion
:ベース・ホストの作成に使用されます。 -
compute
: UNIXおよびWindowsのOracle Cloud Infrastructure Computeインスタンスの作成に使用します。 -
dbsystem
: Oracle Cloud Infrastructure Databaseシステムの作成に使用します。 -
filesystem
: Oracle Cloud Infrastructureファイル・ストレージ・ファイル・システムの作成に使用されます。 -
loadbalancer
: Oracle Cloud Infrastructureロード・バランシング・インスタンスの作成に使用されます。 -
network
:仮想クラウド・ネットワーク(VCN )、サブネット、インターネット・ゲートウェイ、サービス・ゲートウェイ、動的ルーティング・ゲートウェイ(DRG)およびネットワーク・アドレス変換(NAT)ゲートウェイなどのネットワーク・リソースの作成に使用されます。
作成するインフラストラクチャ・コンポーネントについて
インフラストラクチャ・コンポーネントを作成する前に、コンポーネントのタイプ、数値および配布に関する入力を指定する必要があります。たとえば、必要なアプリケーション・インスタンスの数、単一の可用性ドメインまたは2つの可用性ドメインのすべてのリソースを作成するかどうか、データベースのエディションとバージョンなどを指定できます。
Terraformディレクトリのルート・レベルでterraform.tfvars
ファイルを使用して、この入力を指定します。terraform.tfvars
ファイルをテキスト・エディタで開き、必要な情報を入力します。このファイルで使用できる推奨値は、ルート・レベルのディレクトリにあるREADME
を参照してください。
デフォルトで、Terraformモジュールは、2つの可用性ドメインにコンポーネントを作成します。これは、terraform.tfvars
ファイルの変数AD
の値によって制御されます。この値を編集することにより、インフラストラクチャ・コンポーネントのホストに使用される可用性ドメインを表示または変更できます。単一の可用性ドメインにコンポーネントを作成する場合、AD
の値をterraform.tfvars
ファイルの必要な可用性ドメイン1, 2, or 3,
に設定します。2つの可用性ドメインにコンポーネントを作成する場合、可用性ドメインの数を指定または変更します。
変更を行わずに、提案されたデフォルト値を使用してTerraform構成ファイルを適用すると、次のインフラストラクチャ・コンポーネントが2つの可用性ドメインに作成されます。
-
名前が
psftvcn
でIPアドレス範囲が172.16.0.0/16.
のVCN -
6つのサブネット、各可用性ドメインに8つ。各サブネットには
/24
CIDRがあります。たとえば、172.16.4.0/24.
サブネット名の末尾に付いた数字は、サブネットが作成された可用性ドメインを示します。-
appsubad1
およびappsubad2
という名前のアプリケーション・サーバーのプライベート・サブネット。 -
Webサーバーのプライベート・サブネット。名前は
websubad1
およびwebsubad2
です。 -
ロード・バランサのプライベート・サブネット。名前は
lbsubad1
およびlbsubad2
です。 -
dbsubad1
およびdbsubad2
という名前のデータベース・システムのプライベート・サブネット。 -
essubad1
およびessubad2
という名前のElasticSearchサーバーのプライベート・サブネット -
toolsssubad1
およびtoolssubad2
という名前のPeopleToolsインスタンスのプライベート・サブネット。 -
fsssubad1
およびfsssubad2
という名前のファイル・システム・サービスのプライベート・サブネット。 -
ベース・ホストのパブリック・サブネット。名前は
bassubad1
およびbassubad2
です。
-
-
次のルート表。
terraform.tfvars
ファイルで指定されたVCNのDNSラベルは、各ルート表の名前の前に付けられます。-
ルールのないデフォルトのルート表。
-
プライベート・ルート表。
psftvcnpvtrt,
は、オブジェクト記憶域トラフィックをサービス・ゲートウェイにルーティングするためのルート・ルールと、NATインスタンスへの他のすべてのトラフィックを持つ表です。 -
インターネット・ゲートウェイにトラフィックをルーティングするルート・ルールを含むパブリック・ルート表
psftvcnpubrt,
。
-
-
次のセキュリティ・リスト:
-
デフォルトのセキュリティ・リスト。
-
アプリケーション・サーバー・サブネットの
AppSecList
という名前のセキュリティ・リスト。 -
ベース・ホストのサブネットのセキュリティ・リストで、名前は
BastionSecList
です。 -
DBSecList
という名前の、データベース・サブネットのセキュリティ・リスト。 -
ESSecList
という名前のElasticSearchサーバー・サブネットのセキュリティ・リスト。 -
FSSSecList
という名前のファイルシステム・サーバー・サブネットのセキュリティーリスト。 -
LBSecList
という名前のロード・バランサ・サブネットのセキュリティ・リスト。 -
PToolsSecList
という名前のPeopleToolsサブネットのセキュリティ・リスト。 -
Webサーバーのサブネットの
WebSecList
という名前のセキュリティ・リスト。
-
-
psftvcnigw.
という名前のインターネット・ゲートウェイterraform.tfvars
ファイルに指定されているDNSラベルは、インターネット・ゲートウェイの名前の前に付けられます。インターネット・ゲートウェイは、クラウド・ネットワークのエッジをインターネットに接続します。VCNからVCN以外のパブリックIPアドレスへのトラフィックは、インターネット・ゲートウェイを経由します。 -
psftvcndrg.
という名前の動的ルーティング・ゲートウェイterraform.tfvars
ファイルに指定されているDNSラベル名は、動的ルーティング・ゲートウェイの名前の前に付けられます。動的ルーティング・ゲートウェイは、IPSec VPNまたはOracle Cloud Infrastructure FastConnectを使用したオンプレミス・ネットワークへのトラフィックや、リモートVCNピーリングを使用した別のリージョンのVCNへのトラフィックなど、インターネット以外のVCNと宛先間のトラフィックのパスを提供します。 -
psftvcnsvcgtw.
という名前のサービス・ゲートウェイterraform.tfvars
ファイルに指定されているDNSラベル名は、サービス・ゲートウェイの名前の前に付けられます。サービス・ゲートウェイを使用すると、VCNが、Oracle Cloud Infrastructure オブジェクト記憶域などの公開Oracle Cloud Infrastructureサービスにアクセスできますが、パブリック・インターネットにVCNを公開することはできません。 -
両方の可用性ドメインに分散されている次のOracle Cloud Infrastructure Computeインスタンス。
terraform.tfvars
ファイルに指定された環境接頭辞が各インスタンス名に接頭辞として付けられ、リージョン、可用性ドメイン番号およびカウントに接尾辞が付加されます。各インスタンスには、関連付けられたブート・ボリュームがあります。-
アプリケーション・サーバー。作成されるアプリケーション・サーバー・インスタンスの数とその形状は、
terraform.tfvars
ファイルに指定された値によって決まります。 -
基本ホスト。
-
-
2つのOracle Cloud Infrastructure Databaseシステム(各可用性ドメインに1つ)Oracle Cloud Infrastructure Databaseシステムの名前、バージョン、エディションなどのプロパティは、
terraform.tfvars
ファイルに指定する値によって決まります。Oracle Cloud Infrastructure Databaseシステムは、データベース・サブネットdbsubad1
およびdbsubad2.
に作成されます。 -
PeopleSoftソフトウェアのステージングに使用されるファイル・システムが1つ作成されます。ファイルシステムは、ファイルシステムのサブネット
fssubad1
に作成されます。ファイル・システムはすべてのOracle Cloud Infrastructure Computeインスタンスにマウントされます。 -
2つのロード・バランサ(各可用性ドメインに1つずつ)
terraform.tfvars
ファイルに指定された環境接頭辞が各ロード・バランサ名に接頭辞として付けられ、リージョンおよびカウントの接尾辞が付加されます。ロード・バランサは、Webサーバーのサブネットwebsubad1
およびwebsubad2.
にあります。ロード・バランサのバックエンド・セットおよびリスナーも作成されます。
Terraformを使用したインフラストラクチャ・コンポーネントの作成
OCIプロバイダとともにTerraformをインストールし、ローカル・システムに環境変数を設定したら、Terraformモジュールを適用してOracle Cloud Infrastructureでインフラストラクチャ・コンポーネントを作成します。
- ローカルシステムで、端末を開くかWindows PowerShellを起動します。Terraformモジュールがあるディレクトリにナビゲートします。
- 入力:
terraform apply
- アクションを確認するプロンプトが表示されたら、
yes.
を入力します。
Apply complete! Resources: 90 added, 0 changed, 0 destroyed.
コマンド出力のOutputs
セクションに、Terraformという形式で、作成されたインスタンスのパブリックおよびプライベートIPアドレスが表示されます。接続先のインスタンスのIPアドレスをメモします。
エラーが発生した場合は、それらのエラーを修正してterraform apply
を再度実行できます。このコマンドを初めて実行したディレクトリと同じディレクトリでこのコマンドを再実行したことを確認します。Terraformでは、コンポーネントの現在の状態をチェックし、存在しないコンポーネントを作成します。ただし、Terraformを別のディレクトリまたは同じTerraformモジュールを持つ別のローカル・システムから実行すると、Terraformではこれが新しい設定として扱われ、様々な構成ファイルに指定されたすべてのリソースが作成されます。別のディレクトリまたはローカル・システムでTerraformを実行して既存のリソースを管理する場合は、既存のディレクトリから新しいディレクトリまたはシステムにTerraform状態ファイルをコピーします。しかし、一般的に、あるシステムまたはディレクトリでTerraformを使用して、別のシステムまたはディレクトリでTerraformによって作成されたコンポーネントを管理することはお薦めできません。