

# Amazon Aurora でのブルー/グリーンデプロイの作成
<a name="blue-green-deployments-creating"></a>

RDS は、ブルー環境のトポロジと設定をステージングエリアにコピーします。ブルー DB インスタンスにリードレプリカがある場合、グリーンインスタンスのレプリカとしてコピーされます。すべてのグリーンレプリカに割り当てられたストレージはグリーンプライマリインスタンスと一致し、他のストレージパラメータはブルーレプリカから継承されます。

ブルー/グリーンデプロイを作成するときには、デプロイにコピーする DB クラスターを指定します。選択する DB クラスターは本番 DB クラスターであり、ブルー環境の DB クラスターになります。RDS は、ブルー環境のトポロジを、設定済みの機能とともにステージングエリアにコピーします。この DB クラスターはグリーン環境にコピーされ、RDS はブルー環境の DB クラスターからグリーン環境の DB クラスターへのレプリケーションを設定します。RDS は、DB クラスター内のすべての DB インスタンスもコピーします。

**Topics**
+ [ブルー/グリーンデプロイの準備](#blue-green-deployments-creating-preparing)
+ [ブルー/グリーンデプロイを作成するときの変更を指定](#blue-green-deployments-creating-changes)
+ [ブルー/グリーンデプロイの作成](#blue-green-deployments-creating-create)
+ [ブルー/グリーンデプロイを作成するための設定](#create-blue-green-settings)

## ブルー/グリーンデプロイの準備
<a name="blue-green-deployments-creating-preparing"></a>

Aurora DB クラスターが実行しているエンジンに応じて、ブルー/グリーンデプロイを作成する前に実行する必要がある特定の手順があります。

**Topics**
+ [ブルー/グリーンデプロイ用 Aurora MySQL DB クラスターの準備](#blue-green-deployments-creating-preparing-mysql)
+ [ブルー/グリーンデプロイ用 Aurora PostgreSQL DB クラスターの準備](#blue-green-deployments-creating-preparing-postgres)
+ [ブルー/グリーンデプロイ用 Aurora Global Database DB クラスターの準備](#blue-green-deployments-creating-preparing-agd)

### ブルー/グリーンデプロイ用 Aurora MySQL DB クラスターの準備
<a name="blue-green-deployments-creating-preparing-mysql"></a>

Aurora MySQL DB クラスターのブルー/グリーンデプロイを作成する前に、[バイナリログ](USER_LogAccess.MySQL.BinaryFormat.md) (`binlog_format`) がオンになっているカスタム DB クラスターパラメータグループにクラスターを関連付ける必要があります。ブルー環境からグリーン環境へのレプリケーションには、バイナリログが必要です。どのバイナリログ形式でも使用できますが、複製の不整合のリスクを減らすには、`ROW` をお勧めします。カスタム DB クラスターパラメータグループの作成とパラメータの設定については、「[Amazon Aurora DB クラスターの DB クラスターパラメータグループ](USER_WorkingWithDBClusterParamGroups.md)」を参照してください。

**注記**  
バイナリログを有効にすると、DB クラスターへの書き込みディスク I/O 操作の回数が増えます。`VolumeWriteIOPs` CloudWatch メトリクスを使用して、IOPS の使用状況をモニタリングできます。

バイナリロギングを有効にした後は、必ず DB クラスターを再起動して変更を有効にしてください。ブルー/グリーンデプロイでは、ライターインスタンスが DB クラスターパラメータグループと同期している*必要があり*、同期していない場合は作成に失敗します。詳細については、「[Aurora クラスター内の DB インスタンスの再起動](aurora-reboot-db-instance.md)」を参照してください。

さらに、バイナリログファイルが消去されないように、バイナリログの保持期間を `NULL` 以外の値に変更することをお勧めします。詳細については、「[バイナリログ構成の設定と表示](mysql-stored-proc-configuring.md)」を参照してください。

### ブルー/グリーンデプロイ用 Aurora PostgreSQL DB クラスターの準備
<a name="blue-green-deployments-creating-preparing-postgres"></a>

Aurora PostgreSQL DB クラスターのブルー/グリーンデプロイを作成する前に、必ず以下を実行してください。
+ クラスターを、論理レプリケーション (`rds.logical_replication`) が有効になっているカスタム DB クラスターパラメータグループに関連付けます。ブルー環境からグリーン環境へのレプリケーションには、論理レプリケーションが必要です。

  論理レプリケーションを有効にする場合は、`max_replication_slots`、`max_logical_replication_workers`、`max_worker_processes` などの特定のクラスターパラメータも調整する必要があります。論理レプリケーションを有効にしてこれらのパラメータを調整する手順については、「[Aurora PostgreSQL DB クラスターの論理レプリケーションの設定](AuroraPostgreSQL.Replication.Logical.Configure.md)」を参照してください。

  また、`synchronous_commit` パラメータが `on` に設定されていることも確認してください。

  必要なパラメータを設定したら、変更が有効になるように DB クラスターを再起動します。ブルー/グリーンデプロイでは、ライターインスタンスが DB クラスターパラメータグループと同期している*必要があり*、同期していない場合は作成に失敗します。詳細については、「[Aurora クラスター内の DB インスタンスの再起動](aurora-reboot-db-instance.md)」を参照してください。
+ DB クラスターがブルー/グリーンデプロイと互換性のあるバージョンの Aurora PostgreSQL を実行していることを確認します。互換性のあるバージョンの一覧については、「[Aurora PostgreSQL によるブルー/グリーンデプロイ](Concepts.Aurora_Fea_Regions_DB-eng.Feature.BlueGreenDeployments.md#Concepts.Aurora_Fea_Regions_DB-eng.Feature.BlueGreenDeployments.apg)」を参照してください。
+ DB クラスターのすべてのテーブルにプライマリキーがあることを確認します。PostgreSQL の論理レプリケーションでは、プライマリキーのないテーブルに対する UPDATE または DELETE オペレーションは許可されません。

### ブルー/グリーンデプロイ用 Aurora Global Database DB クラスターの準備
<a name="blue-green-deployments-creating-preparing-agd"></a>

Aurora Global Database DB クラスターのブルー/グリーンデプロイを作成する前に、次の点に注意してください。
+ すべてのオペレーションは、グローバルデータベースのライタークラスターと同じリージョンから開始する必要があります。
+ パラメータグループ設定:
  + グリーン環境は、指定した新しいパラメータグループまたはブルークラスターと同じパラメータグループ (デフォルト) を使用します。
  + カスタムパラメータグループはグリーン環境にコピーされます。
  + 指定されたパラメータグループがセカンダリリージョンに存在しない場合、セカンダリリージョンのデフォルトのパラメータグループがグリーン環境に使用されます。

## ブルー/グリーンデプロイを作成するときの変更を指定
<a name="blue-green-deployments-creating-changes"></a>

ブルー/グリーンデプロイを作成するときに、グリーン環境の DB クラスターに次の変更を加えることができます。

デプロイ後に、グリーン環境の DB クラスターとその DB インスタンスに他の変更を加えることができます。例えば、より高いエンジンバージョンまたは別のパラメータグループを指定できます。

DB クラスターの変更の詳細については、「[Amazon Aurora DB クラスターの変更](Aurora.Modifying.md)」を参照してください。

**Topics**
+ [より高いエンジンバージョンを指定する](#blue-green-deployments-engine-version)
+ [別の DB パラメータグループを指定する](#blue-green-deployments-parameters)

### より高いエンジンバージョンを指定する
<a name="blue-green-deployments-engine-version"></a>

DB エンジンのアップグレードをテストする場合は、上位のエンジンバージョンを指定できます。スイッチオーバー時に、データベースは指定したメジャーまたはマイナー DB エンジンバージョンにアップグレードされます。

### 別の DB パラメータグループを指定する
<a name="blue-green-deployments-parameters"></a>

DB クラスターで使用されているものとは異なる DB クラスターパラメータグループを指定します。パラメータの変更がグリーン環境の DB クラスターにどのように影響するかをテストしたり、アップグレードの場合に新しいメジャー DB エンジンバージョンのパラメータグループを指定したりできます。

別の DB クラスターパラメータグループを指定した場合、指定されたパラメータグループがグリーン環境内の DB クラスターに関連付けられます。別の DB クラスターパラメータグループを指定しなかった場合、グリーン環境の DB クラスターはブルー DB クラスターと同じパラメータグループに関連付けられます。

## ブルー/グリーンデプロイの作成
<a name="blue-green-deployments-creating-create"></a>

ブルー/グリーンデプロイは、AWS マネジメントコンソール、AWS CLI、または RDS API を使用して作成できます。

### コンソール
<a name="blue-green-deployments-creating-console"></a>

**ブルー/グリーンデプロイを作成するには**

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

1. ナビゲーションペインで、**[Databases]** (データベース) を選択し、グリーン環境にコピーする DB クラスターを選択します。

1. **[アクション]** で **[ブルー/グリーンデプロイを作成]** を選択します。

   **[ブルー/グリーンデプロイを作成]** ページが表示されます。  
![\[ブルー/グリーンデプロイを作成する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/images/blue-green-deployment-create-aurora.png)

1. ブルーデータベース識別子を確認します。ブルー環境で予期される DB インスタンスに一致することを確認します。一致しない場合は、**[Cancel]** (キャンセル) を選択します。

1. **ブルー/グリーンデプロイ名**として、ブルー/グリーンデプロイの名前を入力します。

1. 残りのセクションで、グリーン環境の設定を指定します。各設定の詳細については、「[ブルー/グリーンデプロイを作成するための設定](#create-blue-green-settings)」を参照してください。

   グリーン環境のデータベースには、デプロイ後に他の変更を加えることができます。

1. **[作成]** を選択します。

### AWS CLI
<a name="blue-green-deployments-creating-cli"></a>

AWS CLI を使用してブルー/グリーンデプロイを作成するには、[create-blue-green-deployment](https://docs.aws.amazon.com/cli/latest/reference/rds/create-blue-green-deployment.html) コマンドを使用します。利用できるすべてのオプションについては、「[ブルー/グリーンデプロイを作成するための設定](#create-blue-green-settings)」を参照してください。

**Example**  
Linux、macOS、Unix の場合:  

```
aws rds create-blue-green-deployment \
    --blue-green-deployment-name aurora-blue-green-deployment \
    --source arn:aws:rds:us-east-2:123456789012:cluster:auroradb \
    --target-engine-version 8.0 \
    --target-db-cluster-parameter-group-name mydbclusterparametergroup
```
Windows の場合:  

```
aws rds create-blue-green-deployment ^
    --blue-green-deployment-name aurora-blue-green-deployment ^
    --source arn:aws:rds:us-east-2:123456789012:cluster:auroradb ^
    --target-engine-version 8.0 ^
    --target-db-cluster-parameter-group-name mydbclusterparametergroup
```

### RDS API
<a name="blue-green-deployments-creating-api"></a>

Amazon RDS API を使用してブルー/グリーンデプロイを作成するには、[https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateBlueGreenDeployment.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateBlueGreenDeployment.html) 操作を使用します。各オプションの詳細については、「」を参照してください。[ブルー/グリーンデプロイを作成するための設定](#create-blue-green-settings)

## ブルー/グリーンデプロイを作成するための設定
<a name="create-blue-green-settings"></a>

次の表は、ブルー/グリーンデプロイを作成するときに選択できる設定を示しています。AWS CLI オプションの詳細については、「[create-blue-green-deployment](https://docs.aws.amazon.com/cli/latest/reference/rds/create-blue-green-deployment.html)」を参照してください。RDS API パラメータの詳細については、「[CreateBlueGreenDeployment](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateBlueGreenDeployment.html)」を参照してください。


| コンソール設定 | 設定の説明 | CLI オプションと RDS API パラメータ | 
| --- | --- | --- | 
|  **ブルー/グリーンデプロイ識別子**  |  ブルー/グリーンデプロイの名前。  |  **CLI オプション:**  `--blue-green-deployment-name` **API パラメータ:**  `BlueGreenDeploymentName`  | 
| ブルーデータベース識別子 |  グリーン環境にコピーするクラスターの識別子。CLI または API を使用するときには、クラスターの Amazon リソースネーム (ARN) を指定します。  |  **CLI オプション:**  `--source` **API パラメータ:** `Source`  | 
|  グリーンデータベースの DB クラスターパラメータグループ  | グリーン環境内のデータベースに関連付けるパラメータグループ。 |  **CLI オプション:**   `--target-db-cluster-parameter-group-name` **API パラメータ:**  `TargetDBClusterParameterGroupName`  | 
|  **グリーンデータベースのエンジンバージョン**  |  グリーン環境のクラスターを指定された DB エンジンバージョンにアップグレードします。 Aurora PostgreSQL DB クラスターを選択する場合は、論理レプリケーションの制限を確認して承認してください。詳細については、「[ブルー/グリーンデプロイの論理レプリケーション固有の制限事項](blue-green-deployments-considerations.md#blue-green-deployments-limitations-postgres)」を参照してください。  |  **CLI オプション:** `--target-engine-version` **RDS API パラメータ:** `TargetEngineVersion`  | 