Elastic Beanstalk のワーカー環境で新環境へ移行する方法を教えてください

Elastic Beanstalk のワーカー環境で新環境へ移行する方法を教えてください

2026.05.05

困っていること

Elastic Beanstalk の ワーカー環境 を新しい環境へ移行したいです。
ワーカー環境では、ウェブサーバー環境のように CNAME スワップを切り替え手段として使えるのかが分かりません。
ワーカー環境で新環境へ切り替える方法を教えてください。

どう対応すればいいの?

Elastic Beanstalk のウェブサーバー環境では、環境の CNAME をスワップすることで、新旧環境を切り替えられます。Blue/Green デプロイメントもこの CNAME スワップ方式で実施します。
一方で ワーカー環境は、ウェブサーバー環境のようにロードバランサー経由でリクエストを受ける構成ではありません。
ワーカー環境にはロードバランサーが含まれず、EC2 インスタンス上のデーモンが SQS キューからメッセージを取得してアプリケーションへ渡します。
このため、ワーカー環境の切り替えは、ウェブサーバー環境のように CNAME スワップでリクエスト先を切り替えるのではなく、送信元アプリケーションの送信先キューと、ワーカー環境が参照するキューを切り替える形で設計するのが適切です。

https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/using-features-managing-env-types.html

バックグラウンドのタスクを処理するウェブアプリケーションのワーカー環境枠には、ロードバランサーは含まれません。

  • ウェブサーバー環境

002
※ 引用: 1

  • ワーカー環境

001
※ 引用: 2

移行方法

ワーカー環境の移行では、新環境を作成したうえで、メッセージ送信先の SQS キューを新環境側へ切り替える方法が考えられます。
移行の流れとしては、例えば以下の手順です。

  1. 新しいワーカー環境を作成する
  2. 新環境用の SQS キューを用意する。※ 既存の SQS キューを関連付けることも可能だが、その場合はワーカー環境側の設定値と SQS 側の設定値の差異に注意
  3. 送信元アプリケーションの送信先を新キューへ変更する
  4. 新環境で正常に処理されることを確認する
  5. 旧キューに残っているメッセージがすべて処理されたことを確認する
  6. 旧環境を削除する

なお、移行期間中に旧環境と新環境で同じ SQS キューを同時に処理させると、どちらの環境がメッセージを取得するかの制御が難しくなるため、新旧でキューを分けて切り替える構成が分かりやすく安全です。
旧環境を残したまま新環境へ移行できるため、新環境で問題が発生した場合は、送信元アプリケーションの送信先を旧キューへ戻すことで切り戻ししやすくなりますので、ご参考ください。

参考資料


AWSテクニカルサポートノートについて

過去にクラスメソッドのAWS総合支援サービスで頂いたお問合せの中から、通常のAWS利用時でも有益になりうる情報をテクニカルサポートチームがTIPSとしてご紹介しています。技術サポートは、無料でご提供しております。詳細は下記ボタンからご覧ください。

クラスメソッドのAWSサポートの詳細を見る

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事