翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
概要
Terraform プロバイダーは、Terraform がさまざまな APIs。Terraform AWS プロバイダーは、Terraform で AWS infrastructure as code (IaC) を管理するための公式プラグインです。Terraform 構文を AWS API コールに変換して、 AWS リソースを作成、読み取り、更新、削除します。
AWS プロバイダーは、認証、Terraform 構文の AWS API コールへの変換、および でのリソースのプロビジョニングを処理します AWS。Terraform providerコードブロックを使用して、Terraform が AWS API とのやり取りに使用するプロバイダープラグインを設定します。複数の AWS プロバイダーブロックを設定して、異なる AWS アカウント およびリージョンのリソースを管理できます。
以下は、エイリアスで複数の AWS プロバイダーブロックを使用して、別のリージョンとアカウントにレプリカを持つ Amazon Relational Database Service (Amazon RDS) データベースを管理する Terraform 設定の例です。プライマリプロバイダーとセカンダリプロバイダーは、異なる AWS Identity and Access Management (IAM) ロールを引き受けます。
# Configure the primary AWS Provider provider "aws" { region = "us-west-1" alias = "primary" } # Configure a secondary AWS Provider for the replica Region and account provider "aws" { region = "us-east-1" alias = "replica" assume_role { role_arn = "arn:aws:iam::<replica-account-id>:role/<role-name>" session_name = "terraform-session" } } # Primary Amazon RDS database resource "aws_db_instance" "primary" { provider = aws.primary # ... RDS instance configuration } # Read replica in a different Region and account resource "aws_db_instance" "read_replica" { provider = aws.replica # ... RDS read replica configuration replicate_source_db = aws_db_instance.primary.id }
この例では、以下のようになっています。
-
最初の
providerブロックは、us-west-1リージョンのプライマリ AWS プロバイダーをエイリアス で設定しますprimary。 -
2 番目の
providerブロックは、us-east-1リージョンのセカンダリ AWS プロバイダーをエイリアス で設定しますreplica。このプロバイダーは、別のリージョンとアカウントにプライマリデータベースのリードレプリカを作成するために使用されます。assume_roleブロックは、レプリカアカウントの IAM ロールを引き受けるために使用されます。は、引き受ける IAM ロールの Amazon リソースネーム (ARN)role_arnを指定し、Terraform セッションの一意の識別子session_nameです。 -
aws_db_instance.primaryリソースは、リージョンのprimaryプロバイダーを使用してプライマリ Amazon RDS データベースを作成しますus-west-1。 -
aws_db_instance.read_replicaリソースは、replicaプロバイダーを使用して、us-east-1リージョンにプライマリデータベースのリードレプリカを作成します。replicate_source_db属性はprimaryデータベースの ID を参照します。