メニュー
AWS Elastic Beanstalk
開発者ガイド (API Version 2010-12-01)

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

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

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

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

Blue-Green Deployment を実行するには

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

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

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

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

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

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

     [Swap Environment URL] ウィンドウ
  7. [Swap] を選択します。

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

     [Swap Environment URL] イベント

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