MoreBeerMorePower

Power Platform中心だけど、ノーコード/ローコード系を書いてます。

Power Appsの新しい料金プラン「Pay-as-you-go」を設定する

Ignite 2021に合わせて発表されたPower Appsの新しい料金プラン「Pay-as-you-go」では、従量課金と固定月額制の中間にあたるような、1アクティブユーザー毎&1アプリ毎の月額プランです。 このプランがこれまでの固定月額制と大きくことなる部分は、組織のAzureサブスクリプションを利用してコストを払うところです。

例えば初期のお試しに使いたい場合や、利用頻度が1年に数回程度のアプリの場合、従来のPer-appプランを契約し続けることは組織にとって大きな負担になりえました。
今回のPay-as-you-goプラン(以下PAYGプラン)の導入により、プレミアム機能を利用するアプリの初期導入に対するハードルがかなり下がるのではと予想されます。

なお、すでにPower Appsの料金ページは更新されており、PAYGプランは $10/active user/app/month となっています。*

f:id:mofumofu_dance:20211103004458p:plain

※すでにお気づきのとおり、毎月一定の人数がプレミアム機能を含むアプリを利用する場合には Per-appプランのほうが金額的には優位です。

この投稿では、PAYGプランの設定方法を紹介していきます。

0. 事前準備

PAYGプランを利用し、アプリに対して有効化するためには先にAzure側で設定を行っておく必要があります。

0-1. リソースプロバイダーの登録

まずはMicrosoft.PowerPlatformをサブスクリプションのリソースプロバイダーに登録しておきます。

Subscriptions > 利用するサブスクリプション > Resource Providers と進み、「PowerPlatform」で検索して表示されるMicrosoft.PowerPlatform を登録します。(ちょっと時間がかかる)

f:id:mofumofu_dance:20211103005228p:plain

登録が完了すると以下のような表示に切り替わります。

f:id:mofumofu_dance:20211103005644p:plain

0-2. Power Platform アカウント機能の有効化

これを忘れていてずいぶん長いことエラーが出ていました。

まずAzure PortalでCloud Shellを起動し以下のコマンドを実行します。この時{subscriptionId}はPAYGで利用しようとしているサブスクリプションのIDをセットしてください。

az feature register --namespace Microsoft.PowerPlatform --name accountPreview --subscription {subscriptionId}

この処理は少し時間がかかり、非同期で実行されます。結果の取得には以下のコマンドを発行してください。(15分くらいかかりました)

az feature show --namespace Microsoft.PowerPlatform --name accountPreview --subscription {subscriptionId}

f:id:mofumofu_dance:20211106021321p:plain

ステータスが"Registered"に変わったら、続いて以下のコマンドを発行します。

az provider register -n Microsoft.PowerPlatform --subscription {subscriptionId}

これも非同期なので、結果の取得には以下のコマンドを発行します。

az provider show -n Microsoft.PowerPlatform --subscription {subscriptionId}

これで機能の有効化に関する設定は完了です。

3. リソースグループの追加

これは必須のステップではありませんが、コスト管理のためにも別途リソースグループを作成しておくのが良いと思います。

Resource groups > +Create で新しいグループを追加します。

f:id:mofumofu_dance:20211103005902p:plain

以上で事前の準備は完了です。

続いてPower Platform 管理センターで操作をしていきましょう。

1. 管理センターでの操作

Power Platform 管理センターでは Billing policyというものを作成し、これをアプリに適用していきます。

管理センターで Policies > Billing policies (preview) と進み、新しいポリシーを作成します。

f:id:mofumofu_dance:20211103010302p:plain

ここでは、ポリシー内で指定するRegion (2ステップ目) に注意してください。ポリシーを適用する環境を3ステップ目で選択しますが、ここに表示されるのは指定されたRegionに存在するProductionまたはSandBox環境のみです。 ※Preview時点では既定の環境は選択できません

f:id:mofumofu_dance:20211103014016p:plain

作成が完了したら管理センターでの操作は終わりです。実際にプレミアム機能を利用しているアプリに適用してみましょう。

f:id:mofumofu_dance:20211106021720p:plain

2. アプリへのPAYG適用

対象の環境でプレミアム機能を利用したアプリがある場合、すでに管理センターでPAYGのポリシーが作成されていれば、自動的にPAYGの利用が有効化されます。

f:id:mofumofu_dance:20211106022247p:plain

もし管理センターの操作を行っていない場合には、アプリの設定からもPAYGのポリシーをセットアップすることも可能です。

f:id:mofumofu_dance:20211106022355p:plain

以上でPAYGの設定とアプリへの適用は完了です。

利用後のコスト確認 [2021/11/10]

テストのために作成したアプリで別のユーザーにアプリを共有し、アプリを実行することで課金が期待通り発生することを確認しました。

3名にアプリを共有している状態で、11/05に1名 (User A) が実行、11/08に別の1名 (User B)とすでにアクセスしていたユーザー (User A) でアプリを実行しています。残る1名は共有だけでアプリを実行していません。

結果は期待通り、11/05と11/08にそれぞれ$10が発生しており、それ以外の日にはコストが発生していません。(合計で$20)

f:id:mofumofu_dance:20211110142507p:plain

Reference

docs.microsoft.com

powerapps.microsoft.com