

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

# 概要
<a name="overview"></a>

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