ブルー/グリーンデプロイの作成 - Amazon Aurora

ブルー/グリーンデプロイの作成

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

ブルー/グリーンデプロイの準備

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

ブルー/グリーンデプロイ用 Aurora MySQL DB クラスターの準備

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

注記

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

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

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

ブルー/グリーンデプロイ用 Aurora PostgreSQL DB クラスターの準備

Aurora PostgreSQL DB クラスターのブルー/グリーンデプロイを作成する前に、以下を実行するようにしてください。

  • クラスターを、論理レプリケーション (rds.logical_replication) が有効になっているカスタム DB クラスターパラメータグループに関連付けます。ブルー環境からグリーン環境へのレプリケーションには、論理レプリケーションが必要です。

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

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

    必要なパラメータを設定したら、変更が有効になるように DB クラスターを再起動してください。ブルー/グリーンデプロイでは、ライターインスタンスが DB クラスターパラメータグループと同期している必要があり、同期していない場合は作成に失敗します。詳細については、「Aurora クラスター内の DB インスタンスの再起動」を参照してください。

  • DB クラスターがブルー/グリーンデプロイと互換性のあるバージョンの Aurora PostgreSQL を実行していることを確認してください。互換性のあるバージョンの一覧については、「Aurora PostgreSQL によるブルー/グリーンデプロイ」を参照してください。

  • DB クラスターのすべてのテーブルにプライマリキーがあることを確認します。PostgreSQL の論理レプリケーションでは、プライマリキーのないテーブルに対する UPDATE または DELETE オペレーションは許可されません。

  • DB クラスターが外部レプリケーションのソースでもターゲットでもないことを確認します。詳細については、「ブルー/グリーンデプロイの一般的な制約事項」を参照してください。

  • トリガーを使用する場合は、名前が「rds」で始まる pg_catalog.pg_publicationpg_catalog.pg_subscriptionpg_catalog.pg_replication_slots オブジェクトの作成、更新、削除を妨げないようにしてください。

ブルー/グリーンデプロイを作成するときの変更を指定

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

デプロイ後に、グリーン環境の DB クラスターとその DB インスタンスに他の変更を加えることができます。例えば、データベースにスキーマの変更を加えたり。

DB クラスターの変更については、「Amazon Aurora DB クラスターの変更」を参照してください。

より高いエンジンバージョンを指定する

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

別の DB パラメータグループを指定する

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

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

ブルー/グリーンデプロイの作成

ブルー/グリーンデプロイは、AWS Management Console、AWS CLI、または RDS API を使用して作成できます。

ブルー/グリーンデプロイを作成するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/ を開きます。

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

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

    Aurora PostgreSQL DB クラスター を選択する場合は、論理レプリケーションの制限を確認して承認してください。詳細については、「ブルー/グリーンデプロイの PostgreSQL 論理レプリケーションの制約事項」を参照してください。

    [Create Blue/Green Deployment] (ブルー/グリーンデプロイの作成) ページが表示されます。

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

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

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

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

  7. [ステージング環境の作成] を選択します。

AWS CLI を使用してブルー/グリーンデプロイを作成するには、create-blue-green-deployment コマンドを使用します。各オプションの詳細については、「ブルー/グリーンデプロイを作成するための設定」を参照してください。

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

Amazon RDS API を使用してブルー/グリーンデプロイを作成するには、CreateBlueGreenDeployment 操作を使用します。各オプションの詳細については、「ブルー/グリーンデプロイを作成するための設定」を参照してください。

ブルー/グリーンデプロイを作成するための設定

次の表は、ブルー/グリーンデプロイを作成するときに選択できる設定を示しています。AWS CLI オプションの詳細については、「create-blue-green-deployment」を参照してください。RDS API パラメータの詳細については、「CreateBlueGreenDeployment」を参照してください。

コンソール設定 設定の説明 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 エンジンバージョンにアップグレードします。

CLI オプション:

--target-engine-version

RDS API パラメータ:

TargetEngineVersion