Q19 — AWS SAA-C03 第14章
第 19/100 問 | ← 第14章
Q1019. ある企業がAWS上で機械学習(ML)モデルを開発しています。この企業では、MLモデルを独立したマイクロサービスとして開発しています。各マイクロサービスは起動時にAmazon S3から約1 GBのモデルデータを取得し、メモリに読み込みます。ユーザーは非同期APIを通じてMLモデルにアクセスし、単一のリクエストまたは複数のリクエストをバッチで送信できます。この企業は数百人のユーザーにMLモデルを提供しており、モデルの利用パターンは不規則です。一部のモデルは数日から数週間全く使われない一方、他のモデルは一度に数千件のリクエストをバッチで受信します。これらの要件を満たすソリューションはどれですか?
- A. APIからのリクエストをNetwork Load Balancer(NLB)にルーティングします。NLBが呼び出すAWS Lambda関数としてMLモデルをデプロイし、NLBが受信するトラフィックに基づいてLambda関数の自動スケーリングを設定します。
- B. APIからのリクエストをApplication Load Balancer(ALB)にルーティングします。ALBが呼び出すAmazon Elastic Container Service(Amazon ECS)サービスとしてMLモデルをデプロイし、ALBが受信するトラフィックに基づいてECSクラスタのインスタンスの自動スケーリングを設定します。
- C. APIからのリクエストをAmazon Simple Queue Service(Amazon SQS)キューに送信します。SQSイベントによって呼び出されるAWS Lambda関数としてMLモデルをデプロイし、SQSキューのサイズに基づいてLambda関数のvCPU数を自動スケーリングします。
- D. APIからのリクエストをAmazon Simple Queue Service(Amazon SQS)キューに送信します。キューからメッセージを読み取るAmazon Elastic Container Service(Amazon ECS)サービスとしてMLモデルをデプロイします。SQSキューのサイズに基づいて、Amazon ECSのクラスタ容量およびサービス数の両方を自動スケーリングします。 ✓
正解: D. APIからのリクエストをAmazon Simple Queue Service(Amazon SQS)キューに送信します。キューからメッセージを読み取るAmazon Elastic Container Service(Amazon ECS)サービスとしてMLモデルをデプロイします。SQSキューのサイズに基づいて、Amazon ECSのクラスタ容量およびサービス数の両方を自動スケーリングします。
解説
不規則な利用パターン、非同期処理、および効率的なスケーリングを必要とするMLモデルのマイクロサービスアーキテクチャにおいて、最も適したソリューションは選択肢Dです。理由は以下の通りです。 1. 非同期処理: ・SQSを活用することで、リクエスト受付とMLモデル実行を疎結合化できます。これは、バーストトラフィックや不規則な利用パターンへの対応に有効であり、リクエストをキューにためて、利用可能なリソースがある時点で処理できます。 2. コンテナ化されたサービスとしてのECS: ・MLモデルをECSサービスとしてデプロイすると、リソース管理とスケーリングが容易になります。ECSはコンテナ化アプリケーションを効率的に扱えるため、異なるMLモデルを独立して管理できます。 3. 自動スケーリング: ・SQSキューのサイズに基づくECSの自動スケーリングにより、需要に応じてリソースを動的に調整できます。キュー内のリクエスト数が増えれば、ECSはサービスインスタンス数およびクラスタ容量をスケールアップし、低負荷時にはスケールダウンしてコストを最適化できます。 4. 不規則な利用パターンへの対応: ・モデルによっては数日~数週間まったく利用されないケースもあるため、必要なときにだけリソースを展開できる本ソリューションは、コスト効率にも優れています。 他の選択肢の検討: A. NLB経由でLambdaを呼び出す方式: ・Lambdaは最大15分の実行時間制限があり、長時間実行が必要な重いMLワークロードには不向きです。また、NLBはTCPトラフィック向けであり、HTTPリクエストのルーティングにはALBの方が適しています。 B. ALB経由でECSを呼び出す方式: ・機能的には可能ですが、SQSを介したキュー駆動型アーキテクチャと比べ、不規則な利用やバーストリクエストへの柔軟な対応が難しくなります。 C. SQS+Lambdaの組み合わせ: ・Lambdaは自動スケーリングが可能ですが、1 GBのモデルをメモリにロードするような大規模なMLワークロードには、実行時間およびメモリ上限の制約から不十分な場合があります。 結論: 選択肢Dは、不規則な利用パターンへの対応、効率的なスケーリング、非同期処理の実現という点で最もバランスが取れており、企業のMLマイクロサービス要件に最も適したソリューションです。