View a markdown version of this page

概要 - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

概要

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 を参照します。