Amazon Web Services ブログ

新機能 – Amazon Aurora と Amazon RDS でのフルマネージド型 Blue/Green Deployments

データベースを更新する場合、ブルー/グリーンデプロイ手法の使用は、ユーザーがリスクとダウンタイムを最小限に抑えるための魅力的なオプションです。この方法でデータベースを更新するには、現在の本番環境 (ブルー環境) とステージング環境 (グリーン環境) の 2 つのデータベース環境が必要です。次に、変更を安全にテストして本番環境にアップグレードできるように、これら 2 つの環境を相互に同期させる必要があります。

Amazon Aurora および Amazon Relational Database Service (Amazon RDS) のお客様は、データベースのクローニングおよびプロモート可能なリードレプリカを使用して、ブルー/グリーンデプロイの自己管理に役立てることができます。ただし、ブルー/グリーンデプロイの自己管理にはコストがかかるだけでなく、構築と管理が複雑になる可能性があります。その結果、お客様が、データベースの更新から得られるメリットよりも可用性を優先し、データベース更新機能の実装を後回しにするケースが見られます。

本日、Amazon RDS Blue/Green Deployments の一般提供を開始しました。これは、MySQL 互換の Amazon Aurora、Amazon RDS for MySQL、および Amazon RDS for MariaDB の新機能で、データベースの更新をより安全、簡単、かつ迅速に行えるようにします。

Blue/Green Deployments を使用すれば、わずか数ステップで、本番環境を反映した、同期されたフルマネージド型のステージング環境を個別に作成できます。ステージング環境では、本番環境のプライマリデータベースとリージョン内リードレプリカのクローンが作成されます。Blue/Green Deployments は、論理レプリケーションを使用して、これら 2 つの環境を同期させます。

わずか 1 分で、データを損失することなく、ステージング環境を新しい本番環境にプロモートできます。スイッチオーバー中、Blue/Green Deployments がブルー環境とグリーン環境への書き込みをブロックするため、グリーン環境がブルー環境に追いついて、データの損失を防ぐことができます。その後、Blue/Green Deployments は、アプリケーションのコードを変更することなく、本番環境のトラフィックを新しくプロモートされたステージング環境にリダイレクトします。

Blue/Green Deployments を使用すると、本番環境のワークロードに影響を与えることなく、メジャーバージョンとマイナーバージョンのアップグレード、スキーマの変更、オペレーティングシステムやメンテナンスの更新などの変更を、ステージング環境に対して加えることができます。

MySQL クラスター用 Blue/Green Deployments の開始方法
AWS マネジメントコンソールで数回クリックするだけで、データベースの更新を開始できます。開始するには、更新が必要なデータベースをコンソールで選択し、[Actions] (アクション) ドロップダウンメニューの [Create Blue/Green Deployment] (ブルー/グリーンデプロイの作成) をクリックします。

ブルー/グリーンデプロイ識別子と、エンジンバージョン、DB クラスターパラメータグループ、グリーンデータベースの DB パラメータグループなど、変更するデータベースの属性を設定できます。Aurora MySQL DB クラスターでブルー/グリーンデプロイを使用するには、DB クラスターパラメータグループの binlog_format パラメータの値を OFF から ROW に変更して、バイナリロギングを有効にする必要があります。

[Create Blue/Green Deployment] (ブルー/グリーンデプロイの作成) を選択すると、新しいステージング環境が作成され、データベースを本番環境用に準備するための自動タスクが実行されます。なお、マルチ AZ 配置のリードレプリカおよび DB インスタンス、ならびにグリーンで有効にした可能性のある Amazon RDS Performance Insights などのその他の機能を含むグリーンデータベースのコストが請求されることになります。

AWS コマンドラインインターフェイス (AWS CLI) でも同じジョブを実行できます。エンジンバージョンのアップグレードは、TargetEngineVersion パラメータを追加し、アップグレードするエンジンバージョンを指定するだけで実行できます。このパラメータは、マイナーバージョンとメジャーバージョンの両方のアップグレードで機能し、Amazon Aurora MySQL 互換では 5.7 などの短いバージョンも受け付けます。

$ aws rds create-blue-green-deployment \
--blue-green-deployment-name my-bg-deployment \
--source arn:aws:rds:us-west-2:1234567890:db:my-aurora-mysql \
--target-engine-version 5.7 \
--region us-west-2 \

作成が完了すると、テストおよび検証の準備が整ったステージング環境が完成し、そのステージング環境を新しい本番環境にプロモートできます。

変更のテストおよび認定が完了したら、[Actions] (アクション) ドロップダウンメニューで [Switch over] (スイッチオーバー) を選択して、グリーンとマークされたステージング環境を新しい本番システムとしてプロモートできます。

これで、グリーンデータベースを本番環境に切り替える準備がほぼ整いました。グリーンデータベースの設定をチェックして、スイッチオーバーの準備が整っていることを検証します。また、タイムアウト設定を設定して、スイッチオーバーの最大制限時間を決定することもできます。Blue/Green Deployments のスイッチオーバーガードレールで、指定した時間を超過する可能性が検出されると、そのスイッチオーバーはキャンセルされるため、環境に対して変更を加えることはありません。スイッチオーバーを開始する場合は、本番環境のトラフィックが少ない、または中程度の時間帯を特定することをお勧めします。

スイッチオーバー後、Blue/Green Deployments が古い本番環境を削除することはありません。必要に応じて、古い本番環境にアクセスし、追加の検証やパフォーマンス/リグレッションテストを行うことができます。なお、古い本番環境が不要になった場合は、ユーザーの責任で削除してください。古い本番インスタンスには、それらが削除されるまで標準の請求料金が適用されます。

今すぐご利用いただけます
Amazon RDS Blue/Green Deployments は、中国を除くすべての AWS 商用リージョンと AWS GovCloud リージョンにおいて、MySQL 互換 5.6 以降の Amazon Aurora、 Amazon RDS for MySQL メジャーバージョン 5.6 以降、および Amazon RDS for MariaDB 10.2 以降で、本日よりご利用いただけます。

詳細については、「Amazon Aurora MySQL デベロッパーガイド」または「Amazon RDS for MySQL ユーザーガイド」をお読みください。ぜひお試しいただいて、AWS re:Post for Amazon RDS または通常の AWS サポートの連絡先を通してフィードバックをお寄せください。

Channy

原文はこちらです。