Azure Static Web Apps(SWA)の料金は、無料の「Free」と本番向けの「Standard」の2プランで決まります。Standardは1アプリ月9ドルで、2026年10月時点の円建て単価は1,417.95円です。ただ、請求額を動かすのは月額よりも「帯域100GBがサブスクリプション単位で共有されること」と「Front Doorアドオンの時間課金」のほうです。この記事では、2026年10月26日にAzure Retail Prices APIから取った単価を使い、プランの上限、円建ての試算、App Serviceの無料枠との違い、Standardへの切り替え手順までを順に説明します。
まとめ:Freeは0円、Standardは月1,417.95円+帯域超過31.51円/GB
- プランは2つ:FreeとStandard。Dedicatedは2025年10月31日に廃止された。
- Free:0円。帯域はサブスクリプションで月100GBまでで、超えるとサイトが配信されなくなる。SLAなし、独自ドメイン2つ。
- Standard:1アプリ9ドル(作成先に選べるEast Asiaなどの円建て単価は1,417.95円、税抜)。帯域100GBを超えた分は0.20ドル(31.51円)/GB。課金は秒単位。
- 隠れやすい費用:Enterprise-grade edge(Front Door)を有効にすると1アプリ0.024ドル/時、730時間で月17.52ドルが加わる。持ち込んだAzure Functionsはそのリソース側で別に課金される。
- 選び方:SLA・プライベートエンドポイント・カスタム認証・持ち込みFunctions・月100GB超のどれかが要るならStandard。どれも要らなければFreeのままでよく、あとから再デプロイなしで切り替えられる。
料金プランはFreeとStandardの2つ(Dedicatedは廃止済み)
Microsoft Learnのホスティングプランの表は、Freeを「個人プロジェクト向け」、Standardを「本番アプリ向け」としています。3列目にあるDedicatedプランは「Retired effective October 31st, 2025」と書かれており、新規作成はできません。Dedicatedで動いていたアプリは、新しいStatic Web Appsリソースへ再デプロイする手順が案内されています。
| プラン | 月額(USD) | 円建て(East Asia・税抜) | SLA |
|---|---|---|---|
| Free | 0ドル | 0円 | なし |
| Standard | 9ドル/アプリ | 1,417.95円/アプリ | あり |
| Dedicated | 2025年10月31日に廃止 | ||
デプロイの仕組み(GitHub ActionsまたはAzure DevOpsでビルドして配信)は両プラン共通です。Azure DevOps側でパイプラインを組む場合はAzure PipelinesでCI/CDを組む手順を参照してください。
FreeとStandardの上限の違い
月額の差は9ドルですが、運用できるかどうかを分けるのは上限値です。下の表はLearnのクォータ表と公式料金ページの数値です。
| 項目 | Free | Standard |
|---|---|---|
| 含まれる帯域(月) | 100GB/サブスクリプション | 100GB/サブスクリプション |
| 帯域の超過 | 不可(配信停止) | 0.20ドル/GB |
| サブスクリプション内のアプリ数 | 10 | 100 |
| ステージング(プレビュー)環境 | 3 | 10 |
| ストレージ(全環境合計) | 500MB | 2GB |
| ストレージ(1環境) | 250MB | 500MB |
| ファイル数 | 15,000 | 15,000 |
| 独自ドメイン | 2 | 5(クォータ表は6) |
| プライベートエンドポイント | 不可 | 1 |
| 許可IP範囲の制限 | 不可 | 25 |
| カスタム認証プロバイダー | 不可 | 可 |
| リクエストサイズ | 30MB | 30MB |
独自ドメインの数は、プラン比較表と料金ページが5、クォータ表が6で一致していません。5つを超える前提で設計するなら、作成後にポータルの実際の上限を確かめてください。
帯域100GBはアプリごとではなくサブスクリプション単位
料金ページの表は、含まれる帯域を「100 GB (サブスクリプションあたり)」、超過を「/GB/サブスクリプション」と書いています。クォータ表でも帯域は「Subscription limits」の側に置かれています。同じサブスクリプションにStandardのアプリを3つ置けば、3つの合計転送量から100GBが差し引かれます。1アプリ100GBずつ無料だと考えて試算すると、アプリ数が増えるほど請求が見積もりより膨らみます。
Freeで100GBを超えたときについて、料金ページのFAQは「サイトが 100 GB のクォータを超えると、Microsoft はそのサイトへのサービスを提供できなくなります」と答えています。追加料金を払って配信を続ける選択肢はありません。月の途中で止まると困るサイトは、転送量が100GBに近づく前にStandardへ移しておく必要があります。Azure Advisorの信頼性の推奨事項には、同じサブスクリプションのFreeアプリの合計帯域が月100GBを超える状況で「Consider upgrading these applications to Standard SKU to avoid throttling」と促す項目があります。ただし超えた後の推奨なので、上限に達する前の判断には転送量の定期確認が欠かせません。
Standard限定のSLA・閉域接続・カスタム認証
FreeにはSLAが付きません。StandardはStatic Web AppsのSLAの対象です。プライベートエンドポイント、IP範囲の制限(最大25)、Microsoft Entra IDなどを自分で登録するカスタム認証、関数でロールを割り当てる機能もStandardに限られます。招待によるロール割り当ては両プランとも25人までです。社外公開しない業務用サイトでも、アクセス元を絞りたいならFreeでは足りません。
円建ての単価とリージョンによる差
公式料金ページは単価をJavaScriptで描画するため、取得環境によっては「$-」としか表示されません。Retail Prices APIは認証なしで同じ単価をJSONで返し、currencyCode=JPYを付けると円建ての単価も取れます。2026年10月26日の取得結果は次のとおりです。
| メーター | USD | JPY(East Asia) | 単位 |
|---|---|---|---|
| Standard App | 9.00 | 1,417.95 | 1アプリ/月 |
| Standard Bandwidth Usage(0〜100GB) | 0 | 0 | 1GB |
| Standard Bandwidth Usage(100GB超) | 0.20 | 31.51 | 1GB |
| Standard Azure Front Door Add-on | 0.024 | 3.7812 | 1時間 |
取得時点の円建て単価はどれもドル単価の157.55倍でした。料金ページによると、円建て価格は前月末の2営業日前に捕捉したロンドン市場の引け値で換算され、そのレートが翌1か月の取引に使われます。157.55は2026年10月分の換算で、11月以降は変わりえます。消費税は含まれません。実際の請求通貨と金額は契約形態で変わるため、確定値はAzureの請求書か料金計算ツールで確認してください。
作成できるリージョンは5つ、単価は9ドル
Static Web Appsの静的コンテンツは世界に分散して配信されます。作成時に選ぶリージョンは、マネージドFunctionsとステージング環境を置く場所です(LearnのFAQ)。SWA CLIの環境変数の説明は、選べるリージョンをwestus2,centralus,eastus2,westeurope,eastasiaの5つとしており、日本のリージョンは含まれません。日本から近いのはeastasia(香港)です。
Retail Prices APIにはJapan East・Japan Westを含む19地域のStatic Web Appsの単価レコードがありますが、レコードがあることはその地域で作成できることを意味しません。作成先の5地域はどれも9ドル・超過0.20ドルでした。Chile Central(12.6ドル)やIndonesia Central(10.8ドル)のような高い単価のレコードもありますが、上の5地域で作る限り単価は変わりません。日本のリージョンにAPIを置く必要があるときは、Japan EastにFunctionsアプリを別に作り、Standardで持ち込みます。
秒単位の課金と月途中の作成・削除時の計算
料金ページは「Standard プランは 1 時間ごとに課金されます」と書き、FAQでは「Azure Static Web Apps の課金は秒単位です。測定は 1 時間ごとで、発生した使用の秒数に基づいて計算され」と補足しています。月額9ドルは730時間で割った見積もりなので、1時間あたりは約0.0123ドルです。検証のために月の半ばでStandardに上げ、10日後にFreeへ戻せば、その間の時間分だけが請求されます。
請求に乗る項目と月額の試算
Retail Prices APIの「Static Web Apps」製品にあるメーターは、Standard App・Standard Bandwidth Usage・Standard Azure Front Door Add-onの3種類だけです。マネージドFunctionsの実行回数に対するメーターはありません。請求額は次の式で組み立てられます。
- Standardのアプリ数 × 9ドル(時間按分)
- サブスクリプション全体の転送量のうち100GBを超えた分 × 0.20ドル
- Enterprise-grade edgeを有効にしたアプリ数 × 0.024ドル × 稼働時間
- 持ち込んだAzure Functionsなど、別リソースの料金(マネージドFunctionsが100万回を超えた場合の扱いは公式に記載なし)
上の単価(East Asia、2026年10月の円換算)で、よくある構成を計算すると次のとおりです(税抜・1か月730時間)。
| 構成 | USD | JPY |
|---|---|---|
| Free・1アプリ・30GB | 0 | 0円 |
| Standard・1アプリ・80GB | 9.00 | 1,417.95円 |
| Standard・1アプリ・300GB | 49.00 | 7,719.95円 |
| Standard・3アプリ・各50GB(計150GB) | 37.00 | 5,829.35円 |
| Standard・1アプリ・80GB+Enterprise-grade edge | 26.52 | 4,178.23円 |
3アプリの例は、各アプリが50GBで個別には100GBに届いていなくても、合計150GBのうち50GBが超過になります。転送量が月によって大きく振れるサイトほど、月額9ドルより超過単価の積み上がりが請求を左右します。
Enterprise-grade edge(Front Door)の追加料金
Enterprise-grade edgeは、Azure Front DoorとCDNの機能をStatic Web Appsに組み込むStandard限定のオプションです。Learnの解説によると、118以上のエッジ拠点でのキャッシュ、DDoS対策、IPv6とHTTP/2が加わり、有効化には「Enabling this feature incurs extra costs」と注記があります。単価は0.024ドル/時(3.7812円/時)なので、1か月730時間つけたままにすると17.52ドル(2,760.28円)です。Standard本体の9ドルより高くつく点は見落とされがちです。
前提条件として独自ドメイン(TTLを48時間未満に設定)が必要で、プライベートエンドポイントとは併用できません。WAFを細かく設定したい場合は、管理された構成ではなくFront Doorを手動で前段に置く方法も案内されています。Front Door単体のStandard/Premiumの違いと料金はAzure Front DoorのCDN・WAFの仕組みと料金で扱っています。
Azure Functionsの費用とマネージド・持ち込みの課金区分
APIを付ける方法は2つあります。LearnのAPI解説では、マネージドFunctionsはHTTPトリガーのみ・Consumptionプラン相当で動き、持ち込み(Bring your own)は任意のプランのFunctionsアプリを接続できる形です。持ち込みはStandardでのみ使え、Functionsアプリ側の料金(従量課金・Premium・App Serviceプラン)がStatic Web Appsとは別に請求されます。
マネージドFunctionsについて、料金ページは「100 万回の実行が無料」と書く一方、脚注では統合APIを「Azure Functions 従量課金プランの料金」で追加できるとしています。上で見たとおりSWA側に実行回数のメーターはありませんが、100万回を超えたときの扱いは料金ページにもLearnにも書かれていません。マネージドFunctionsを大量に呼ぶAPIを載せるなら、無料枠の範囲で収まるか、持ち込みFunctionsに分けて料金を明確にするかを先に決めておきます。どちらの方式でも、1回のAPIリクエストは最大45秒、WebSocketは使えない、という制約は共通です。Functions単体の料金体系はAzure Functionsの仕組みと料金プランで確認できます。
Azure App Serviceの無料枠(F1)との違い
「azure app service 無料」で調べている場合、比べる相手はApp ServiceのFreeプラン(F1)です。App Serviceの制限表とRetail Prices APIの値を並べると、静的サイトを無料で公開する用途ではSWAのFreeのほうが条件が良いことがわかります。
| 項目 | SWA Free | App Service F1 | App Service B1(Linux) |
|---|---|---|---|
| 料金 | 0ドル | 0ドル | 0.019ドル/時(Japan East・730時間で13.87ドル) |
| 独自ドメイン | 2 | 不可(azurewebsites.netのみ) | 500 |
| CPU時間 | 該当なし(静的配信) | 60分/日 | 制限なし |
| ストレージ | 500MB | 1GB | 10GB |
| Always On | 該当なし | 不可 | 可 |
| SLA | なし | なし | 99.95% |
F1は共有インスタンスでCPU時間が1日60分に制限され、独自ドメインも付けられません。サーバー側で常時プロセスを動かす必要がない静的サイトやSPAなら、SWAのFreeで独自ドメイン2つと無料のTLS証明書まで使えます。逆に、ASP.NETやNode.jsのサーバーを常駐させる、WebSocketを使う、45秒を超える処理がある、といった要件はSWAでは満たせないので、App ServiceのBasic以上が候補になります。App Serviceの価格レベルとデプロイスロットはAzure App Serviceの仕組みと価格レベルで詳しく比較しています。
FreeからStandardへ切り替える手順(ポータル・Azure CLI)
プランはいつでも変更でき、再デプロイは不要です。ポータルではStatic Web Appsリソースの[設定]→[ホスティング プラン]で目的のプランを選んで[保存]します。LearnのFAQによると、StandardからFreeへ戻すこともでき、その場合はStandard限定の機能を使っていないことが条件です。
Azure CLIではaz staticwebappコマンドで操作します。以下はaz login済みで、リソースグループmy-rgを作成してある前提です。azure-cli 2.91.0のソースでは、createの--skuは省略するとFree、--locationは省略するとcentralusです。マネージドFunctionsはこのリージョンに置かれるので、日本向けなら対応5地域のうち近いeastasiaを指定します。
# Freeで作成(--skuを省くとFree)
az staticwebapp create --name my-swa --resource-group my-rg --location eastasia
# Standardへ切り替える(Freeへ戻すときは --sku Free)
az staticwebapp update --name my-swa --resource-group my-rg --sku Standard
# 現在のプランを確認する
az staticwebapp show --name my-swa --resource-group my-rg --query sku.name -o tsv
# Enterprise-grade edgeを有効化(アプリのデプロイと独自ドメイン設定後。Standardのみ・追加課金あり)
az staticwebapp enterprise-edge enable --name my-swa --resource-group my-rg
Learnの手順にはaz extension add --name enterprise-edgeで拡張を入れる記述が残っていますが、azure-cli 2.91.0ではaz staticwebapp enterprise-edge(enable/disable/show)が本体のコマンドに含まれています。enableはMicrosoft.CDNリソースプロバイダーの登録も同時に行います。
Standardにすべき条件と、Freeのままでよい条件
次のどれか1つに当てはまるならStandardを選びます。
- サブスクリプション全体の転送量が月100GBを超える可能性がある(Freeは超えた時点で配信が止まる)
- 顧客との契約でSLAが必要
- プライベートエンドポイントやIP範囲の制限でアクセス元を絞りたい
- Microsoft Entra IDなどのカスタム認証、関数によるロール割り当てを使いたい
- タイマーやキューのトリガーを持つ既存のFunctionsアプリを持ち込みたい
- ステージング環境が4つ以上、1環境のサイズが250MB超、独自ドメインが3つ以上必要
どれにも当てはまらない個人サイト、社内のドキュメント、検証環境ならFreeのままで問題ありません。避けたいのは、Freeで公開した販促ページがキャンペーンで急に読まれ、月の途中で100GBに達して止まるケースです。読まれる時期が予測できるサイトは、必要な期間だけStandardに変更できます。ただし、費用はStandardの利用時間と帯域超過量の両方で見積もります。
もう1つの失敗は、Standardの請求に上限が無いことを忘れることです。Azureの予算(Budgets)はしきい値を超えると通知しますが、Learnに「Resources aren’t affected, and your consumption isn’t stopped」とあるとおり、配信は止めません。超過が読めないサイトでは、予算アラートを設定したうえで、キャッシュ設定や画像の圧縮で転送量そのものを減らします。キャッシュの考え方はCDNの仕組みとキャッシュ制御が参考になります。Azure上でのホスティング構成やクラウド費用の見直しを外部に任せたい場合は、AWS・Google Cloud・Azureのインフラ構築支援でも相談を受けています。
料金ページとドキュメントに残る古い記述
Static Web Appsは公式の料金ページとLearnの更新時期がそろっておらず、古い情報を前提にすると費用や構成を読み違えます。2026年10月26日時点で確認した食い違いは次のとおりです。
- データベース接続:料金ページは「データベース接続 (パブリック プレビュー)」を「パブリック プレビュー中は無料」と載せたままですが、Learnの該当ページには「Database Connections for Static Web Apps ends November 30, 2025」と退役が告知されています。新規の構成では使わず、Data API builderを別にホストする形になります。
- マネージドFunctionsのランタイム:Learnの対応表(2026年10月5日更新)では、.NET 8(in-process・isolated)と.NET 9 isolatedのサポート終了日が2026年11月10日です。Node.js 18は2025年5月31日に終了しており、使えるのはNode.js 20・22、.NET 10 isolated、Python 3.9〜3.11などです。.NET 10はisolatedワーカーモデルのみの対応なので、in-processで書いたAPIは先にisolatedへ移行する必要があります。設定は
staticwebapp.config.jsonのplatform.apiRuntimeで行います。 - クォータ表の「Dedicated plan (Preview)」:クォータ表には廃止済みのDedicatedの列が残っています。現行で選べるのはFreeとStandardだけです。
ほかの静的ホスティングと転送量課金を比べるなら、Vercelの料金プランと超過単価とVercelとCloudflare Pagesの違いが参考になります。
よくある質問
Azure Static Web Appsの料金は日本円でいくらですか?
作成先のEast Asiaなどの円建て単価で、Standardは1アプリ1,417.95円/月、帯域の超過は31.51円/GB、Front Doorアドオンは3.7812円/時です(2026年10月26日・税抜)。Freeは0円です。実際の請求額は契約形態と消費税で変わります。
Freeプランで帯域100GBを超えるとどうなりますか?
サイトが配信されなくなります。Freeには超過料金を払って続ける仕組みがありません。100GBはアプリごとではなくサブスクリプション全体の値なので、Freeのアプリを複数置いている場合はその合計で数えます。
Standardプランは月の途中で解約すると日割りになりますか?
料金ページのFAQでは、課金は秒単位で、測定は1時間ごとに行われます。月の途中でStandardに上げたりFreeへ戻したりした場合、Standardだった時間分だけが請求されます。
Azure App Serviceの無料プランとStatic Web AppsのFreeはどちらを使うべきですか?
静的サイトやSPAならStatic Web AppsのFreeです。App ServiceのF1はCPU時間が1日60分に制限され、独自ドメインを付けられません。サーバーを常駐させるアプリはStatic Web Appsでは動かせないため、App ServiceのBasic以上を検討します。
マネージドFunctionsに追加料金はかかりますか?
料金ページは100万回の実行が無料としています。Static Web Appsの料金メーターに実行回数の行は無いものの、100万回を超えたときの扱いは公式に書かれていません。持ち込んだFunctionsアプリは、そのアプリのプランの料金がStatic Web Appsとは別に請求されます。
関連記事
- Azure App Serviceとは?仕組み・価格レベル・デプロイスロットの実装手順とStatic Web Apps/AKSとの違いをCLI例つきで解説【2026年9月時点】
- Azure Functionsとは?仕組み・料金プラン・使い方をわかりやすく解説【2026年版】
- Azure Front Doorとは?CDN・グローバル負荷分散・WAFの仕組みとStandard/Premiumの違い・料金・採用判断を実装者目線で解説
- Vercel料金プラン|Hobby無料枠とPro($20)の中身・超過単価【2026年10月】
- Azure Pipelinesの使い方|YAMLでCI/CDを組む手順と無料枠・権限設定