楽して対策!Google Cloud コスト戦略【基本編】
みなさんこんにちは。
クラウドエースでSRE として活動してます、戸田と申します。
みなさんはGoogle Cloudを運用する中で、コスト戦略をとれていますか?
いつかは考えないといけないけど、後回しになりがちなコスト戦略について、私たちがよく用いる考え方を紹介していこうと思います。この記事を通じてみなさんのコスト戦略を考えるハードルが下がると幸いです。
この記事で分かること
- コスト戦略をとることによるメリット
- コスト戦略で考えるべきこと
- コスト戦略の運用方法
この記事で解説しないこと
- 請求アカウントの解説
- 各Google Cloud サービスのパフォーマンス チューニング
コスト戦略の行うメリット
まず、コスト戦略について具体的な方法を紹介する前に、実施することによるメリットについてお話していこうと思います。
コスト戦略を適切に行うことで得られるメリットはGoogle Cloud の費用削減だけではありません。適切にコスト戦略を実施することで、次のようなことも可能になります。
- コストの削減ができる機会を発見し、議論することができる
- より正確なコストの予測と分析ができる
- コスト管理にかかる人的コストが軽減される
逆に、適切なコスト戦略が取られていない場合、以下のようなコストが発生します。
- 削減できるコストがどこか分からない
- コストの予測と分析を行うための労力が増える
- コストの管理が煩雑になる
コスト戦略のステップ
では、コスト戦略を考えるにあたり重要なステップを紹介していきます。
Google Cloud では、次のようなステップでコスト戦略を検討すると効果的です。
- 支出データの収集
- 支出に関するデータを収集して保存する
- リソースの名前とラベルの一貫性を確保する
- 費用のレポート
- ユーザーにコスト意識を浸透させるために支出を透明化する
- 費用の管理
- 支出の制御と最適化のための効果的なツールを確保する
- 使用量の予測
- 発生する費用を予測して、効果的な予算設定と計画を実現する
これを噛み砕いて言うと、① コスト戦略を考えるための 「データ」 を集め、② データからコストを 「可視化」 し、③ 可視化されたコストをツールで 「管理」 することで、④ これから発生するコストを 「計画」 するということになります。
このようなステップを継続的に繰り返すことで、コストが最適化されていきます。
次項から各ステップで実施する、具体的な方法について解説していきます。
ステップ1 支出データの収集
ステップ1 では、コスト戦略を計画するための下準備として支出データの収集を行います。
Google Cloud では、デフォルトで請求アカウントに紐づく課金データを収集します。
収集される課金データには次の情報が含まれます。
- 請求月
- サービス
- SKU
- プロジェクト
- ラベル
- リージョン
- 費用
- 使用量
- クレジット (割引)
これだけでも、かなり詳しい課金分析ができそうですね。
これに加えてより高度な分析がしたい場合には、BigQuery に課金データをエクスポートする方法がおすすめです。
エクスポートできる Cloud Billing データには次のタイプがあります。
-
標準的な使用料金データ
- アカウント ID、請求書の日付、サービス、SKU、プロジェクト、ラベル、ロケーション、費用、使用量、クレジット、調整、通貨など、標準の Cloud 請求先アカウントの使用料金情報が含まれます。
-
詳細な使用料金データ
- 標準的な使用料金データに加えて、リソースレベルの費用データも含まれます。
-
料金データ
- アカウント ID、サービス、SKU、プロダクト、地理的メタデータ、料金の単位、通貨、集計、階層など、Cloud 請求先アカウントの料金情報が含まれます。最新の料金表
詳細な使用料金データでエクスポートすると、課金のあったリソースを個々に分析することができるのでより高度な分析ができます。
コスト戦略の方針が決まっていない場合は、まずデフォルトで収集する課金データで課金分析を行い、より詳細な分析が必要になったタイミングでBigQuery へのエクスポートに切り替える方法がおすすめです。
ステップ2 費用のレポート
ステップ2 では収集した課金データを可視化していきます。
費用が可視化できていないと、管理者のみならず、デベロッパーもコストを意識した開発・運用ができないため、全員がコスト管理の意識を持つことが重要です。
Google Cloud では収集した課金データをCloud Billing レポートやLooker Studio(旧Google データポータル)で確認することができます。
デフォルトでも細かなフィルタリングが可能ですが、次のようなケースだと分別が難しいです。
- 複数のプロジェクトで、一人の管理者が横断的に管理したい場合
- 1つのプロジェクトで、複数社がGoogle Cloud を利用しており、それぞれの利用料を把握したい場合
こういったケースに対応できるようにするため、Google Cloud では、下記の図のようなラベルを用います。
各リソースに割り当てたラベルは、Cloud Billing レポートやLooker Studioでフィルタリングすることができます。
事前にラベルの命名規則を定め、Google Cloud リソース作成時にラベルを割り当てる運用をすると、運用時に楽できるためオススメです。ラベルは一貫性があり、シンプルで標準的な値にすると良いです。
ステップ3 費用の管理
費用のレポートで使われているコストが可視化され、組織にお金の意識が向いたところで次のステップです。
ステップ3 では、費用の管理について考えていきます。ステップ2 で可視化された現状のコストを元に今後の課金額を見立てましょう。Google Cloud ではプロジェクトや請求アカウントに予算を設定し、しきい値(例:50%、75%、100%)を超えた場合にアラートを通知することができます。
通知先はSlack やEmail、Webhook など様々な手段があるので、アラートを受け取りやすいものを選択すると良いでしょう。
自分たちの組織で、どのタイミングで予算のしきい値を超えるか把握することが重要です。アラートはコストが最適化されているか考えるきっかけになるため、想定より課金額が増えている場合、次のような対策を検討すると効果的です。
- 需要管理
- CPU使用率などをモニタリングすることで最適なマシンスペックに変更
- サーバーレスの使用
- 自動スケールを活用することでインフラのオーバーヘッドを削減
- 割引の活用
- 継続利用、プリエンプティブルVM、コミットメント契約 の利用
ステップ4 使用量の予測
ステップ3 でGoogle Cloud で使用している費用が把握できてきたところで最後のステップです。
ステップ4 では、今までのステップで分かってきた情報を元に使用量の予測を立てていきます。費用を予測することで、今後のクラウド投資の計画と優先順位付けを効果的に行うことができます。今までのステップで分かってきた情報を元に、予算の予測を立てる習慣を作ると良いでしょう。より正確で詳細な予測を立てたい場合は、BigQuery とLooker Studio を用いた分析方法に切り替える絶好のチャンスなので、ぜひ検討してみてください。
まとめ
今回はGoogle Cloud のコスト戦略をざっくばらんに紹介させていただきました。
次回はGoogle Cloud の各サービス別にコスト戦略の深堀りや、私のやらかし談についてお話していこうと思います。
それでは〜
Discussion