複数のリージョンのターゲット指定
単一のTerraform構成を使用して、複数のリージョンにOracle Cloud Infrastructure (OCI)リソースを作成します。
各リージョンのプロバイダの作成
Terraform構成には単一のOCI Terraformプロバイダ・ブロックのみを含めることができますが、複数のリージョンに構成を適用するには、複数のプロバイダ・ブロックを作成する必要があります。
一般的なOCI Terraformプロバイダ・ブロックは次のようになります:
provider "oci" {
region = var.region
tenancy_ocid = var.tenancy_ocid
user_ocid = var.user_ocid
fingerprint = var.fingerprint
private_key_path = var.private_key_path
}
ヒント
すべてのパラメータは変数を使用して設定する必要があります。
すべてのパラメータは変数を使用して設定する必要があります。
単一のTerraform構成内で複数のリージョンを使用する場合は、複数のプロバイダが必要です。各プロバイダに別名を指定する必要があります。例:
provider "oci" {
alias = "home"
region = var.region
tenancy_ocid = var.tenancy_ocid
user_ocid = var.user_ocid
fingerprint = var.fingerprint
private_key_path = var.private_key_path
}
provider "oci" {
alias = "region2"
region = var.region2
tenancy_ocid = var.tenancy_ocid
user_ocid = var.user_ocid
fingerprint = var.fingerprint
private_key_path = var.private_key_path
}
Oracle Cloud Infrastructureにサインアップすると、1つのリージョン(ホーム・リージョン)にテナンシが作成されます。ホーム・リージョンには特別なプロパティがあります。たとえば、IAMリソースはホーム・リージョンにのみ作成できます。そのため、home
などの適切な別名でそのリージョンを指定する必要があります。ユーザーが必要なリージョンに構成を簡単にマップできるように、他のリージョンには単純な別名(region2
など)を使用します。
ノート
特定のリージョン(us-phoenix-1、us-ashburn-1など)は、
特定のリージョン(us-phoenix-1、us-ashburn-1など)は、
region
またはalias
フィールドにハードコードされません。リソースのプロビジョニング
リージョンにリソースをプロビジョニングするには、リソースに別名のプロバイダ名を指定します。
例:
resource "oci_core_instance" "test_instance" {
provider = oci.home
...
}
モジュールと複数のリージョン
通常、モジュールは単一のリージョンのみを使用します。追加のリージョンが必要な場合は、別のモジュールを使用する必要があります。
構成に複数のプロバイダが含まれている場合、次のフォーマットを使用して、モジュールで使用するプロバイダを指定する必要があります:
module "compartments" {
source = "./compartments"
providers = {
oci = "oci.home"
}
}