コスト管理

予算を作成して Google Cloud の支出を保護

cost optimization.jpg

※この投稿は米国時間 2021 年 2 月 11 日に、Google Cloud blog に投稿されたものの抄訳です。

Google Cloud の費用を把握するため最初のステップは、多くの場合、予算とアラートになります。費用が気になる場合は、ぜひ予算を作成しましょう。この投稿では予算について詳しく説明し、その設定方法をご紹介します。

finops

予算とアラートは、FinOps ライフサイクルの通知フェーズに該当し、可視化できます

クラウドは、仮想マシンの起動、マネージド データ ウェアハウスの使用、さらにはグローバルにレプリケートされるリレーショナル データベースの作成といった使い方が非常に簡単に行える優れものです(最後の例は筆者もいまだに圧倒されます)。担当のエンジニア チームは、このようなリソースを作成し、駆使するだけで満足かもしれませんが、そこには必ず料金が発生し、誰かが請求額を支払っています。そこで、予算の構成要素とその設定方法をもう少し詳しく見てみましょう(ハウツーだけを確認する場合は、該当セクションまで進んでください)。

この場合の「予算」とは何か?

予算は、費用を把握するために最初に実施する最も簡単な手段です。クラウドの利用による料金はさまざまな形で発生するため、費用は必ず把握しておいた方がよいでしょう。予算を作成したら、試験運用版または本番環境の機能を自由に使って、何が起きているのかをより明確に把握できます。

予算は使用量に上限を設けたりはせず(実際に設定する方法については別の投稿でご説明します)、代わりに費用に基づいたアラートを送信します。ここで重要なのは、スコープ内のリソースの費用のしきい値に達すると、予算からアラートが送信されることです。それでは詳しく見ていきましょう。

予算

今回の主題である予算ですが、まず名前(および一意の ID)から設定します。予算は複数作成でき、いずれもすべてのクラウド料金を支払う請求先アカウントに関連付けられます。複数の請求先アカウント(ヒント: 組織ごとに 1 つの請求先アカウントに統合するようにしましょう)を使用している場合、それぞれに予算を設定できます。これらの設定は手動で行う代わりに自動化することも可能ですが、これについては別の投稿でご説明し、今は主題に戻りましょう。

金額

各予算には金額を含めることもでき、請求先アカウントの通貨で表示されます。ここでは $1,000 など具体的な金額を指定するか、[先月の利用額] を選択できます。先月の利用額を選択した場合、金額は前の月に利用された額に基づいて自動的に更新されます。さらに、クレジット(利用割引、プロモーションなど)に対する利用状況を算入する場合は、金額の一部としてクレジットを含めることができます。金額を含めない予算については、今後の投稿で取り上げます。

しきい値

各予算には複数のしきい値を設定でき、基本的にはすべてのしきい値を予算額のパーセンテージで指定します(金額を直接指定することもでき、どちらの方法でも構いません)。予算 $1,000 のしきい値を 50% に設定すると、$500 に達した時点でアラートがトリガーされます。複数のしきい値を追加できるので、1 か月の支出を予定どおりに進めるために、しきい値を 25%、50%、75%、100% などに設定できます。

Screen_Shot_2020-07-09

予算 $1,000 のしきい値の例

各しきい値は、実際の値でも予測値でも構いません。簡単に言うと、実際のしきい値は実際の支出に基づきます。つまり、支出が $1,000 に達すると、予算 $1,000 の 100% に達することになります。一方、予測しきい値は、Google Cloud によって月末までに達することが(科学や機械学習、魔法のようなものを使って)予測された見積もり額です。たとえば、予算 $1,000 の予測しきい値を 100% に設定した場合、その月の支出が $1,000 に達すると Google Cloud が予測した時点で、すぐにアラートがトリガーされます。予測しきい値は、支出の傾向を理解し、早期アラートが受け取れるといった点で優れています。

アラート

デフォルトでは、アラートはメールとして請求先アカウントのすべての請求先アカウント管理者と請求先アカウント ユーザー宛てに送信されます。メール通知アラートはシンプルですが説明的な内容で、何が起きたのかを知るために必要な情報が正確に提供されます。

Screen_Shot_2020-07-09_

実際の予算のメール(ただし請求先アカウント ID は架空の ID です)

このメールで最初に確認できるのは、請求先アカウントが Billing-Reports-Demo であることです。また、参照用に ID も記載されています。次に確認できるのは、予算額と予算の使用率です。つまり、予算 $1,000 の 50% に達したことが示されています。最後に、これは 7 月の予算であり、このアラートは 7 月 8 日に送信されたものであることがわかります。

注: 予算名がアラートを受け取る人々にとってわかりやすくなるように、適切な命名方法を考えておくと良いでしょう。アラートには主だった情報が含まれていますが、予算名がわかりづらいと、コストの突き止めが難しくなる場合があります。

7 月の 1 か月間の支出予測が $1,000 だったにもかかわらず、8 日後にこのアラートが送信された場合は、予想外の費用が発生している可能性があります。このアラートを受け取ったおかげで、何が起きているかを把握するきっかけが生まれました。できることはメールの送信の他にもありますが、それについては今後の投稿で取り上げます。

スコープ

各予算にはスコープが関連付けられ、デフォルトでは請求先アカウント全体が含まれます。これには、その請求先アカウントに関連付けられているすべてのプロジェクトと Google Cloud サービスが含まれます。スコープをより詳細に指定するために、プロジェクト、プロダクト、ラベルを設定することもできます。プロジェクトやプロダクトについては、特定のものを含めるように選択できるため、すべての本番環境プロジェクトをカバーする予算だけでなく、データ サイエンス プロジェクトの BigQuery の費用のみの予算なども作成できます。Google Cloud リソースを実際の組織に合わせて構成することがどれほど重要であるかはすでにご存じかもしれませんが、これは予算の設定でも変わりません。

pasted_image_0_10

実際の組織における Google Cloud リソースの編成を合理的な範囲内で単純化した例

また、予算のスコープを、リソース編成の重要な部分のひとつであるリソースラベルで設定することもできます。現在は 1 つのラベルに限定されていますが、たとえば、すべてのリソースに「env:production」や「team:infra」といったラベルを付けることで、あらゆる作業の予算を効率的に設定できます。さらに、販売パートナー用のサブアカウントをスコープとして設定することも可能です。

予算の設定

ここまで背景情報を一通り網羅してきましたが、予算の作成自体は速やかに行えます。まずは、請求先アカウントの管理者権限(または、適切な billing.budget 権限を持つカスタムロール)が必要です。次に、コンソールの中でも私のお気に入りの場所である [お支払い] ページに移動し、[予算とアラート] を選択します。

unnamed_2_ANOvU5s

コンソールの請求の部分がお気に入りなんておかしいでしょうか?おかしいかもしれません

すでに予算を作成してある場合は、そのしきい値や現在の支出額とともに、このページに一覧表示されます。

Screen_Shot_2020-07-09

予算 $1,000 のうち、現時点の支出はわずか $80 未満に留まっており、最初の 50% のしきい値をはるかに下回っています

既存の予算をクリックして編集することも可能ですが、[予算の作成] をクリックするだけで新しい予算の作成を開始できます。最初のステップでは、予算に名前を付けてスコープを選択します。この新しい予算では、まず BigQuery のすべての支出に注目するとしましょう。スコープをすべてのプロジェクトで維持し、プロダクト リストから BigQuery を選択します。

Screen_Shot_2020-07-09

この投稿を公開する頃には、オプションの数は 750 項目を超えているはずです

次に、2 ページ目の金額に移動します。前述のように正確な金額を指定するか、先月の支出額に動的に合わせるように設定できます。BigQuery の 1 か月の予算は $500 だとした場合、その金額を入力し、クレジットを含めるように設定します。これにより、たとえば $200 相当のクレジットを受け取った月がある場合、BigQuery の支出が $700 に達しても、予算内に収まることになります。

Screen_Shot_2020-07-09_

[先月の利用額] を選択すると、支出が月ごとにどのように変動するかをさらに明確に把握できます

最後のページでは、複数のしきい値を追加して、それぞれのアラートを受け取ることができます。ここでは支出を把握できるように 50%、90%、100% を設定し、120% の予測も追加で設定しています。120% の予測費用を設定しておくと、プロジェクトの詳細を確認して何が起きているのかを把握するきっかけが生まれます。

Screen_Shot_2020-07-09
下部にあるオプションですが、これらについては、今後のブログ投稿でご説明します。

これで、新しい予算ができました。支出額が上がれば、請求先アカウントの管理者または請求先アカウントのユーザー全員にアラートが送信されるようになり、計画どおりに進んでいるかどうかを判断する材料として使えます。

Screen_Shot_2020-07-09

さまざまなスコープで追跡できるように、予算を複数作成することも検討しましょう

なお、重要な注意点として、課金データの報告に少し時間がかかる場合があることがあります。そのため、支出が急上昇している場合は、予算への反映が少し遅れることがあります。こうしたケースでは、予測しきい値が役立つ可能性があり、事前に対策を立てるための助けになります。

メール通知アラートは、迅速かつ簡単に支出を把握できる方法のひとつですが、予算を扱う上での第一歩にすぎません。次の(できればもっと短い)投稿では、請求先アカウントの管理者 / ユーザーだけでなく、より多くの関係者を追加する方法についてご説明します。さらに、通知を送信するだけでなく、予算でより多くのアクションを実行する方法についても触れていきます。予算に関する詳細は、こちらのドキュメントをご覧ください。

-Google Cloud デベロッパー アドボケイト Mark Mirchandani