変更要約: AZ-305 第4章を深掘り(比較表・シナリオ・FAQ・ひっかけ・深掘り段落を各節に追加、図を日本語版に対応)
4.1コンピュートの設計
コンピュートの選択——仮想マシン/VMSS、App Service、Azure Functions、AKS/ACI/Container Apps——を理解します。ワークロードに合う実行基盤を選びます。
インフラ設計の中心はコンピュートの選択です。制御の必要性とマネージドの度合いで、VM からサーバーレスまで選びます。
4.1.1コンピュートの選択肢
- VM/VMSS:OS まで完全制御(IaaS)。VMSS で同一 VM を自動スケール。
- App Service:Web/API を手軽にホストする PaaS(自動スケール/デプロイスロット)。
- Azure Functions:イベント駆動・従量課金のサーバーレス。
- AKS/ACI/Container Apps:AKS=Kubernetes、ACI=単発/バッチ、Container Apps=サーバーレスなマイクロサービス。
「OS 完全制御=VM、同一 VM のスケール=VMSS」「Web/API の手軽な PaaS=App Service」「イベント駆動の従量課金=Functions」「Kubernetes=AKS、単発コンテナ=ACI、サーバーレスなコンテナ=Container Apps」 は AZ-305 で頻出です。可能な限りマネージド(PaaS/サーバーレス)を選び、運用負荷を下げます。
AZ-305 のコンピュート設計は「制御の必要性・スケール特性・コストモデル・移植性の要件から最適な実行基盤を選ぶ」ことを問います。VM/VMSS は OS まで完全制御でき、レガシーや特殊要件に対応する一方、パッチ/可用性/スケールを自分で設計します(VMSS は同一イメージの自動スケール、可用性ゾーン分散、スポット/低優先度でコスト最適化)。App Service は Web/API を素早くホストする PaaS で、デプロイスロット(ステージング→本番スワップで無停止リリース)・自動スケール・カスタムドメイン/証明書を備え、App Service Environment(ASE)で隔離も可能です。Azure Functions はイベント駆動・消費プラン(従量・自動スケール・コールドスタートあり)/Premium(事前ウォーム・VNet 統合)/専用から選び、Durable Functions で状態を持つオーケストレーションも可能です。コンテナは、AKS(Kubernetes 標準・大規模/複雑なオーケストレーション)、ACI(軽量・単発/バースト・サーバーレスに 1 コンテナ)、Container Apps(KEDA ベースの自動スケール・Dapr 統合のサーバーレスマイクロサービス、Kubernetes を意識せず使える)を使い分けます。設計の要は、運用負荷を最小化する方向(IaaS→PaaS→サーバーレス)で検討しつつ、移植性(K8s)や特殊要件があるときだけ制御寄りに降りることです。
| 要件 | 選択 | 要点 |
|---|---|---|
| OS/ミドルウェアの完全制御 | VM / VMSS | IaaS・自分でパッチ/スケール設計 |
| Web/API を低運用で | App Service | PaaS・スロット/自動スケール |
| イベント駆動・断続 | Azure Functions | 消費/Premium/専用・Durable |
| コンテナ | AKS / ACI / Container Apps | K8s / 単発 / サーバーレスマイクロ |
シナリオ:マイクロサービス化した Web バックエンドを、Kubernetes の運用負荷を負わずにイベントに応じて 0 までスケールさせたい。→ Azure Container Apps(KEDA ベースの自動スケールで需要 0 時はインスタンス 0、Dapr でサービス間連携)を選択。フロントの公開 API は API Management をゲートウェイにし、断続的なバックグラウンド処理は Azure Functions(消費プラン)で補います。Kubernetes の細かい制御が必須なら AKS に切り替えます。
FAQ:AKS と Container Apps はどちらを選ぶ? Kubernetes の標準 API・既存マニフェスト・きめ細かい制御(カスタムオペレーター、特殊なネットワーク/ストレージ)が要るなら AKS。Kubernetes の運用を避けつつコンテナのマイクロサービスをサーバーレスに動かしたい(自動スケール/0 スケール、Dapr/KEDA 内蔵)なら Container Apps。単発/バッチの 1 コンテナだけなら ACI が最軽量です。
ひっかけ:「運用負荷を最小化して Web アプリをホスト」の要件で VM(IaaS) を選ぶのは誤り——VM は OS パッチ/スケール/可用性を自分で設計する必要があり最も負荷が高いです。素直に App Service(PaaS)やコンテナのサーバーレス系を選びます。また「イベント駆動の従量課金」を常時起動の VM/専用プランで満たそうとするのも非効率で、Functions の消費プランが正解です。
4.1.2この節のまとめ
- 制御=VM/VMSS/Web=App Service/イベント=Functions
- コンテナ=AKS(K8s)/ACI(単発)/Container Apps(サーバーレス)
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. Web アプリを最小の運用負荷でホストし、自動スケールやデプロイスロットも使いたい。何を選びますか?
Q2. イベント駆動の短時間処理を、サーバー管理なしで使った分だけ課金されたい。何を使いますか?
Q3. 既存の Kubernetes 資産を活かして、コンテナをオーケストレーションしたい。何を使いますか?

