Aurora 用 Amazon RDS ブルー/グリーンデプロイの概要
Amazon RDS ブルー/グリーンデプロイを使用すると、本番環境に実装する前に、データベースに変更を加えてテストできます。ブルー/グリーンのデプロイは、本稼働環境をコピーするステージング環境を作成します。ブルー/グリーンデプロイでは、ブルー環境が現在の本稼働環境です。グリーン環境はステージング環境です。ステージング環境は、論理レプリケーションを使用して現在の本稼働環境と同期したままになります。
本稼働環境のワークロードに影響を与えずに、グリーン環境の Aurora DB クラスターに変更を加えることができます。例えば、DB エンジンのメジャーまたはマイナーバージョンのアップグレード、、またはデータベースパラメータの変更をステージング環境で行うことができます。グリーン環境での変化を徹底的にテストできます。準備ができたら、環境を切り替えてグリーン環境を新しい本稼働環境にプロモートできます。切り替えには通常 1 分もかからず、データが失われることはなく、アプリケーションを変更する必要もありません。
グリーン環境は本稼働環境のトポロジのコピーであるため、DB クラスターとそのすべての DB インスタンスはデプロイにコピーされます。グリーン環境には、DB クラスタースナップショット、パフォーマンスインサイト、拡張モニタリング、Aurora Serverless v2 など、DB クラスターで使用される機能も含まれています。
注記
ブルー/グリーンデプロイは、Aurora MySQL と Aurora PostgreSQL でサポートされています。Amazon RDS の可用性については、「Amazon RDS ユーザーガイド」の「データベースの更新のために Amazon RDS ブルー/グリーンデプロイを使用する」を参照してください。
-
ブルー/グリーンデプロイは、次のバージョンからのみ Babelfish for Aurora PostgreSQL でサポートされています。
15.7 以降のバージョン
16.3 以降のバージョン
トピック
リージョンとバージョンの可用性
機能の可用性とサポートは、各データベースエンジンの特定のバージョン、および AWS リージョン によって異なります。詳細については、「ブルー/グリーンデプロイでサポートされているリージョンと Aurora DB エンジン」を参照してください。
Amazon RDS ブルー/グリーンデプロイを使用する利点
Amazon RDS ブルー/グリーンデプロイを使用すると、セキュリティパッチを最新の状態に保ち、データベースのパフォーマンスを向上させ、短い予測可能なダウンタイムで新しいデータベース機能を導入できます。ブルー/グリーンデプロイでは、エンジンのメジャーバージョンまたはマイナーバージョンのアップグレードなど、データベース更新のリスクとダウンタイムが軽減されます。
ブルー/グリーンデプロイには次の利点があります。
-
本稼働環境に対応したステージング環境を簡単に作成できます。
-
データベースの変更を本稼働環境からステージング環境に自動的にレプリケートします。
-
本稼働環境に影響を与えずに、安全なステージング環境でデータベースの変更をテストします。
-
データベースパッチとシステムアップデートを最新の状態に保ちます。
-
新しいデータベース機能を実装してテストします。
-
アプリケーションを変更することなく、ステージング環境を新しい本稼働環境に切り替えます。
-
組み込みの切り替えガードレールを使用して安全に切り替えることができます。
-
切り替え中のデータ損失をなくします。
-
ワークロードにもよりますが、通常は 1 分以内にすばやく切り替えることができます。
ブルー/グリーンデプロイのワークフロー
Aurora DB クラスターの更新にブルー/グリーンデプロイを使用する場合は、次の主要なステップを実行します。
-
更新が必要な本稼働 DB クラスターを特定します。
次の図は、本稼働 DB クラスターの例を示しています。
-
ブルー/グリーンデプロイを作成します。手順については、ブルー/グリーンデプロイの作成 を参照してください。
以下の図は、ステップ 1 の本稼働環境のブルー/グリーンデプロイの例を示しています。ブルー/グリーンデプロイを作成する際、RDS は Aurora DB クラスターのトポロジと構成全体をコピーしてグリーン環境を作成します。コピーされた DB クラスターと DB インスタンスの名前には
-green-
が付加されます。図のステージング環境には DB クラスター (auroradb-green-random-characters
abc123
) が含まれています。また、DB クラスター内の 3 つの DB インスタンス (auroradb-instance1-green-abc123
、auroradb-instance2-green-abc123
、auroradb-instance3-green-abc123
) も含まれています。ブルー/グリーンデプロイを作成すると、グリーン環境で DB クラスターにより高い DB エンジンのバージョンと別の DB パラメータグループを指定できます。DB クラスター内の DB インスタンスに別の DB パラメータグループを指定することもできます。
RDS は、ブルー環境のプライマリ DB インスタンスからグリーン環境のプライマリ DB インスタンスへのレプリケーションも設定します。
重要
Aurora MySQL バージョン 3 では、ブルー/グリーンデプロイを作成すると、グリーン環境の DB クラスターはデフォルトでは書き込み操作を許可しません。ただし、これは、Aurora マスターユーザーなど、
CONNECTION_ADMIN
権限を持つユーザーには適用されません。この権限を持つユーザーは、read_only
動作をオーバーライドできます。詳細については、「ロールベースの特権モデル」を参照してください。 -
ステージング環境に変更を加えます。
例えば、データベースにスキーマの変更を加えたり、グリーン環境の 1 つ以上の DB インスタンスが使用する DB インスタンスクラスを変更したりすることができます。
DB クラスターの変更については、「Amazon Aurora DB クラスターの変更」を参照してください。
-
ステージング環境をテストします。
テスト中は、グリーン環境のデータベースを読み取り専用に保つことをお勧めします。グリーン環境ではレプリケーションの競合が発生する可能性があるため、書き込み操作を有効にする場合は注意してください。また、スイッチオーバー後に本稼働データベースに意図しないデータが発生する可能性もあります。Aurora MySQL の書き込み操作を有効にするには、
read_only
パラメータを0
に設定し、DB インスタンスを再起動します。Aurora PostgreSQL の場合、セッションレベルでdefault_transaction_read_only
パラメータをoff
に設定します。 -
準備ができたら切り替えて、ステージング環境を昇格させ、新しい本稼働データベース環境にします。手順については、ブルー/グリーンデプロイの切り替え を参照してください。
切り替えによりダウンタイムが発生します。ダウンタイムは通常 1 分未満ですが、ワークロードによってはさらに長くなることもあります。
次の図は、切り替え後の DB クラスターを示しています。
切り替え後、グリーン環境の Aurora DB クラスターが新しい実稼働 DB クラスターになります。現在の本稼働環境の名前とエンドポイントは、新しく昇格した本稼働環境に割り当てられるため、アプリケーションを変更する必要はありません。その結果、本稼働トラフィックが新しい本稼働環境に流れるようになります。ブルー環境の DB クラスターと DB インスタンスは、現在の名前に
-old
を付加することで名前が変更されます (n
は数字です)。例えば、ブルー環境の DB インスタンスの名前がn
auroradb-instance-1
であるとします。切り替え後、DB インスタンス名はauroradb-instance-1-old1
になります。図の例では、切り替え中に次の変更が行われます。
-
グリーン環境の DB クラスター
auroradb-green-abc123
は、auroradb
という名前の付いた本稼働用 DB クラスターになります。 -
グリーン環境の
auroradb-instance1-green-abc123
という名前の DB インスタンスは、本稼働 DB インスタンスauroradb-instance1
になります。 -
グリーン環境の
auroradb-instance2-green-abc123
という名前の DB インスタンスは、本稼働 DB インスタンスauroradb-instance2
になります。 -
グリーン環境の
auroradb-instance3-green-abc123
という名前の DB インスタンスは、本稼働 DB インスタンスauroradb-instance3
になります。 -
ブルー環境の
auroradb
という名前の DB クラスターはauroradb-old1
になります。 -
ブルー環境の
auroradb-instance1
という名前の DB インスタンスはauroradb-instance1-old1
になります。 -
ブルー環境の
auroradb-instance2
という名前の DB インスタンスはauroradb-instance2-old1
になります。 -
ブルー環境の
auroradb-instance3
という名前の DB インスタンスはauroradb-instance3-old1
になります。
-
-
不要になったブルー/グリーンデプロイは削除できます。手順については、ブルー/グリーンデプロイの削除 を参照してください。
切り替え後も以前の本稼働環境は削除されないため、必要に応じてリグレッションテストに使用できます。