MS_AzurePaaS - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki

AzureのPaaS

概要

Azureの PaaS(ないしは CaaS、FaaS)。

補足(PaaS / CaaS / FaaS の関係): 本ページの節構成そのものが
「どこまでを Azure に任せるか」の段階を表している。

← 自由度が高い                              運用が楽 →
IaaS ─── CaaS ─── PaaS ─── FaaS ─── SaaS
(VM)   (AKS/ACI) (App Service) (Functions)
形態 何を渡すか 何が残るか
IaaS 何もしない(VM を借りる) OS の面倒を全部見る
CaaS コンテナ イメージ オーケストレータの運用(AKS の場合)
PaaS アプリのコード/成果物 ランタイム バージョンの追随
FaaS 関数 1 つ分のコード ほぼ無し(ただし制約が強い)

選択の指針はAzureの高可用性設計
責任分界の表、および
クラウド アプリケーション アーキテクチャ ガイド
「コンピューティング サービスの選択」を参照。

実務上の判断としては、

状況 選択
既存アプリをそのまま動かしたい VMAzureの仮想マシン
Web アプリを素直にホストしたい App Service
コンテナ化済み、単純な構成 Container Apps / ACI
Kubernetes の機能が要る AKS
イベント駆動・実行時間が短い Functions

という順に検討し、上から順に楽な方を選ぶのが定石である
(「AKS から検討する」と大抵オーバースペックになる)。

詳細

Open PaaS

Cloud Foundry on Azure

CaaS

Azure Functions on Docker

FaaS

補足(最新化:この分類に加わった選択肢): 本ページ執筆後に
重要な選択肢が追加されている。

サービス 位置付け
Azure Container Apps CaaS と PaaS の中間。Kubernetes(KEDA / Dapr / Envoy)を隠蔽し、AKS の運用なしにコンテナを動かせる。現在、コンテナ ワークロードの第一候補
Azure Static Web Apps 静的サイト + Functions のバックエンド。SPA 向け
Azure Spring Apps Spring Boot 専用の PaaS

特に Container Apps は、
本ページの「CaaS」欄にある ACI と AKS の
中間の使いどころを埋めるもので、

  • ACI:単発のコンテナ実行(オーケストレーションなし)
  • Container Apps:スケール・リビジョン管理あり、K8s の運用なし
  • AKS:Kubernetes をフルに使う

という整理になる。

一方、Azure Red Hat OpenShift
Cloud Foundry といった「Open PaaS」の位置付けは相対的に下がり、
「特定の製品エコシステムに合わせる必要がある場合」の選択肢になっている。

データストア

RDBMS

NoSQL

  • (記載なし)

移行メモ: 原典の NoSQL の項は箇条書きの記号のみで
内容が記載されていなかったため、その旨を明記した。

補足(Azure の主なデータストア): 未記載部分を補っておく。
選択の考え方は
クラウド アプリケーション アーキテクチャ ガイド
「データ ストアの選択」を参照。

種別 サービス
RDBMS Azure SQL Database、SQL Managed Instance、Database for PostgreSQL / MySQL
ドキュメント / キー値 Azure Cosmos DB(マルチモデル。グラフ・列指向にも対応)
キー値(キャッシュ) Azure Cache for Redis
テーブル(キー値) Azure Table Storage
BLOB / ファイル Azure Blob Storage、Azure Files(Azureのストレージ
分析 Azure Synapse Analytics、Microsoft Fabric
検索 Azure AI Search(旧 Azure Cognitive Search)

なお、Azureの冗長化で述べたとおり、
データ層の冗長性はサービス レベル(SKU)の選択で決まるため、
アプリ層と同じ冗長度を選んでいるか確認が要る。

参考

SIOS Tech. Lab


Tags: 移行, クラウド, Azure, .NET開発, OWIN, ASP.NET, ASP.NET MVC, ASP.NET Web API

⚠️ **GitHub.com Fallback** ⚠️