キューベースのアーキテクチャ - ハイパフォーマンスコンピューティングレンズ

キューベースのアーキテクチャ

Amazon SQS はフルマネージド型のメッセージキューのサービスです。これにより、コンピューティングのステップおよび後処理のステップからの、処理前ステップの疎結合化が簡単になります。独自の機能を実行する個別のコンポーネントからアプリケーションを構築することで、スケーラビリティと信頼性が向上します。コンポーネントの疎結合化は、最新のアプリケーションを設計するためのベストプラクティスです。Amazon SQS は多くの場合、クラウドネイティブの疎結合ソリューションの中心にあります。

Amazon SQS はしばしば、AWS CLI や AWS SDK のスクリプトによるソリューションと共に編成され、ユーザーはデスクトップから AWS のコンポーネントと直接やりとりすることなしにアプリケーションをデプロイできます。AWS Batch のようなサービスマネージドなデプロイに対して、SQS や EC2 によるキューベースのアーキテクチャでは、セルフマネージドのコンピューティングインフラストラクチャを必要とします。

キューベースのアーキテクチャは疎結合ワークロードには最良ですが、密結合ワークロードに適用すると、たちまち複雑になってしまうことがあります。

リファレンスアーキテクチャ

図 3: 疎結合のワークロード用にデプロイされた Amazon SQS

ワークフローのステップ:

  1. 複数のユーザーが、AWS CLI や SDK でジョブを送信します。

  2. ジョブが Amazon SQS のキューにメッセージとして追加されます。

  3. EC2 インスタンスがキューをポーリングして、ジョブの処理を始めます。

  4. Amazon SQS は、キューにあるメッセージ (ジョブ) の数に基づき、メトリクスを発行します。

  5. キューが指定した長さよりも長くなくなったときに Auto Scaling に通知するための Amazon CloudWatch アラームが設定されます。Auto Scaling が EC2 インスタンスの数を増やします。

  6. EC2 インスタンスがソースデータを引き出し、結果データを S3 バケットに保管します。