AWS Elastic Beanstalk
開発者ガイド

Elastic Beanstalk を使用した Blue-Green Deployment

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

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

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

Blue-Green Deployment を実行するには

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

  2. 現在の環境のクローンを作成、または希望のプラットフォームのバージョンを実行する新しい環境を起動します。

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

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

  5. 新しい環境のダッシュボードの [Actions] を選択してから、[Swap Environment URLs] を選択します。

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

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

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


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

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