AI-200:Developing AI Cloud Solutions on Azure Azure でのコンテナー化されたソリューションの開発 問5
Azure でのコンテナー化されたソリューションの開発/コンテナー オーケストレーションの実装(Container Apps・AKS)Azure Container Apps で、Azure Service Bus キューのメッセージを処理するワーカー アプリを動かしています。メッセージが無い時間帯はコストを抑えるためにレプリカを0にし、キューにメッセージがたまったら自動で台数を増やしたいと考えています。適切な構成はどれですか。
当サイトのオリジナル問題(AI-200:Developing AI Cloud Solutions on Azureの出題範囲「Azure でのコンテナー化されたソリューションの開発」に対応。実際の試験問題ではありません)
- AHTTP スケール ルールを設定し、同時に受け付ける HTTP 要求の数に応じてレプリカ数を調整させる
- B最小レプリカ数を1に固定し、CPU 使用率に基づくスケール ルールを設定する
- C最小レプリカ数を0にし、KEDA の Azure Service Bus スケーラーを使うカスタム スケール ルールで、キューのメッセージ数に応じてスケールさせる
- DAzure Automation の Runbook を毎時実行し、キューを確認してアプリを手動で停止・開始させる
正解:C
解説
Container Apps は、KEDA(Kubernetes Event-driven Autoscaling)のスケーラーを使ったカスタム スケール ルールに対応しています。Azure Service Bus スケーラーを使うと、キューに残っているメッセージ数に応じてレプリカ数を増減できます。最小レプリカ数を0にすれば、メッセージが無いときはレプリカを0まで減らせます。
選択肢ごとの解説
- A誤り。HTTP スケール ルールは、HTTP 要求の数に応じてスケールする仕組みです。キューからメッセージを受け取るワーカーには、メッセージ数を基準にするルールが適しています。
- B誤り。最小レプリカ数を1に固定すると、メッセージが無い時間帯もレプリカが動き続けます。コストを抑えるという要件を満たしません。
- C正しい。KEDA のスケーラーでイベント(キューのメッセージ数)に応じてスケールし、最小レプリカ数を0にすれば待機中のコストも抑えられます。
- D誤り。毎時の確認では反応が遅く、運用の手間も増えます。Container Apps に組み込まれたイベント駆動のスケールを使うほうが適切です。