AWS Elastic Beanstalk
開発者ガイド

AWS Elastic Beanstalk を使用した Blue-Green Deployment

アプリケーションのバージョンを更新するときに AWS Elastic Beanstalk がインプレース更新を実行するため、アプリケーションはわずかな期間、ユーザーに利用不可になることがあります。Blue-Green Deployment を実行することで、このダウンタイムを回避できます。この場合、個別の環境に新しいバージョンをデプロイしてから、2 つの環境の CNAME を入れ替えて、すぐに新しいバージョンにトラフィックをリダイレクトします。

Blue-Green Deployment では、アプリケーションがプロダクションデータベースを使用する場合、お客様の環境がそのデータベースから独立して実行される必要があります。お客様の環境に Amazon RDS DB インスタンスがアタッチされている場合、データはもう一方の環境に転送されず、元の環境が終了した場合に失われます。

外部(Elastic Beanstalk で管理されていない)Amazon RDS インスタンスに接続するようにアプリケーションを設定する方法の詳細については、「Amazon Relational Database Service で Elastic Beanstalk を使用する」を参照してください。

Blue-Green Deployment を実行するには

  1. Elastic Beanstalk コンソール を開きます。

  2. 現在の環境のクローンを作成、または希望の設定を実行する新しい環境を起動します。

  3. 新しい環境に、新しいアプリケーションバージョンをデプロイします。

  4. 新しい環境で新しいバージョンをテストします。

  5. 新しい環境のダッシュボードの [アクション] を選択してから、[環境 URL のスワップ] を選択します。

  6. [環境名] ドロップダウンリストから、現在の環境を選択します。

     環境 URL のスワップページ
  7. [Swap] を選択します。

Elastic Beanstalk は古い環境と新しい環境の CNAME レコードを交換して、古いバージョンから新しいバージョンに、新しいバージョンから古いバージョンにトラフィックをリダイレクトします。

 環境 URL のスワップイベント

Elastic Beanstalk がスワップ操作を完了した後、古い環境の URL に接続するときに新しい環境が応答することを確認します。DNS の変更が一括適用され、古い DNS レコードの有効期限が切れるまで、古い環境を終了しないでください。DNS サーバーは、ユーザーが DNS レコードで設定したライブ期間(TTL)に基づいてキャッシュから古いレコードを消去するわけではありません。