ラボの概要
この AWS ラボでは、2 つの Python スクリプトを使用して Amazon Simple Queue Service (Amazon SQS) のハンズオンを体験します。Amazon SQS は、クラウドアプリケーション内のコンポーネントを切り離すのに役立つ完全マネージド型のメッセージキューサービスであり、信頼性が高くスケーラブルな通信手段を提供するように設計されています。
Amazon SQS は、メッセージ指向ミドルウェアの管理と運用に伴う複雑さとオーバーヘッドを軽減します。開発者はこれを使用してより重要な作業に集中できます。たとえば、Amazon SQS をイベントソースとして使用して、画像が Amazon Simple Storage Service (Amazon S3) バケットにアップロードされるたびに画像分析を実行する Lambda 関数を呼び出すことができます。または、Amazon SQS を使用して Amazon Elastic Compute Cloud (Amazon EC2) インスタンスから別の EC2 インスタンスにメッセージを送信して処理することもできます。
Amazon SQS には、標準キューと先入れ先出し (FIFO) キューの 2 種類のメッセージキューがあります。標準キューでは、最大限のスループットが得られ、配信順序はベストエフォート型で、配信は少なくとも 1 回行われます。FIFO キューは、メッセージが送信されたのとまったく同じ順序で 1 回だけ処理されることを保証するように設計されています。
Amazon SQS は次のように機能します。
- 分散アプリケーションのコンポーネント (プロデューサー) が Amazon SQS のキューにメッセージを送信します (エンキューと呼ばれるアクション)。このメッセージには、メッセージの受信者がタスクを実行するために必要なすべての情報が含まれています。
- メッセージは、コンシューマー (分散アプリケーションの別のコンポーネント) がメッセージを取得して処理する (デキューと呼ばれるアクション) まで、キューで待機します。
- コンシューマーはメッセージを処理してからキューから削除し、メッセージが再度受信されて処理されないようにします。
このラボでは、2 つの Python スクリプトを使用することで、Amazon SQS の仕組みとその機能の使用方法をより深く理解します。最初の Python スクリプト (receive.py) は受信者であり、SQS キューからのメッセージを継続的にリッスンして受信するように設計されています。このスクリプトは、キューに接続してメッセージをリアルタイムで取得するプロセスを示しています。
2 番目の Python スクリプト (send.py) はプロデューサで、解決すべきコード課題を提示します。目的は、SQS キューにメッセージを送信するために必要なコードの記述を完了することです。このラボでは、キューとの間でメッセージを送受信するプロセスを理解し、その知識を実際のシナリオに応用できるようにします。
目標
本ラボを修了すると、次のことができるようになります。
- コンソールと AWS コマンドラインインターフェイス (AWS CLI) を使用して SQS キューを確認する。
- receive.py スクリプトの機能を確認して理解する。
- receive.py スクリプトを実行して BackgroundCheckApp キューをリッスンする。
- send.py スクリプトを更新して、Hello World メッセージを BackgroundCheckApp キューに送信する。
- send.py スクリプトをテストして、メッセージが SQS キューに正しく送信されることを確認する。
技術知識の前提条件
このラボを修了するには、以下の条件を満たしている必要があります。
- AWS のサービスの基本を理解していること。
- AWS Cloud9 を使用して Python スクリプトを編集およびテストできること。
所要時間
このラボの所要時間は 30 分です。
アイコンキー
このラボでは、さまざまな種類の手順と注記への注意を促すため、各種アイコンが使用されています。以下のリストは、各アイコンの目的を説明したものです。
- コマンド: 実行する必要があるコマンドを表す。
- 想定される出力: 出力のサンプルであり、コマンドまたは編集済みファイルの出力を確認するときに使用する。
- 注意: ヒントや重要なガイダンス。
- 検討: あるコンセプトを自分の環境でどのように応用できるかを考えたり、学習中のトピックについて議論したりする時間。
- ヒント: 質問や課題のヒントを表す。
- タスク完了: ラボのまとめや要点を示す。