Amazon RDS Blue/Green Deployments を使っててハマったこと

AWS

2023.4.10

Topics

はじめに

Blue/Green Deployments でマイナーバージョンアップグレードを実施するために検証をした際に色々とハマったのでまとめました。
結構躓きましたが、今回は調べてもでてこなかったものを 2 つピックアップしています。

Blue/Green Deployments を使ってみた感想としては、かなり便利ですが、リリースされて間もない機能なのでまだ今後に期待という感じです。

なお、本記事では Blue/Green Deployments のユースケースや詳細については解説しません。
ユースケースや詳細については以下記事をご覧ください。

関連記事
Amazon Aurora MySQL で Blue/Green Deployments を使ったマイナーバージョンアップグレードの手順

その 1. RDS Proxy が紐づいていると環境作成できない

RDS Proxy が紐づいている Aurora クラスターに対して、Blue/Green Deployments を作成しようとするとエラーが表示されました。

起動エラーが表示されている

原因:RDS Proxy が Blue/Green Deployments の制限事項になっているから

一応、事前に制限事項で記載はあるのですが、詳細には書かれていなかったです。
そのため、気になってやってみたところ構築段階でエラーになりました。

Blue/Green Deployments は、次の機能ではサポートされていません。

解決方法:RDS Proxy の関連を解除する

本課題は、一時的に RDS Proxy との関連付けを解除するか RDS Proxy を削除することで解決できます。
ただ、解除したり削除すると エンドポイントが変わるのでご注意ください。

deregister-db-proxy-targets — AWS CLI 2.11.10 Command Reference

その 2. Blue 環境が新規で起動できないエンジンバージョンを使用していると Green 環境が構築できない

通常、Blue/Green Deployments 環境を構築すると、数十秒程度で Green 環境が構築されます。
しかし、一時間経っても以下のようなプロビジョニングのステータスから変更されないです。

プロビジョニングされている画面

以下画像のように、Green 環境のクラスターが起動すれば問題ないです。

通常はすぐにグリーン環境が立ち上がる

この罠の厄介なところは、どこにもエラーは表示されずプロビジョニング画面で一生止まっているだけでした。
なので、なにが原因で起動しないのかがまったくもってわかりませんでした。

原因:新規起動できない DB エンジンバージョンを使っていたから

数時間立ってもステータスがなにも変わらないので、AWS サポートに問い合わせして発覚しました。

どうやら、Blue 環境で現在新規起動できない DB エンジンバージョンを使用していることが原因だそうです。

その時は、Aurora 2.09.2 を使っていました。
現時点(2023 年 3 月 17 日)では、以下案内の通り起動できません。

Amazon RDS は、2023 年 4 月 3 日に Aurora MySQL 2.09 (MySQL 5.7 互換) を廃止します。AP-NORTHEAST-1 リージョンに Aurora MySQL バージョン 2.09 を実行している Amazon Aurora MySQL クラスターを 1 つ以上お持ちであるため、このメッセージをお送りしています。
Aurora MySQL インスタンスを Aurora MySQL 2.11.1 以降にアップグレードすることをお勧めします。これらのバージョンには、セキュリティ、安定性、信頼性に関連するソフトウェアの問題に対する修正が含まれているためです [1]。次のいずれかの方法でアップグレードを完了できます。

  1. インプレースアップグレード [2] を完了する。
  2. スナップショットと復元プロセス [3] を使用する。
  3. Amazon RDS Blue/Green デプロイメント [4] を使用して完全に管理できる高可用性ブルー/グリーンアップグレード技術を使用する。

現時点、またこれ以降 MySQL 2.09 以前のバージョンで新しいクラスターを作成できません。ただし、2023 年 4 月 3 日の廃止日までは、既存のインスタンスを引き続き変更できます。

マイナーバージョンアップをするために使うのにバージョンアップが求められるとはジレンマですね。

遅くても数分で Green 環境は立ち上がり、作成中のステータスになります。
なので、10 分程度待っても変化がない場合はなにかしらのエラーが発生していると思われます。

解決方法:今のところなし

AWS サポートに問い合わせたところ問題として認識しているとのことだったので、いずれは改善されるかもしれません。
Blue/Green Deployments 使えばダウンタイムが短くなるので使えなくなる前に定期的にアップグレードすることが対策にはなるかなと思います。

Blue/Green Deployments を使う前提だと解決策はないですが、アップグレードを行うということなら別の方法で実施が可能です。

参考記事

データベースの更新に Amazon RDS Blue/Green デプロイを使用する – Amazon Aurora
新機能 – Amazon Aurora と Amazon RDS でのフルマネージド型 Blue/Green Deployments | Amazon Web Services ブログ

Cold-Airflow

2021年新卒入社。インフラエンジニアです。RDBが三度の飯より好きです。 主にデータベースやAWSのサーバレスについて書く予定です。あと寒いのは苦手です。

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら