SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

これだけは押さえておきたい! AWSサービス最新アップデート

re:Invent 2022で発表された、ソフトウェア開発に役立つAWSの新サービス・新アップデート

第6回 CodeCatalyst、Application Composer、Blue/Green Deployments

データベースでのBlue/Greenデプロイを実現 AWS RDS 「Blue/Green Deployments」

 最後に紹介するのは、AWS RDSのデータベースの更新、変更をBlue/Greenデプロイする機能「Blue/Green Deployments」です。

 Blue/Greenデプロイは、デプロイ手法の一つで、デプロイ前、デプロイ後の2環境を利用して安全に素早くデプロイする手法です。これまで、RDSに対して同じようにデプロイする場合は、ユーザ側でデプロイ後相当となるようなRDSインスタンスを構築し、アプリケーションの接続先DBを切り替える等の対応が必要でした。

 今回、Blue/Green Deploymentsの機能がリリースされたことにより、AWSが上記のような機能を管理、実行してくれるようになり、ユーザ側の運用負荷が低減されます。

 本機能の主な利点は以下です。

  • データベースの変更を本番環境からステージング環境に自動的に複製可能
  • Blue/Green間のスイッチオーバは1分以内で実施可能
  • スイッチオーバ中のデータ損失を排除
  • スイッチオーバにあたり、アプリケーションの変更が不要

 AWSコンソールからBlue/Greenデプロイのリソースを作成すると、運用系で動いていたインスタンスがBlue相当としてマークされ、Green相当のインスタンスが新規作成されます。デプロイ時には、Green相当のインスタンスが運用系のBlueインスタンスへ昇格することで、アプリケーションは接続先データベースのことを意識することなく切り替えが完了します。

Blue/Green Deploymentsの画面
Blue/Green Deploymentsの画面

 AWS公式ドキュメントにには、使用にあたり考慮すべき一定の制約事項について紹介されています。一例ですが、以下には注意が必要です。

必要に応じて遅延読み込み処理を実施する必要がある。

 Green環境が作成された後、DBインスタンスはバックグラウンドでデータをロードし続けます。ロードされていないデータに対してアプリケーションからアクセスされると、該当データをS3からダウンロードしてロードするため、パフォーマンスに影響が出る可能性があります。アプリケーションからアクセスさせる前に、全表スキャン(`SELECT *`等)を実行しておくことで、事前にすべてのデータをS3からダウンロードし、影響を抑えることが可能です。

 Blue/Greenデプロイに限らず、RDSのリストアなどでも同じ対応でパフォーマンスの改善が可能です。

Blue/Greenデプロイ利用時のスキーマ変更は、レプリケーションに互換性のある操作のみを行う必要がある。

 カラム名の変更やテーブル名の変更などのレプリケーションに互換性のない操作を行うと、グリーン環境へのレプリケーションが中断されるため、注意が必要です。

次回について

 次回以降もAWS re:Invent 2022で発表のあったサービスアップデートを紹介していきます。ぜひご覧ください!

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
これだけは押さえておきたい! AWSサービス最新アップデート連載記事一覧

もっと読む

この記事の著者

橋原 朋央(株式会社NTTデータ)(ハシハラ トモヒロ)

 2017年にNTTデータに入社。 入社以来、小売・流通業界や金融業界に対して、パブリッククラウドを活用したシステム構築、運用に携わる。 興味のある領域は、コンテナ、CICD、IaC(Infrastructure as Code)等。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/17281 2023/02/10 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー