モバイルアプリからメッセージを受信した際にキューデータを処理するアプリケーションを開発しています。 以下の要件があります:
キューのサイズが 80 GB を超えないこと。
メッセージの 先入れ先出し (FIFO) 順序を使用すること。
Azure の コストを最小限 に抑えること。
ソリューション: .NET API を使用して、Azure Storage Queue にメッセージを追加します。Azure Storage Queue のイベントによってトリガーされる Azure VM を作成します。
このソリューションは目標を達成していますか?
正解:B
このソリューションが「No」である理由は、主に以下の3点にあります。
1. FIFO(先入れ先出し)要件の欠如
最も重要なポイントです。Azure Storage Queue は厳密な FIFO を保証しません。 メッセージの順序が重要なシステムにおいて、Storage Queue を使用する設計は不適合です。厳密な FIFO が必要な場合は Azure Service Bus のセッション機能 を使用する必要があります。
2. コスト最小化に反する (Azure VM)
要件には「コストを最小化する」とあります。
Azure VM: メッセージが届くのを待機するために VM を常時起動させておくと、メッセージが送信されない時間帯(不定期な送信)も課金が継続されます。
Azure Functions: サーバーレス(従量課金プラン)であれば、実行された時間のみ課金されるため、不定期なメッセージ処理には Functions の方が圧倒的に低コストです。
3. 「イベントによってトリガーされる VM」の実現性
技術的に、Azure Storage Queue のイベントで Azure VM 自体を直接「起動(トリガー)」させる標準機能は存在しません。VM 内でポーリングプログラムを動かす必要があり、構成が複雑かつ非効率になります。

コメント