信頼性を最大化し、費用を最小化する: Kubernetes ワークロードのサイズ適正化
Google Cloud Japan Team
※この投稿は米国時間 2023 年 8 月 8 日に、Google Cloud blog に投稿されたものの抄訳です。
ワークロードのリクエストを調整し、実際の使用量をより適切に反映するようにすることで、どのくらいの費用を節約できるかご存知ですか。ワークロードのサイズを適正化しない場合、ワークロードで使われてもいないリソースに過剰な料金を支払ったり、さらに悪いことに、プロビジョニングが不十分なことでワークロードが信頼性のリスクにさらされたりする可能性があります。


以前に説明したとおり、リソースを設定しておくことはワークロードの信頼性を向上させるうえで最重要です。このブログ投稿では、State of Kubernetes Cost Optimization(Kubernetes の費用最適化の現状)レポートの 2 つ目の知見について解説します。
この調査で、リソースの無駄を削減できる最大の可能性は、ワークロードのサイズ適正化にあることが判明しました。
State of Kubernetes Cost Optimization report(Kubernetes の費用最適化の現状)
Google の調査結果によると、ワークロードのサイズ適正化は最も重要なゴールデン シグナルです。ワークロードのサイズ適正化では、アプリケーションのためにリクエストした CPU とメモリーを開発者が適切に使用できるかどうかが試されます。
サイズの適正化は困難
アプリケーションのリソース ニーズを予測することは、非常に困難な可能性があります。そしてそれは、従来のデータセンター環境を利用する開発者がこれまで考慮してこなかっことです。従来のデータセンター環境では、ピーク時の需要と今後の成長を見越してリソースを事前に過剰プロビジョンニングすることが一般的でした。余剰分の容量で対処できるため、開発者はリソースのニーズを正確に予測することに重点を置く必要がなかったのです。それに対し、クラウド環境では、リソースはオンデマンドで消費されます。効率性と信頼性の間のバランスを見いだすこととは、微妙なバランスを取る行為のように感じられます。
ワークロードのサイズ適正化のためのツール
Cloud Monitoring と GKE UI には、GKE で実行されているワークロードのサイズ適正化に使用できるネイティブ ツールが用意されています。
コンソールでのサイズ適正化
ワークロードの [費用の最適化] タブでは、使用したリソースとリクエストした内容が表示されるため、最適化できるワークロードを見つけられます。


削減可能な費用を活用するには、クラスタの詳細を表示して、ワークロード レベルでのリソースの推奨値を確認できます。
Deployment オブジェクトに限ったワークロードのリソースの推奨値を表示するには、次の手順を行います。
GKE の [費用の最適化] に移動します。
クラスタを選択します。
[ワークロード] > [費用の最適化] の順にクリックします。
Deployment のワークロードを 1 つ選択します。
ワークロードの詳細ページで、[操作] > [スケール] > [リソース リクエストを編集] の順に選択します。
Cloud Monitoring を使用したサイズ適正化
Cloud Monitoring には組み込みの VPA スケール推奨指標が用意されているので、ワークロードのパフォーマンスをモニタリングし、VPA オブジェクトを作成する必要なくサイズを適正化するチャンスを見いだせます。


これらの指標を表示するには、次の手順を行います。
1. [Cloud Monitoring] > [Metric Explore] コンソールに移動します。
2. [指標] プルダウンで、次の指標を選択します。
メモリの推奨値:
[Kubernetes Scale] > [オートスケーラー] > [推奨されるレプリカあたりのリクエスト バイト数]CPU の推奨値:
[Kubernetes Scale] > [オートスケーラー] > [推奨されるレプリカあたりのリクエストコア数]
大規模なサイズ適正化
クラスタ全体やプロジェクト全体の推奨値を表示したい場合は、GKE ワークロードのサイズを大規模に適正化するのに役立つガイドを今すぐ利用できます。このソリューションは、クラスタの実際の指標データと、Cloud Monitoring の組み込みのワークロード推奨機能を活用します。クラスタごとに追加の VPA オートスケーラー オブジェクトを作成する必要なく、すべてのワークロードのリソース要件を決定できます。このガイドでは、ソリューションのデプロイについて紹介します。


まとめ
結論として、ワークロードのサイズ適正化は費用削減の面でも信頼性の面でも不可欠です。このブログ投稿のヒントに沿って操作することで、ワークロードで適切な量のリソースが使用されるようにすることができ、結果として費用を節約して、ワークロードの信頼性が向上します。
このブログ投稿で紹介しているソリューションと、クラスターの最適化に役立つその他の便利なツールは以下のとおりです。
ワークロードの大規模なサイズ適正化ソリューション ガイド
シンプルな kube-requests-checker ツール
一連のサンプル ワークロードを使って GKE をセットアップするためのインタラクティブ チュートリアル
State of Kubernetes Optimization(Kubernetes の費用最適化の現状)レポートをダウンロードして、主要な知見をご確認ください。次のブログ投稿をどうかお楽しみに。
- デベロッパーリレーションズ エンジニア Anthony Bushong