📑

【Azure】自分的Azure似た機能使い分け

に公開

はじめに

Azure初学者の自分が、Azureサービスを使う中で「このサービスって他のサービスと似てないか?」「この機能とあの機能どう違うの?」と個人的に思ったサービスについて違いを整理してみました。
自分の理解を整理するために書きましたが、どなたか他の方のお役に立てれば幸いです。

Container Apps関連

Container Appsのログストリームとログの違い

以下のブレードで見れるものの違いについてです。

項目 ログストリーム(監視 > ログストリーム) ログ(監視 > ログ)
表示内容 コンテナの stdout / stderr 出力をリアルタイムで表示 保存されたコンソールログやシステムログを表示
保存 保存されない(リアルタイムのみ) Log Analytics ワークスペースに保存される
過去ログの参照 不可 可能(KQL で検索・分析)
主な用途 開発中の動作確認、即時のデバッグ 過去のログ分析、トラブルシューティング
設定の必要性 不要 Log Analytics との連携設定が必要
アクセス方法 Azure Portal または Azure CLI Azure Portal の「ログ」ブレード
データの種類 コンテナの標準出力・標準エラー出力 コンソールログ(stdout/stderr)、システムログ
保存先 保存されない Log Analytics ワークスペース

アプリデプロイ先の違い

Azure 上でアプリをホスト・実行できる主要なサービスを
わかりやすく、用途や機能別に比較した表です。

比較表

サービス名 ざっくり説明 できること(主な機能) 向いているケース(実例) おすすめ度
App Service WebサイトやAPIを簡単に公開できるサービス 自動スケーリング、SSL対応、GitHub連携、認証機能あり - Webアプリ(例:社内ポータル)
- REST API(例:商品検索API)
⭐⭐⭐⭐(使いやすい)
Azure Functions 必要なときだけ動く「軽量処理」サービス サーバー不要、イベント駆動(HTTP, Timer, Queue等) - 定期処理(例:夜間レポート)
- Webhook処理(例:フォーム通知)
⭐⭐⭐⭐(コスパ◎)
Container Apps 軽量なコンテナアプリを簡単に動かせる オートスケール、ゼロスケール、サービス間連携 - Python/Node.js のAPI
- マイクロサービスアプリ
⭐⭐⭐(やや中級)
AKS (Kubernetes) 本格的なコンテナ管理基盤(Kubernetes) 高可用性、大規模マイクロサービス構成に対応 - 大規模なSaaS運用
- AI処理・RAGアプリの本番環境
⭐⭐(中〜上級)
Static Web Apps HTML/JSだけのWebサイトを高速配信 GitHub連携、Functions連携、無料SSL付き - フロントエンドSPA(例:Reactアプリ)
- 製品紹介LPサイト
⭐⭐⭐⭐(簡単&速い)
Virtual Machines (VM) OSごと使えるクラウドサーバー OSやソフト自由、何でもインストール可能 - 旧アプリの移行先
- 自由な構成が必要なとき
⭐⭐(管理に注意)
Azure Spring Apps Java/Spring Bootアプリ専用PaaS Spring Boot特化、マネージド、スケーリング簡単 - Spring Boot業務アプリ
- Javaチーム用のWebアプリ
⭐⭐⭐(Javaに特化)
Azure Batch 大量のデータを一括処理できるジョブ実行環境 並列処理、高スケーラビリティ、VM自動管理 - 映像の一括エンコード
- 機械学習のバッチ予測処理
⭐⭐(分析・科学系向け)

用途別おすすめ早見表

やりたいこと おすすめサービス
WebアプリやAPIを簡単に公開したい App Service
時間やイベントで自動実行される処理がほしい Azure Functions
軽量なコンテナアプリをクラウドで動かしたい Container Apps
本格的なKubernetes構成で運用したい AKS (Kubernetes)
フロントエンドだけのサイトを高速に公開したい Static Web Apps
自由にカスタマイズできるクラウドサーバーがほしい Virtual Machines
Java/Spring Boot アプリを簡単にクラウド化したい Azure Spring Apps
大量のデータ処理を並列に一気に行いたい Azure Batch

NW/セキュリティ関連

ファイアウォール(に設定するNSG)との違いイメージ

機能 プライベートDNS NSG(Network Security Group)
主な役割 名前解決(IP <=> ドメイン名) 通信の制御(許可/拒否)
例え 電話帳:名前から電話番号を調べる 門番:この人は入れて、この人は入れない
捜査対象 DNS名とIPのマッピング IP/ポート/プロトコル単位の通信制御
使用場面 VM間通信でホスト名を使いたい時など 通信を制御したいとき

WAFの機能の観点:Azure CDN WAF(プレビュー)とAzure Front Door WAF(GA)とApplication Gateway WAF(GA)

WAF(Web Application Firewall)の機能を提供できるAzureサービスには、グローバルCDN上で動く Azure CDN WAF(プレビュー)、グローバルエッジでトラフィックを制御する Azure Front Door WAF(GA)、リージョン内VNetに配置してアプリ層負荷分散を行う Application Gateway WAF(GA)の3種類があります。
用途に合わせて、性能やカスタマイズ性、設置場所の違いで選び分けます。

項目 Azure CDN WAF Azure Front Door WAF Application Gateway WAF
提供状況 パブリックプレビュー GA(一般提供) GA(v2 SKU 推奨)
デプロイ位置 世界中のCDNエッジポイント
例:日本・米国・ヨーロッパなどの高速キャッシュサーバー上で動作
グローバルエッジ(Anycast エンドポイント)
例:ユーザーは最寄りのFront Doorノードに到達
リージョン内 Virtual Network(VNet)
例:東京リージョンのVNet内に設置し社内システムとセキュアに接続
スケール CDNネットワークに合わせて自動分散
例:トラフィック急増時に世界中のエッジでキャッシュ配信を分散
Anycast を使ったグローバル負荷分散
例:一つのAnycast IPで各リージョンのエッジをまとめて拡張
v2 SKU のオートスケール&ゾーン冗長
例:負荷に応じてインスタンスを増減し、ゾーン障害にも耐える配置
主な追加機能 キャッシュ制御とエッジでの攻撃防御 Bot保護 & DDoS保護連携 URLリライト・ヘッダー操作・セッションアフィニティ

ロードバランサーの機能の観点:Azure Load BalancerとAzure Traffic ManagerとAzure Application Gateway

以下は、Azureの主要なロードバランシングサービスである「Azure Load Balancer」「Azure Traffic Manager」「Azure Application Gateway」の違いをわかりやすくまとめた表です。

Azure ロードバランサーサービス比較表

サービス名 主な用途・特徴 対象トラフィック 動作範囲 主な機能 適したシナリオ例
Azure Load Balancer ネットワーク層(レイヤ4)で動作し、TCP/UDPトラフィックを高速に分散します。 TCP/UDP 単一リージョン内 高速なトラフィック分散、内部・外部ロードバランシング、ヘルスプローブによる監視 仮想マシン間のトラフィック分散、内部ネットワークでの高可用性構成
Azure Traffic Manager DNSベースでグローバルにトラフィックを分散し、ユーザーを最適なエンドポイントへ誘導します。 任意(DNS制御) グローバル パフォーマンスベース、優先度、重み付け、地理的ルーティングなどの方式を提供 世界中のユーザーに最適な応答を提供したい場合、リージョン間のフェイルオーバー構成
Azure Application Gateway アプリケーション層(レイヤ7)で動作し、HTTP/HTTPSトラフィックを詳細に制御します。 HTTP/HTTPS 単一リージョン内 URLパスやホスト名によるルーティング、SSL終端、WAF機能、セッション維持(Cookieベース) Webアプリケーションのトラフィック管理、セキュリティ強化が必要な場合

用途別のおすすめサービス

  • 高速なネットワークトラフィックの分散が必要な場合:Azure Load Balancer
  • グローバルなユーザーに最適な応答を提供したい場合:Azure Traffic Manager
  • Webアプリケーションの詳細なトラフィック制御やセキュリティ強化が必要な場合:Azure Application Gateway

参考資料

Application Insights関連

Discussion