📝

今から始める Elastic Beanstalk 入門 #6

に公開

今から始める Elastic Beanstalk 入門シリーズの 6 回目です。
各回については以下のリンクからご覧ください。

  1. 今から始める Elastic Beanstalk 入門 #1
  2. 今から始める Elastic Beanstalk 入門 #2
  3. 今から始める Elastic Beanstalk 入門 #3
  4. 今から始める Elastic Beanstalk 入門 #4
  5. 今から始める Elastic Beanstalk 入門 #5

前回は config ファイルについて紹介しました。
今回はワーカー環境について紹介します。

ワーカー環境とは

Elastic Beanstalk worker environments - AWS Elastic Beanstalk

If your AWS Elastic Beanstalk application performs operations or workflows that take a long time to complete, you can offload those tasks to a dedicated worker environment. Decoupling your web application front end from a process that performs blocking operations is a common way to ensure that your application stays responsive under load.

ウェブアプリケーション側で処理するには時間がかかる処理をワーカー環境に任せて、ウェブアプリケーション側とワーカー環境で処理を分担できる機能です。
ウェブアプリケーション側からは SQS キューにメッセージを送信し、ワーカー環境側は SQS キューからメッセージを取得して処理します。

SQS キューからのメッセージの取得、ワーカー環境アプリへのメッセージ送信、SQS キューからのメッセージ削除はワーカー環境のデーモンによって実行されます。
そのため、ワーカー環境のアプリ側で SQS に関する操作は不要で、ワーカー環境ではメッセージにもとづいた処理のみに集中できます。

ワーカー環境のサポートについて

Elastic Beanstalk worker environments - AWS Elastic Beanstalk

The .NET on Windows Server platform doesn't support worker environments.

上述の通り .NET on Windows Server のプラットフォームではワーカー環境はサポートされていません。
そのため、同プラットフォームでワーカー環境を構築したい場合は EC2 や SQS を組み合わせたカスタムソリューションを構築する必要があります。

SQS キューについて

Elastic Beanstalk worker environments - AWS Elastic Beanstalk

When you choose Autogenerated queue, the queue that Elastic Beanstalk creates is a standard Amazon SQS queue. When you choose an existing queue, you can provide either a standard or a FIFO Amazon SQS queue.

ワーカー環境作成時に Elastic Beanstalk が自動で作成するキューまたは、既存のキューを選択できます。
Elastic Beanstalk が自動で作成するキューではデフォルトでデッドれたキューも有効になります。
既存のキューを選択した場合にデッドレターキューが必要な場合、明示的にデッドレターキューを設定する必要があります。

ワーカー環境の作成

Elastic Beanstalk でチュートリアルレベルのワーカー環境を作成してみた
簡単なワーカー環境の作成方法については上記ブログで紹介していますのでお試しください。
デッドレターキューについても検証しています。

まとめ

今回は今から始める Elastic Beanstalk 入門シリーズの 6 回目として、ワーカー環境について紹介しました。
次回はトラブルシューティングについて紹介します。

今から始める Elastic Beanstalk 入門 #7 へ続く

参考資料

Discussion