費用最適化された Cloud Run サービスのベスト プラクティス

このページでは、Cloud Run サービスを構成する際に考慮すべきいくつかの側面について説明します。費用最適化に万能のソリューションはありません。ニーズ、予算、リソースをモニタリングして、最適な方法を判断することが重要です。

このドキュメントで説明するベスト プラクティスは、Cloud Run に固有のものです。他の Google Cloud 製品は含まれません。

リソース構成

サービスの費用を最適化するには、さまざまな構成を検討する必要があります。これらの構成をニーズに合わせて調整して、信頼性が高く費用対効果の高いサービスを作成します。

適切なリージョンを選択する

サービスのデプロイ ロケーションは、合計費用に影響します。Cloud Run では、2 段階のリージョン料金モデルが使用されます。ティア 1 リージョンでは、ティア 2 リージョンよりも vCPU とメモリあたりの費用が低いため、ティア 1 リージョンへのデプロイを検討してください。

認証が必要

Cloud Run サービスを構成するときに、次の 2 つの認証オプションのいずれかを選択できます。

  • 一般公開アクセスを許可: 認証チェックは不要です。
  • 認証を必須にする: 認証されたユーザーのみが Cloud Run サービスにアクセスできます。

パブリック アクセスを許可する必要がある場合を除き、認証を必須にすることをおすすめします。これにより、費用が発生する可能性のある不要なリクエストを防ぐことができます。

Identity-Aware Proxy(IAP)でユーザーを管理している場合、IAP に関連する費用が発生する可能性があります。

インスタンス ベースの課金とリクエスト ベースの課金を比較する

Cloud Run サービスには、2 つの課金設定があります。

  • リクエストベースの課金(デフォルト): リクエストごとに課金されます。また、リクエスト処理中に使用された vCPU とメモリに対して、1 秒あたりの料金が高くなります。
  • インスタンス ベースの課金: インスタンスのライフサイクル全体に対して課金されます。リクエストごとの料金は発生せず、vCPU とメモリの秒単位の料金が低くなります。

トラフィックが安定して緩やかに変化するサービスでは、インスタンスベースの課金の使用を検討してください。コンピューティング料金の引き下げとリクエストごとの料金の廃止による節約額は、リクエスト間のアイドル時間の料金を支払う費用を上回ります。トラフィックが散発的、バースト、急増するサービスの場合は、リクエスト ベースの課金の使用を検討してください。使用する請求設定がわからない場合は、Recommender をご覧ください。Recommender は、過去 1 か月間に Cloud Run サービスが受信したトラフィックを調べ、リクエストベースの課金からインスタンスベースの課金に切り替えることで費用が安くなる場合は、切り替えを推奨します。

サービスレベルでサービス スケーリングを構成する

費用安全性のベースラインを確立するには、サービスの最大インスタンス数を構成します。最大数を大きく設定すると、可用性が優先されますが、予期しないトラフィックの急増や構成ミスによる課金リスクが生じる可能性があります。この設定は、サービスを最初にデプロイして費用ベースラインを確立するときに、サービスレベルで構成する必要があります。その他の費用管理ツールについては、リソース割り当ての割り当てまたは課金予算とアラートをご覧ください。

CPU とメモリの使用率を最適化する

Cloud Run サービスの費用は、CPU/メモリ構成やサービスの有効期間などの要因によって影響を受けます。リソースを過剰にプロビジョニングすると、費用が増加する可能性があります。サービスに最適な構成を判断するには:

  1. ベースライン構成を確立します。
  2. Cloud Monitoring で CPU 使用率とメモリ使用率の指標をテストしながら、指標をモニタリングします。
  3. 必要に応じて構成を調整します。

ピーク時の CPU 使用率が常に低い場合は、vCPU の割り当てを減らすことを検討してください。レイテンシが高い場合は、vCPU の割り当てを増やすことを検討してください。

メモリ使用率が常に低い場合は、割り当てられたメモリを減らすことを検討してください。レイテンシが高く、メモリ使用率が 100% に近い場合は、割り当てメモリの増加を検討してください。メモリ不足(OOM)エラーが発生している場合は、割り当てられたメモリを増やすか、メモリリークを防ぐためにアプリケーションを変更するか、使用するメモリを減らす必要があります。メモリ使用率を把握するには、Cloud Monitoring ダッシュボードをご覧ください。

GPU を構成する

GPU を使用するすべての Cloud Run サービスには、インスタンスベースの課金を構成する必要があります。つまり、Cloud Run インスタンスは、受信リクエストがない場合でも、インスタンスのライフサイクル全体に対して課金されます。GPU に必要な最小 CPU とメモリの構成も、Cloud Run サービスの費用に影響します。デフォルトでは、GPU ゾーン冗長性がオンになっています。GPU のゾーン冗長性をオフにすると、GPU 秒あたりの費用は低くなりますが、フェイルオーバー シナリオの予約容量は保証されません。

ネットワーキング費用を最適化する

サービスのネットワーキング オプションを構成する際は、次の点を考慮してください。

  • リソースを併置する: Cloud Run サービスを、バックエンド データベース(Cloud SQL や Firestore など)や Cloud Storage バケットと同じリージョンにデプロイしてみてください。同じリージョン内の Google Cloud リソース間のデータ転送は無料です。
  • ダイレクト VPC 下り(外向き)に切り替える: 内部 VPC ネットワーク リソースにトラフィックを安全に転送している場合は、サーバーレス VPC アクセス コネクタからダイレクト VPC 下り(外向き)に切り替えることを検討してください。ダイレクト VPC 下り(外向き)はゼロにスケーリングされるため、コネクタ インスタンスに関連するベースライン コンピューティング オーバーヘッドとアイドル状態の費用がなくなります。
  • Cloud CDN を使用する: Cloud Run サービスの前に Cloud CDN を配置して、静的アセットとキャッシュ保存性の高いコンテンツをオフロードします。エッジからデータを配信する方が、Cloud Run から直接標準のインターネット下り(外向き)料金を支払うよりも大幅に安くなります。
  • インターネット下り(外向き)をモニタリングする: 上り(内向き)トラフィックは常に無料です。北米内では、1 か月あたり 1 GiB の無料下り(外向き)インターネット データ転送を利用できます。モニタリングは、リージョンの境界を越えるアウトバウンド トラフィックや、無料枠を超えるアウトバウンド トラフィックに重点を置きます。

同時実行の設定を構成する

リクエストを処理するインスタンスが増えると、Cloud Run はより多くの CPU とメモリを割り当て、コストが高くなります。同時実行数を増やすと、同じリクエスト量を処理するために必要なインスタンスの数が減り、費用を削減できます。ただし、アプリケーション コードは並列リクエストを効率的に処理できる必要があります。詳細については、自動スケーリングとリソース最適化のために同時実行数を調整するをご覧ください。

確約利用割引

確約利用割引(CUD)では、特定の期間にわたり Cloud Run を継続的に使用することを確約する代わりに、割引料金を利用できます。CUD は Cloud 請求先アカウント レベルで適用されます。Cloud Run リソースに対してコンピューティング フレキシブル CUD を購入できます。コンピューティング フレキシブル CUD は、GPU またはネットワーキングには適用されません。詳細については、コンピューティングのフレキシブル確約利用割引をご覧ください。

便利なツール

次のツールを使用すると、費用をより正確に把握し、費用の超過を回避できます。

Cloud Run の概要: [お支払い] パネル

Cloud Run の概要ページの [請求] パネルには、リソース名ごとの費用が表示されます。数値は、リソースごとに選択した期間の総費用を反映しています。このツールは、リソースの費用をより正確に把握するのに役立ちます。

予算アラート

Cloud Billing で予算アラートを作成して、実際の費用を予定費用と照らし合わせて追跡します。予算は、費用のしきい値を超えたときに通知をトリガーするアラート メカニズムであり、費用の厳格な上限ではありません。請求データには遅延があり、アラートの受信タイミングに影響する可能性があります。

Cloud Billing

Cloud Billing は、 Google Cloud の費用の追跡と把握に役立つツール コレクションです。これらのツールは、使用料金のモニタリング、支出の予測、費用削減の機会の特定に役立ちます。

Cost Explorer

Cost Explorer を使用すると、リソースの費用と使用状況を把握できます。Cost Explorer を使用して、次のことができます。

  • リソースを費用でフィルタして、最も費用のかかるリソースを確認します。
  • vCPU、GPU、ネットワーキングなどの構成によって発生する費用の割合を把握します。
  • リソース構成の変更が月額料金に与える影響を追跡します。

Google Cloud 料金計算ツール

Google Cloud 料金の概要には、 Google Cloud 料金モデルをより深く理解するための情報が記載されています。詳細な料金表もこちらで確認できます。料金計算ツールを使用してプロダクトを追加して構成すると、費用を見積もることができます。

Recommender

Recommender は、Cloud プロダクトの使用に関する推奨事項と分析情報を提供するツールです。

Recommender は、過去 1 か月間に Cloud Run サービスが受信したトラフィックを自動的に調査します。費用が安くなる場合は、リクエストベースの課金からインスタンスベースの課金に切り替えることを提案します。

Cloud Hub の最適化

Cloud Hub の最適化ページで、 Google Cloud サービスの費用の概要データ、使用率データ、費用の最適化に関する推奨事項を確認できます。