サステナビリティのためにリソース使用量を最適化する

Last reviewed 2026-10-28 UTC

Google Cloud Well-Architected Framework のサステナビリティの柱におけるこの原則では、 Google Cloudのワークロードによるリソース使用量を最適化するうえで役に立つ推奨事項が示されています。

原則の概要

リソースの使用量を最適化することは、クラウド環境のサステナビリティを向上させるために不可欠です。コンピューティング サイクルからデータ ストレージまで、プロビジョニングされるすべてのリソースは、エネルギー使用量、水使用量、二酸化炭素排出量に直接影響します。ワークロードの環境フットプリントを削減するには、クラウド リソースをプロビジョニング、管理、使用する際に、情報に基づいた選択を行う必要があります。

推奨事項

リソースの使用量を最適化するには、以下のセクションの推奨事項を検討してください。

自動化された動的スケーリングを実装する

自動化された動的スケーリングにより、リソースの使用量が最適化され、アイドル状態のインフラストラクチャや過剰にプロビジョニングされたインフラストラクチャによるエネルギーの浪費を防ぐことができます。無駄なエネルギーの削減は、コストの削減と二酸化炭素排出量の削減につながります。

次の手法を使用して、自動化された動的なスケーラビリティを実装します。

水平スケーリングを使用する

水平スケーリングは、ほとんどのクラウド ファースト アプリケーションで推奨されるスケーリング手法です。垂直スケーリングと呼ばれる各インスタンスのサイズを増やす代わりに、インスタンスを追加して負荷を分散します。たとえば、マネージド インスタンス グループ(MIG)を使用して、Compute Engine VM のグループを自動的にスケールアウトできます。水平方向にスケーリングされたインフラストラクチャは、インスタンスの障害がアプリケーションの可用性に影響しないため、復元力が高くなります。水平スケーリングは、負荷レベルが変動するアプリケーションにとって、リソース効率の高い手法でもあります。

適切なスケーリング ポリシーを構成する

ワークロードの要件に基づいて自動スケーリングの設定を構成します。アプリケーションの動作に固有のカスタム指標としきい値を定義します。CPU 使用率だけに頼るのではなく、非同期タスクのキューの深さ、リクエスト レイテンシ、カスタム アプリケーション指標などの指標を検討してください。頻繁に不要なスケーリングやフラッピングが発生しないように、明確なスケーリング ポリシーを定義します。たとえば、Google Kubernetes Engine(GKE)にデプロイするワークロードの場合は、適切なクラスタ自動スケーリング ポリシーを構成します。

リアクティブ スケーリングとプロアクティブ スケーリングを組み合わせる

リアクティブ スケーリングでは、システムはリアルタイムの負荷の変化に応じてスケーリングします。この手法は、負荷の急増が予測できないアプリケーションに適しています。

プロアクティブ スケーリングは、固定された毎日の営業時間や週次レポートの生成など、予測可能なパターンのワークロードに適しています。このようなワークロードでは、スケジュールされた自動スケーリングを使用してリソースを事前にプロビジョニングし、予想される負荷レベルを処理できるようにします。この手法により、リソースの競合を防ぎ、効率を高めてユーザー エクスペリエンスを向上させることができます。この手法は、大規模なセールイベントや集中的なマーケティング活動など、既知の負荷の急増に事前に備える際にも役立ちます。

Google Cloud GKE Autopilot、Cloud Run、MIG などのマネージド サービスと機能は、ワークロード パターンから学習してプロアクティブなスケーリングを自動的に管理します。デフォルトでは、Cloud Run サービスがトラフィックを受信しない場合、インスタンスの数はゼロにスケーリングされます。

ステートレス アプリケーションを設計する

アプリケーションを水平方向にスケーリングするには、コンポーネントをステートレスにする必要があります。つまり、特定のユーザーのセッションやデータが単一のコンピューティング インスタンスに関連付けられることはありません。セッション状態をコンピューティング インスタンスの外部(Memorystore for Redis など)に保存すると、任意のコンピューティング インスタンスが任意のユーザーからのリクエストを処理できます。この設計アプローチにより、シームレスで効率的な水平スケーリングが可能になります。

スケジュール設定とバッチ処理を使用する

バッチ処理は、大規模で緊急性の低いワークロードに最適です。バッチジョブは、エネルギー効率に優れた費用対効果の高いワークロードの最適化に役立ちます。

次の手法を使用して、スケジューリングとバッチジョブを実装します。

二酸化炭素排出原単位が低い時間帯にスケジュールする

低炭素リージョンで、地域の電力網でクリーン エネルギーの割合が高い時間帯にバッチジョブを実行するようにスケジュールします。リージョンで温室効果ガス排出量が最も少ない時間帯を特定するには、温室効果ガス排出量レポートを使用します。

重要でないワークロードに Spot VM を使用する

Spot VM を使用すると、未使用の Compute Engine 容量を大幅な割引料金で利用できます。Spot VM はプリエンプトされる可能性がありますが、専用の常時稼働リソースを必要とせずに、大規模なデータセットを費用対効果の高い方法で処理できます。Spot VM は、重要度の低いフォールト トレラントなバッチジョブに最適です。

ジョブを統合して並列化する

個々のジョブの起動とシャットダウンのオーバーヘッドを削減するには、類似したジョブを 1 つの大きなバッチにグループ化します。これらの大量のワークロードは、Batch などのサービスで実行します。このサービスは、必要なインフラストラクチャを自動的にプロビジョニングして管理するため、リソースの使用率を最適化できます。

マネージド サービスを使用する

Batch や Dataflow などのマネージド サービスは、リソースのプロビジョニング、スケジューリング、モニタリングを自動的に処理します。クラウド プラットフォームはリソースの最適化を処理します。アプリケーション ロジックに集中できます。たとえば、Dataflow はパイプラインのデータ量に基づいてワーカー数を自動的にスケーリングするため、アイドル状態のリソースに対して料金が発生することはありません。

VM マシン ファミリーをワークロードの要件に合わせる

Compute Engine VM で使用できるマシンタイプは、さまざまなワークロード用に最適化されたマシン ファミリーにグループ化されています。ワークロードの要件に基づいて適切なマシン ファミリーを選択します。

マシン ファミリー 推奨されるワークロード タイプ サステナビリティに関するガイダンス
汎用インスタンス: これらのインスタンスは、CPU とメモリのバランスが取れた比率を提供します。 ウェブサーバー、マイクロサービス、小規模から中規模のデータベース、開発環境。 E2 シリーズは、リソースの動的な割り当てにより、費用対効果とエネルギー効率に優れています。C4A、N4A、Tau T2A シリーズは Arm ベースのプロセッサを使用します。Arm ベースのプロセッサは、大規模なワークロードでパフォーマンス単位あたりのエネルギー効率が向上することがよくあります。
コンピューティング最適化インスタンス: これらのインスタンスは、vCPU とメモリの比率が高く、コアあたりのパフォーマンスが優れています。 ハイ パフォーマンス コンピューティング(HPC)、バッチ処理、ゲームサーバー、CPU ベースのデータ分析。 コンピューティング最適化インスタンスを使用すると、CPU 負荷の高いタスクをより高速に完了できるため、ジョブの合計コンピューティング時間とエネルギー消費量を削減できます。
メモリ最適化インスタンス: これらのインスタンスは、大量のメモリを必要とするワークロード向けに設計されています。 SAP HANA やインメモリ分析などの大規模なインメモリ データベースとデータ ウェアハウス。 メモリ最適化インスタンスを使用すると、メモリを大量に消費するワークロードをより少ない物理ノードに統合できます。この統合により、複数の小さなインスタンスを使用する場合と比較して、必要な総エネルギーが削減されます。高性能メモリはデータアクセス レイテンシを短縮し、CPU がアクティブな状態に費やす合計時間を短縮できます。
ストレージ最適化インスタンス: これらのインスタンスは、高スループットで低レイテンシのローカル SSD ストレージを提供します。 データ ウェアハウジング、ログ分析、SQL、NoSQL、ベクトル データベース。 ストレージ最適化インスタンスは、大規模なデータセットをローカルで処理するため、ロケーション間のネットワーク データの下り(外向き)に使用されるエネルギーを削減できます。高 IOPS タスクにローカル ストレージを使用すると、複数の標準インスタンスのオーバープロビジョニングを回避できます。
アクセラレータ最適化インスタンス: これらのインスタンスは、AI、ML、HPC などの GPU および TPU アクセラレーション ワークロード向けに構築されています。 ML モデルのトレーニングと推論、科学シミュレーション。

TPU は、エネルギー効率を最適化するように設計されています。1 ワットあたりの計算量が多くなります。

NVIDIA H100 GPU を搭載した A3 シリーズなどの GPU アクセラレーション インスタンスは、CPU のみの代替インスタンスよりも大規模なモデルのトレーニングでエネルギー効率が大幅に向上します。GPU アクセラレーション インスタンスの公称電力使用量は高くなりますが、タスクははるかに高速に完了します。

最新のマシンタイプにアップグレードする

最新のマシンタイプを使用すると、サステナビリティの向上に役立つ場合があります。マシンタイプが更新されると、多くの場合、エネルギー効率が向上し、1 ワットあたりのパフォーマンスが向上するように設計されます。最新のマシンタイプを使用する VM は、同じ量の作業をより少ない消費電力で完了できる可能性があります。

CPU、GPU、TPU は、次のようなチップ アーキテクチャの技術的な進歩の恩恵を受けることがよくあります。

  • 特殊なコア: プロセッサの進歩には、一般的なワークロード向けの特殊なコアや命令が含まれることがよくあります。たとえば、CPU には、ベクトル演算専用のコアや統合 AI アクセラレータが搭載されている場合があります。これらのタスクがメイン CPU からオフロードされると、タスクはより効率的に完了し、消費エネルギーも少なくなります。
  • 電源管理の改善: チップ アーキテクチャの進歩により、ワークロードに基づく電圧と周波数の動的調整など、より高度な電源管理機能が搭載されることがよくあります。これらの電力管理機能により、チップはピーク効率で動作し、アイドル状態のときに低電力状態に移行できるため、エネルギー消費を最小限に抑えることができます。

チップ アーキテクチャの技術的な改善により、サステナビリティと費用に次のような直接的なメリットがもたらされます。

  • ワットあたりのパフォーマンスの向上: これはサステナビリティの重要な指標です。たとえば、C4 VM は、同じエネルギー消費量で C3 VM と比較して 40% 高いコスト パフォーマンスを示します。C4A プロセッサは、同等の x86 プロセッサと比較してエネルギー効率が 60% 向上しています。これらのパフォーマンス機能により、タスクをより迅速に完了したり、同じ負荷に対して使用するインスタンスを減らしたりできます。
  • 総エネルギー消費量の削減: プロセッサの改善により、特定のタスクでコンピューティング リソースが使用される時間が短縮され、全体的なエネルギー使用量とカーボン フットプリントが削減されます。カーボン フットプリントは、バッチジョブや ML モデルのトレーニングなど、短時間でコンピューティング負荷の高いワークロードで特に高くなります。
  • 最適なリソース使用率: 最新のマシンタイプは、最新のソフトウェアに適していることが多く、クラウド プラットフォームの高度な機能との互換性が高くなります。これらのマシンタイプでは、通常、リソースの使用率が向上するため、オーバープロビジョニングの必要性が減り、すべての電力を生産的に使用できます。

コンテナ化されたアプリケーションをデプロイする

持続可能なクラウド コンピューティング戦略の一環として、GKE や Cloud Run などのコンテナベースのフルマネージド サービスを使用できます。これらのサービスは、リソース使用率の最適化とリソース管理の自動化に役立ちます。

Cloud Run のゼロへのスケーリング機能を活用する

Cloud Run は、サービスの受信トラフィックがない場合やジョブが完了した場合に、インスタンスを自動的にゼロにスケーリングするマネージド サーバーレス環境を提供します。自動スケーリングは、アイドル状態のインフラストラクチャによるエネルギー消費を排除するのに役立ちます。リソースは、リクエストをアクティブに処理しているときにのみ稼働します。この戦略は、断続的なワークロードやイベント ドリブン ワークロードに非常に効果的です。AI ワークロードでは、Cloud Run で GPU を使用できます。これにより、GPU を使用しているときにのみ GPU を消費して料金を支払うことができます。

GKE を使用してリソースの最適化を自動化する

GKE はコンテナ オーケストレーション プラットフォームであり、アプリケーションが必要なリソースのみを使用するようにします。リソースの最適化を自動化するために、GKE には次の手法が用意されています。

  • ビンパッキング: GKE Autopilot は、使用可能なノードに複数のコンテナをインテリジェントにパッキングします。ビンパッキングにより、各ノードの使用率が最大化され、アイドル状態または使用率の低いノードの数が減るため、エネルギー消費量を削減できます。
  • 水平 Pod 自動スケーリング(HPA): HPA を使用すると、CPU 使用率などの事前定義された指標や、カスタムのアプリケーション固有の指標に基づいて、コンテナ レプリカ(Pod)の数が自動的に調整されます。たとえば、アプリケーションでトラフィックが急増した場合、GKE は需要を満たすために Pod を追加します。トラフィックが減少すると、GKE は Pod の数を減らします。この動的スケーリングにより、リソースの過剰プロビジョニングが防止されるため、不要なコンピューティング容量の料金を支払ったり、電源を入れたりする必要がなくなります。
  • 垂直 Pod 自動スケーリング(VPA): 個々のコンテナの CPU とメモリの割り当てと上限を自動的に調整するように GKE を構成できます。この構成により、コンテナに必要以上のリソースが割り当てられないため、リソースのオーバープロビジョニングを防止できます。
  • GKE 多次元 Pod 自動スケーリング: 複雑なワークロードの場合、HPA と VPA を同時に構成して、Pod の数と各 Pod のサイズの両方を最適化できます。この手法は、必要なパフォーマンスに対してエネルギー フットプリントを可能な限り小さくするのに役立ちます。
  • トポロジ対応スケジューリング(TAS): TAS は、データセンター インフラストラクチャの物理構造に基づいて Pod を配置することで、GKE の AI ワークロードと ML ワークロードのネットワーク効率を向上させます。TAS は、ネットワーク ホップを最小限に抑えるために、ワークロードを戦略的にコロケーションします。このコロケーションにより、通信レイテンシとエネルギー消費量を削減できます。TAS は、ノードと専用ハードウェアの物理的な配置を最適化することで、タスクの完了を加速し、大規模な AI / ML ワークロードのエネルギー効率に優れたを最大化します。

炭素を考慮したスケジューリングを構成する

Google では、最もクリーンな電力を供給する場所と時間にワークロードを継続的にシフトしています。また、古い機器を再利用(ハーベスティング)して、別のユースケースに活用しています。このカーボン対応のスケジューリング戦略を使用すると、コンテナ化されたワークロードでクリーン エネルギーを使用できます。

カーボンを考慮したスケジューリングを実装するには、リージョンのデータセンターに電力を供給するエネルギー ミックスに関する情報をリアルタイムで取得する必要があります。この情報は、GitHub の Google Cloud リージョンのカーボンフリー エネルギー リポジトリまたは BigQuery の一般公開データセットから、機械で読み取り可能な形式で取得できます。Google の年間炭素データセットの計算に使用される 1 時間ごとのグリッド ミックスと二酸化炭素排出原単位のデータは、Electricity Maps から取得されます。

炭素を考慮したスケジューリングを実装するには、次の手法をおすすめします。

  • 地理的なシフト: 再生可能エネルギー源の使用率が高いリージョンで実行されるようにワークロードをスケジュールします。このアプローチにより、よりクリーンな電力網を使用できます。
  • 時間シフト: バッチ処理などの重要度が低く、柔軟なワークロードの場合は、オフピーク時間や再生可能エネルギーが最も豊富な時間帯に実行されるようにワークロードを構成します。このアプローチは時間シフトと呼ばれ、クリーン エネルギー源が利用可能なときにそれを利用することで、全体的な温室効果ガス排出量を削減できます。

エネルギー効率に優れた障害復旧を設計する

障害復旧(DR)の準備では、多くの場合、セカンダリ リージョンに冗長リソースを事前にプロビジョニングします。ただし、アイドル状態のリソースや十分に活用されていないリソースは、エネルギーの浪費につながる可能性があります。目標復旧時間(RTO)を損なうことなく、リソースの使用率を最大化し、カーボン フットプリントを最小限に抑える DR 戦略を選択します。

コールド スタートの効率を最適化する

セカンダリ(DR)リージョンのアクティブなリソースを最小限に抑えるか、排除するには、次の方法を使用します。

  • コールド DR を優先する: DR リージョンのリソースをオフにするか、ゼロへのスケーリングされた状態にします。このアプローチにより、アイドル状態のコンピューティング リソースの温室効果ガス排出量を削減できます。
  • サーバーレス フェイルオーバーを活用する: DR エンドポイントに Cloud Run などのマネージド サーバーレス サービスを使用します。Cloud Run は、使用されていないときはゼロにスケーリングされるため、トラフィックが DR リージョンに転送されるまでエネルギーを消費しない DR トポロジを維持できます。
  • Infrastructure as Code(IaC)で復旧を自動化する: DR サイトでリソースを実行(ウォーム)する代わりに、Terraform などの IaC ツールを使用して、必要なときにのみ環境を迅速にプロビジョニングします。

冗長性と使用率のバランスを取る

リソースの冗長性は、エネルギーの浪費の主な原因です。冗長性を減らすには、次の方法を使用します。

  • アクティブ / パッシブよりもアクティブ / アクティブを優先する: アクティブ / パッシブ設定では、パッシブ サイトのリソースがアイドル状態になり、エネルギーが無駄になります。最適なサイズのアクティブ / アクティブ アーキテクチャにより、両方のリージョンにプロビジョニングされたすべてのリソースがトラフィックをアクティブに処理します。このアプローチにより、インフラストラクチャのエネルギー効率を最大化できます。
  • 冗長性を適切に調整する: 高可用性または DR の要件を満たすためにレプリケーションが必要な場合にのみ、リージョン間でデータとサービスを複製します。レプリカを追加するたびに、永続ストレージとネットワーク下り(外向き)のエネルギー コストが増加します。