

# 別の でのリードレプリカの作成AWS リージョン
<a name="USER_ReadRepl.XRgn"></a>

Amazon RDS では、リードレプリカをソース DB インスタンスとは異なる AWS リージョン に作成できます。

![\[クロスリージョンリードレプリカの設定\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/read-replica-cross-region.png)


別の AWS リージョン にリードレプリカを作成して、以下を実行します。
+ 災害対策機能が向上します。
+ ユーザーに近い AWS リージョン への読み取りオペレーションをスケールします。
+ ある AWS リージョン のデータセンターから別の AWS リージョン のデータセンターへの移行が簡単になります。

ソースインスタンスとは異なる AWS リージョン でリードレプリカを作成する作業は、同じ AWS リージョン でレプリカを作成する作業と似ています。AWS マネジメントコンソール の使用、[https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html) コマンドの実行、または [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html) API オペレーションの呼び出しを行うことができます。

**注記**  
ソース DB インスタンスとは異なる AWS リージョン に暗号化されたリードレプリカを作成するには、ソース DB インスタンスを暗号化する必要があります。

**Topics**
+ [リージョンとバージョンの可用性](#USER_ReadRepl.XRgn.RegionVersionAvailability)
+ [クロスリージョンリードレプリカの作成](#ReadRepl.XRgn)
+ [Amazon RDS でのクロスリージョンレプリケーションのしくみ](#USER_ReadRepl.XRgn.Process)
+ [クロスリージョンレプリケーションに関する考慮事項](#USER_ReadRepl.XRgn.Cnsdr)
+ [クロスリージョンレプリケーションのコスト](#USER_ReadRepl.XRgn.Costs)

## リージョンとバージョンの可用性
<a name="USER_ReadRepl.XRgn.RegionVersionAvailability"></a>

機能の可用性とサポートは、各データベースエンジンの特定のバージョン、および AWS リージョン によって異なります。リージョン間レプリケーションによるバージョンとリージョンの可用性の詳細については、「[Amazon RDS でのクロスリージョンリードレプリカでサポートされているリージョンと DB エンジン](Concepts.RDS_Fea_Regions_DB-eng.Feature.CrossRegionReadReplicas.md)」を参照してください。

## クロスリージョンリードレプリカの作成
<a name="ReadRepl.XRgn"></a>

異なる AWS リージョン でソース Db2、MariaDB、Microsoft SQL Server、MySQL、Oracle、または PostgreSQL DB インスタンスからリードレプリカを作成する手順を以下に示します。

### コンソール
<a name="USER_ReadRepl.XRgn.CON"></a>

AWS マネジメントコンソール を使用して、複数の AWS リージョン にわたるリードレプリカを作成できます。

**複数の AWS リージョン にわたるリードレプリカをコンソールで作成するには**

1.  AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、**データベース** を選択します。

1. リードレプリカのソースとして使用する Db2、 MariaDB、Microsoft SQL Server、MySQL、Oracle、または PostgreSQL DB インスタンスを選択します。

1. [**アクション**] で [**リードレプリカの作成**] を選択します。

1. [**DB インスタンス識別子**] に、リードレプリカの名前を入力します。

1. [**送信先リージョン**] を選択します。

1. 使用するインスタンス仕様を選択します。リードレプリカでも同等以上の DB インスタンスクラスとストレージタイプを使用することをお勧めします。

1. 別の AWS リージョン で暗号化されたリードレプリカを作成するには

   1. [**暗号化の有効化**] を選択します。

   1. **[AWS KMS key]** では、作成先 AWS リージョン の KMS キーの AWS KMS key 識別子を選択します。
**注記**  
 暗号化されたリードレプリカを作成するには、ソース DB インスタンスを暗号化する必要があります。DB インスタンスの暗号化については、「[Amazon RDS リソースの暗号化](Overview.Encryption.md)」を参照してください。

1. ストレージの自動スケーリングなど、他のオプションを選択します。

1. [**Create read replica**] を選択します。

### AWS CLI
<a name="USER_ReadRepl.XRgn.CLI"></a>

異なる AWS リージョンでソースの Db2、MariaDB、Microsoft SQL Server、MySQL、Oracle、または PostgreSQL DB インスタンスからリードレプリカを作成するには、[https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html) コマンドを使用できます。この場合、リードレプリカ (作成先のリージョン) が必要な AWS リージョン の [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html) を使用し、ソース DB インスタンスの Amazon リソースネーム (ARN) を指定します。ARN は、Amazon Web Services で作成したリソースを一意に識別します。

例えば、ソース DB インスタンスが US East (N. Virginia) リージョンにある場合、ARN は次の例のようになります。

```
arn:aws:rds:us-east-1:123456789012:db:mydbinstance
```

ARN の詳細については、「[Amazon RDS の Amazon リソースネーム (ARN)](USER_Tagging.ARN.md)」を参照してください。

 ソース DB インスタンスから異なる AWS リージョン にリードレプリカを作成するには、作成先の AWS リージョン で AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html) コマンドを使用します。別の AWS リージョン でリードレプリカを作成するには、次のパラメータが必要です。
+  `--region` – リードレプリカが作成される作成先の AWS リージョン。
+  `--source-db-instance-identifier` – ソース DB インスタンスの DB インスタンス識別子です。この識別子は、コピー元 AWS リージョン の ARN 形式である必要があります。
+  `--db-instance-identifier` – 作成先の のリードレプリカの識別子。AWS リージョン

**Example クロスリージョンリードレプリカの**  
次のコードは、米国西部 (オレゴン) リージョン内のソース DB インスタンスから US East (N. Virginia) リージョン内にリードレプリカを作成します。  
Linux、macOS、Unix の場合:  

```
aws rds create-db-instance-read-replica \
    --db-instance-identifier myreadreplica \
    --region us-west-2 \
    --source-db-instance-identifier arn:aws:rds:us-east-1:123456789012:db:mydbinstance
```
Windows の場合:  

```
aws rds create-db-instance-read-replica ^
    --db-instance-identifier myreadreplica ^
    --region us-west-2 ^
    --source-db-instance-identifier arn:aws:rds:us-east-1:123456789012:db:mydbinstance
```

別の AWS リージョン で暗号化されたリードレプリカを作成するには、次のパラメータも必要です。
+  `--kms-key-id` - 作成先 AWS リージョン でリードレプリカの暗号化に使用する KMS キーの AWS KMS key 識別子。

**Example 暗号化されたクロスリージョンリードレプリカの**  
次のコードは、米国西部 (オレゴン) リージョン内のソース DB インスタンスから US East (N. Virginia) リージョン内に暗号化されたリードレプリカを作成します。  
Linux、macOS、Unix の場合:  

```
aws rds create-db-instance-read-replica \
    --db-instance-identifier myreadreplica \
    --region us-west-2 \
    --source-db-instance-identifier arn:aws:rds:us-east-1:123456789012:db:mydbinstance \
    --kms-key-id my-us-west-2-key
```
Windows の場合:  

```
aws rds create-db-instance-read-replica ^
    --db-instance-identifier myreadreplica ^
    --region us-west-2 ^
    --source-db-instance-identifier arn:aws:rds:us-east-1:123456789012:db:mydbinstance ^
    --kms-key-id my-us-west-2-key
```

`--source-region` オプションは、AWS GovCloud (米国東部) と AWS GovCloud (米国西部) リージョン間で暗号化されたリードレプリカを作成する場合に必要です。`--source-region` には、ソース DB インスタンスの AWS リージョン を指定します。

`--source-region` を指定しない場合、`--pre-signed-url` の値を指定する必要があります。*署名付きの URL* は、ソースの AWS リージョン で呼び出される `create-db-instance-read-replica` コマンドに対する、署名バージョン 4 で署名されたリクエストを含む URL です。`pre-signed-url` オプションの詳細については、*AWS CLI コマンドリファレンス*の「[create-db-instance-read-replica](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html)」を参照してください。

### RDS API
<a name="USER_ReadRepl.XRgn.API"></a>

異なる AWS リージョンでソースの Db2、MariaDB、MySQL、Microsoft SQL Server、Oracle、または PostgreSQL DB インスタンスからリードレプリカを作成するには、Amazon RDS API オペレーション [CreateDBInstanceReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html) を呼び出すことができます。この場合、リードレプリカが必要な AWS リージョン (作成先のリージョン) の [CreateDBInstanceReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html) を呼び出し、ソース DB インスタンスの Amazon リソースネーム (ARN) を指定します。ARN は、Amazon Web Services で作成したリソースを一意に識別します。

ソース DB インスタンスから異なる AWS リージョン に暗号化されたリードレプリカを作成するには、作成先の AWS リージョン で Amazon RDS API の [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html) オペレーションを使用できます。暗号化されたリードレプリカを別の AWS リージョンに作成するには、`PreSignedURL` の値を指定する必要があります。`PreSignedURL` には、リードレプリカが作成されるソース AWS リージョン で呼び出す [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html) オペレーションのリクエストが含まれている必要があります。`PreSignedUrl` の詳細については、「[https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html)」を参照してください。

例えば、ソース DB インスタンスが US East (N. Virginia) リージョンにある場合、ARN は以下のような内容です。

```
arn:aws:rds:us-east-1:123456789012:db:mydbinstance
```

ARN の詳細については、「[Amazon RDS の Amazon リソースネーム (ARN)](USER_Tagging.ARN.md)」を参照してください。

**Example**  

```
https://us-west-2.rds.amazonaws.com/
    ?Action=CreateDBInstanceReadReplica
    &KmsKeyId=my-us-east-1-key
    &PreSignedUrl=https%253A%252F%252Frds.us-west-2.amazonaws.com%252F
         %253FAction%253DCreateDBInstanceReadReplica
         %2526DestinationRegion%253Dus-east-1
         %2526KmsKeyId%253Dmy-us-east-1-key
         %2526SourceDBInstanceIdentifier%253Darn%25253Aaws%25253Ards%25253Aus-west-2%123456789012%25253Adb%25253Amydbinstance
         %2526SignatureMethod%253DHmacSHA256
         %2526SignatureVersion%253D4%2526SourceDBInstanceIdentifier%253Darn%25253Aaws%25253Ards%25253Aus-west-2%25253A123456789012%25253Ainstance%25253Amydbinstance
         %2526Version%253D2014-10-31
         %2526X-Amz-Algorithm%253DAWS4-HMAC-SHA256
         %2526X-Amz-Credential%253DAKIADQKE4SARGYLE%252F20161117%252Fus-west-2%252Frds%252Faws4_request
         %2526X-Amz-Date%253D20161117T215409Z
         %2526X-Amz-Expires%253D3600
         %2526X-Amz-SignedHeaders%253Dcontent-type%253Bhost%253Buser-agent%253Bx-amz-content-sha256%253Bx-amz-date
         %2526X-Amz-Signature%253D255a0f17b4e717d3b67fad163c3ec26573b882c03a65523522cf890a67fca613
    &DBInstanceIdentifier=myreadreplica
    &SourceDBInstanceIdentifier=&region-arn;rds:us-east-1:123456789012:db:mydbinstance
    &Version=2012-01-15						
    &SignatureVersion=2
    &SignatureMethod=HmacSHA256
    &Timestamp=2012-01-20T22%3A06%3A23.624Z
    &AWSAccessKeyId=<&AWS; Access Key ID>
    &Signature=<Signature>
```

## Amazon RDS でのクロスリージョンレプリケーションのしくみ
<a name="USER_ReadRepl.XRgn.Process"></a>

Amazon RDS は、次のプロセスを使用してクロスリージョンリードレプリカを作成します。関係する AWS リージョン とデータベースのデータ量によっては、このプロセスは完了までに数時間かかることがあります。クロスリージョンリードレプリカを作成する際、この情報を使用してプロセスの進行状況を確認できます。

1. Amazon RDS は、ソース DB インスタンスをレプリケーションソースとして設定し始め、ステータスを *modifying* に設定します。

1. Amazon RDS は、作成先の AWS リージョン で指定されたリードレプリカをセットアップし始め、ステータスを *creating* に設定します。

1. Amazon RDS は、ソース AWS リージョン でソース DB インスタンスの自動 DB スナップショットを作成します。DB スナップショット名の形式は、`rds:<InstanceID>-<timestamp>` です。ここで、`<InstanceID>` はソースインスタンスの識別子で、`<timestamp>` はコピーの開始日時です。例えば、`rds:mysourceinstance-2013-11-14-09-24` はインスタンス `mysourceinstance` から `2013-11-14-09-24` に作成されたことを表します。自動 DB スナップショットの作成中、ソース DB インスタンスのステータスが *modifying* のままになり、リードレプリカのステータスが *creating* のままになります。DB スナップショットのステータスは *creating* です。コンソールの DB スナップショットページの進行状況列には、DB スナップショット作成の進行状況が報告されます。DB スナップショットが完成すると、DB スナップショットとソース DB インスタンスの両方のステータスが *available* に設定されます。

1. Amazon RDS は、初期データ転送用のクロスリージョンスナップショットコピーを開始します。スナップショットコピーは、転送先 AWS リージョン の自動スナップショットとして、*creating* のステータスで一覧表示されます。名前はソース DB スナップショットと同じです。DB スナップショットの進行状況列には、コピーの進行状況が示されます。コピーが完了すると、DB スナップショットコピーのステータスが *available* に設定されます。

1. 次に、Amazon RDS はリードレプリカで初期データロード用のコピーされた DB スナップショットを使用します。このフェーズの間、リードレプリカは転送先の DB インスタンスの一覧に、*creating* のステータスで表示されます。ロードが完了すると、リードレプリカのステータスが *available* に設定され、DB スナップショットコピーが削除されます。

1. リードレプリカが available ステータスに達すると、Amazon RDS は、リードレプリカ作成操作が開始されてからソースインスタンスに加えられた変更のレプリケーションから始めます。このフェーズでは、リードレプリカのレプリケーション遅延時間が 0 より大きくなります。

   レプリケーションのラグタイムについては、「[リードレプリケーションのモニタリング](USER_ReadRepl.Monitoring.md)」を参照してください。

## クロスリージョンレプリケーションに関する考慮事項
<a name="USER_ReadRepl.XRgn.Cnsdr"></a>

AWS リージョン 内でレプリケーションを実行する際の考慮事項はすべて、クロスリージョンレプリケーションに適用されます。AWS リージョン 間のレプリケーションには、他にも次の考慮事項が適用されます。
+ ソース DB インスタンスでは、複数の AWS リージョン にクロスリージョンリードレプリカを作成できます。ソース VPC のアクセスコントロールリスト (ACL) のエントリ数に制限があるため、5 つを超えるクロスリージョンリードレプリカの DB インスタンスについては RDS は保証できません。
+ アカウントごとに 1 つの送信先 AWS リージョンに進行中のクロスリージョンリードレプリカリクエストを最大 20 件同時に作成できます。同じ送信先 AWS リージョンに追加のクロスリージョンリードレプリカ作成リクエストを送信するのに、これらのリクエストが完了するのを待機する必要があります。
+ GovCloud (米国東部) と GovCloud (米国西部) のリージョンの間ではレプリケーションできますが、GovCloud (米国) との間ではレプリケーションできません。
+ 以下の RDS エンジンでは、ソース Amazon RDS DB インスタンスが別の Amazon RDS DB インスタンスのリードレプリカでない場合のみ、クロスリージョン Amazon RDS リードレプリカを作成できます。
  + RDS for Db2
  + RDS for SQL Server
  + RDS for Oracle
  + RDS for PostgreSQL バージョン 14.1 未満

  この制限は、RDS for PostgreSQL バージョン 14.1 以降、RDS for MariaDB、RDS for MySQL を実行している DB インスタンスには適用されません。
+ リードレプリカがソースインスタンスとは異なる AWS リージョン にある場合は、高いレベルのラグタイムが発生することが予想されます。リージョンのデータセンター間のネットワークチャネルの方が長くなったために、このようなラグタイムが発生します。
+ クロスリージョンリードレプリカでは、`--db-subnet-group-name` パラメータを指定する create read replica コマンドのいずれかで、同じ VPC の DB サブネットグループを指定する必要があります。
+ 多くの場合、リードレプリカでは、指定された DB エンジンのデフォルトの DB パラメータグループおよび DB オプショングループが使用されます。

  Db2 DB エンジンの場合、レプリカのカスタムパラメータグループを指定する必要があります。BYOL モデルを使用するレプリカの場合、このカスタムパラメータグループには IBM Site ID と IBM Customer ID を含める必要があります。レプリカのカスタムパラメータグループは、AWS マネジメントコンソール、AWS CLI、または RDS API を使用して指定できます。詳細については、「[Db2 の Bring-Your-Own-License (BYOL) の IBM ID](db2-licensing.md#db2-prereqs-ibm-info)」を参照してください。

  MySQL エンジンと Oracle DB エンジンの場合、リードレプリカのカスタムパラメータグループは、AWS CLI コマンド [create-db-instance-read-replica](https://docs.aws.amazon.com//cli/latest/reference/rds/create-db-instance-read-replica.html) の `--db-parameter-group-name` オプションで指定できます。AWS マネジメントコンソール を使用している場合、カスタムパラメータグループを指定することはできません。
+ リードレプリカは、デフォルトのセキュリティグループを使用します。
+ Db2、MariaDB、Microsoft SQL Server、MySQL、Oracle DB の各インスタンスの場合、クロスリージョンリードレプリカのソース DB インスタンスが削除されると、リードレプリカが昇格します。
+ PostgreSQL DB インスタンスの場合、クロスリージョンリードレプリカのソース DB インスタンスが削除されると、レプリケーションのステータスは `terminated` に設定されます。リードレプリカは昇格しません。

  リードレプリカを手動で昇格させるか、削除する必要があります。

### クロスリージョンリードレプリカのリクエスト
<a name="ReadRepl.XRgn.Policy"></a>

ソースリージョンと通信してクロスリージョンリードレプリカの作成をリクエストするには、リクエスタ (IAM ロールまたは IAM ユーザー) がソース DB インスタンスとソースリージョンへのアクセス権を持っている必要があります。

リクエスタの IAM ポリシーの特定の条件により、リクエストが失敗する可能性があります。次の例では、ソース DB インスタンスが 米国東部 (オハイオ) にあり、リードレプリカが US East (N. Virginia) に作成されていることを前提としています。これらの例は、リクエストが失敗する原因となるリクエスタの IAM ポリシー内の条件を示しています。
+ リクエスタのポリシーには、`aws:RequestedRegion` の条件があります。

  ```
  ...
  "Effect": "Allow",
  "Action": "rds:CreateDBInstanceReadReplica",
  "Resource": "*",
  "Condition": {
      "StringEquals": {
          "aws:RequestedRegion": "us-east-1"
      }
  }
  ```

  ポリシーが出典リージョンへのアクセスを許可していないため、リクエストは失敗します。リクエストを正常に実行するには、ソースリージョンとコピー先リージョンの両方を指定します。

  ```
  ...
  "Effect": "Allow",
  "Action": "rds:CreateDBInstanceReadReplica",
  "Resource": "*",
  "Condition": {
      "StringEquals": {
          "aws:RequestedRegion": [
              "us-east-1",
              "us-east-2"
          ]
      }
  }
  ```
+ リクエスタのポリシーでは、ソース DB インスタンスへのアクセスが許可されていません。

  ```
  ...
  "Effect": "Allow",
  "Action": "rds:CreateDBInstanceReadReplica",
  "Resource": "arn:aws:rds:us-east-1:123456789012:db:myreadreplica"
  ...
  ```

  リクエストを正常に実行するには、ソースインスタンスとレプリカの両方を指定します。

  ```
  ...
  "Effect": "Allow",
  "Action": "rds:CreateDBInstanceReadReplica",
  "Resource": [
      "arn:aws:rds:us-east-1:123456789012:db:myreadreplica",
      "arn:aws:rds:us-east-2:123456789012:db:mydbinstance"
  ]
  ...
  ```
+ リクエスターのポリシーが `aws:ViaAWSService` を拒否します。

  ```
  ...
  "Effect": "Allow",
  "Action": "rds:CreateDBInstanceReadReplica",
  "Resource": "*",
  "Condition": {
      "Bool": {"aws:ViaAWSService": "false"}
  }
  ```

  出典リージョンとの通信は、リクエスタに代わって RDS によって行われます。リクエストを正常に実行するには、AWS のサービスからの呼び出しを拒否しないでください。
+ リクエスタのポリシーには、`aws:SourceVpc` または `aws:SourceVpce` の条件があります。

  RDS がリモートリージョンへの呼び出しを行うとき、指定された VPC または VPC エンドポイントからの呼び出しではないため、これらのリクエストは失敗する可能性があります。

リクエストが失敗する原因となる前述の条件のいずれかを使用する必要がある場合は、ポリシーに `aws:CalledVia` とともに 2 番目のステートメントを含めて、リクエストを成功させることができます。例えば、次のように `aws:CalledVia` と `aws:SourceVpce` を使用できます。

```
...
"Effect": "Allow",
"Action": "rds:CreateDBInstanceReadReplica",
"Resource": "*",
"Condition": {
    "Condition" : { 
        "ForAnyValue:StringEquals" : {
          "aws:SourceVpce": "vpce-1a2b3c4d"
        }
     }
},
{
    "Effect": "Allow",
    "Action": [
        "rds:CreateDBInstanceReadReplica"
    ],
    "Resource": "*",
    "Condition": {
        "ForAnyValue:StringEquals": {
            "aws:CalledVia": [
                "rds.amazonaws.com"
            ]
        }
    }
}
```

詳細については、*IAM ユーザーガイド* の 「[IAM のポリシーとアクセス許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)」を参照してください。

### リードレプリカの承認
<a name="ReadRepl.XRgn.Auth"></a>

クロスリージョン DB のリードレプリカ作成リクエストが `success` を返した後、RDS はバックグラウンドでレプリカの作成を開始します。RDS がソース DB インスタンスにアクセスするための承認が作成されます。この承認は、ソース DB インスタンスをリードレプリカにリンクし、RDS が指定されたリードレプリカにのみコピーできるようにします。

 承認は、サービスにリンクされた IAM ロールの `rds:CrossRegionCommunication` アクセス許可を使用して RDS によって検証されます。レプリカが承認されると、RDS はソースリージョンと通信し、レプリカの作成を完了します。

 RDS は、`CreateDBInstanceReadReplica` リクエストによって以前に承認されていない DB インスタンスにアクセスできません。リードレプリカの作成が完了すると、承認は取り消されます。

 RDS は、サービスリンクされたロールを使用して、ソースリージョンでの承認を確認します。レプリケーション作成プロセス中にサービスリンクされたロールを削除すると、作成は失敗します。

詳細については、*IAM ユーザーガイド*の「[サービスにリンクされたロールの使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)」を参照してください。

### AWS Security Token Service 認証情報の使用
<a name="ReadRepl.XRgn.assumeRole"></a>

グローバル AWS Security Token Service (AWS STS) エンドポイントからのセッショントークンは、デフォルトで有効になっている AWS リージョン (商用リージョン) でのみ有効です。`assumeRole` の AWS STS API 操作からの認証情報を使用する場合、出典リージョンがオプトインリージョンである場合は、そのリージョンのエンドポイントを使用します。それ以外の場合、このリクエストは失敗します。これは、認証情報が両方のリージョンで有効である必要があるために発生します。これは、そのリージョンの AWS STS エンドポイントが使用されている場合にのみオプトインリージョンに当てはまります。

グローバルエンドポイントを使用するには、オペレーションで両方のリージョンで有効になっていることを確認します。`Valid in all AWS リージョン` アカウント設定でグローバルエンドポイントを AWS STS に設定します。

 署名付き URL パラメータの認証情報にも同じルールが適用されます。

詳細については、*IAM ユーザーガイド*の 「[AWS リージョン での AWS STS の管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)」を参照してください。

## クロスリージョンレプリケーションのコスト
<a name="USER_ReadRepl.XRgn.Costs"></a>

クロスリージョンレプリケーションから転送されたデータには、Amazon RDS のデータ転送料金が発生します。以下のクロスリージョンレプリケーションアクションでは、ソース AWS リージョン から転送されるデータに対して料金が発生します。
+ リードレプリカを作成すると、Amazon RDS によりソースインスタンスのスナップショットが作成され、リードレプリカ AWS リージョン にスナップショットが転送されます。
+ ソースデータベースのデータに変更が加えられるたびに、Amazon RDS によりソース AWS リージョン からリードレプリカ AWS リージョン にデータが転送されます。

データ転送料金の詳細については、「[Amazon RDS の料金](https://aws.amazon.com/rds/pricing/)」を参照してください。

MySQL および MariaDB インスタンスの場合、作成するクロスリージョンリードレプリカの数を減らすことで、データ転送コストを削減できます。例えば、1 つの AWS リージョン にソース DB インスタンスがあり、別の AWS リージョン に 3 つのリードレプリカが必要であるとします。この場合、ソース DB インスタンスからリードレプリカを 1 つのみ作成します。他の 2 つのレプリカは、ソース DB インスタンスからではなく、最初のリードレプリカから作成します。

例として、ある AWS リージョン に `source-instance-1` がある場合は、次のようにできます。
+ ソースとして `source-instance-1` を指定して、新しい AWS リージョン に `read-replica-1` を作成します。
+ `read-replica-2` から `read-replica-1` を作成します。
+ `read-replica-3` から `read-replica-1` を作成します。

この例では、`source-instance-1` から `read-replica-1` に転送されるデータ対してのみ課金されます。`read-replica-1` から他の 2 つのレプリカに転送されたデータには課金されません。すべて同じ AWS リージョン にあるためです。3 つのレプリカをすべて別の AWS リージョンの `source-instance-1` から直接作成した場合、3 つのレプリカすべてへのデータ転送に課金されます。