Cloud FinOps と GKE: Generali が Google Cloud コンサルティングで支出を最適化した方法
Ecaterina Grisaeva
Strategic Cloud Engineer, Google Cloud Consulting
Sam Moss
FinOps and Digital Transformation Consultant, Google Cloud Consultant
※この投稿は米国時間 2024 年 6 月 1 日に、Google Cloud blog に投稿されたものの抄訳です。
「小規模なプラットフォーム チームで、どうすれば複数の GKE クラスタで実行されている数百ものワークロードを最適化し、パフォーマンスや信頼性を犠牲にすることなく費用対効果を高めることができるか?」
これは、2023 年の夏から秋にかけて Google Kubernetes Engine(GKE)がホストするアプリケーション スイートを担当した Generali Switzerland のチームが直面した問題で、多くのお客様も共感するであろう難しい課題です。
GKE の最適化が容易ではない理由は 2 つあります。
-
クラスタの信頼性を最適化するのに使用できる、単一の指標が存在しないこと。そのため、どのような最適化が効果的であるかを判断するには複数の要素を考慮する必要があります(GKE における 4 つのゴールデン シグナルについての詳細は後述)。
-
多くの場合 GKE は分散されがちで、中央チームがクラスタを維持し、アプリケーション チームがクラスタにワークロードをデプロイします。このモデルは、アプリケーションとインフラストラクチャにまつわる責任範囲を分けることができれば有効です。しかし、アプリケーション チームがリクエストのサイズを大きくしすぎると、リソースの無駄になってしまいます。エンジニアは正しいワークロードのサイズ設定を意識する必要があります。
Generali では、GKE の使用状況がクラウド支出の大部分を占めているため改善の余地があると考えました。そこで Google Cloud コンサルティングに依頼して、同社のようなグローバルに展開する保険会社が、本番環境と非本番環境の両方でクラスタとワークロードを最適化するベストな方法を検討しました。その結果、2023 年 7 月から 9 月の 12 週間にわたるプロジェクトで、GKE の費用を 41% 削減できたことから、年間 €260,000 以上を節約できることがわかりました。
「ゴールデン シグナル」を分析する
この成果は、どのようにして、どのようなツールを使用して達成できたのでしょうか。さらに重要な点として、どうすれば他の企業も同じ同様の成果を出せるのでしょうか。
GKE の費用を最適化するときは、必ず「ゴールデン シグナル」の分析から始めます。これは GKE クラスタの効率を分析するのに使用する一連の指標です。シグナルには、以下が含まれます。
-
ワークロードのサイズ適正化と使用率
-
需要ベースの自動スケーリング
-
ビンパッキング
-
割引の適用範囲
シグナルの詳細については、State of Kubernetes Cost Optimization(Kubernetes の費用最適化の現状)レポートをご覧ください。ただし、クラスタの費用を最適化する手段としてお考えください。それでは、Generali はシグナルをどのように使用したのでしょうか。
ワークロードのサイズ適正化
まず、ワークロードのサイズ最適化から見てみましょう。ワークロードのサイズ最適化とは、できる限り実際のリソース使用量に近いリクエストを CPU とメモリに設定する作業です。これをクラスタ最適化の最初のステップとして行う必要があるのは、ワークロードのサイズ最適化を変更すると、ビンパッキングと割引の最適な設定に影響するためです。ワークロードのサイズ適正化は、考慮するアプリケーションの数が少なければ比較的シンプルな作業です。しかし、Generali のように多くのチームを抱え、数百ものアプリケーションがクラスタ上で実行されている場合は、大規模な適用は非常に困難です。
Google Cloud コンサルティングとの連携により、Generali の大半のアプリケーションにリクエストが設定されており、リソース使用率はリクエストの 20% に満たないことが判明しました。これは、節約の余地が大いにあります。このゴールデン シグナルを最適化するため、同社はすべてのアプリケーション リクエストを確認して抑制し、社内のアプリケーション チームとセッションを実施して、適切なリクエストを設定する重要性について教育し、スキルを高めました。これが、年間 €100,000 の節約につながりました。
リクエストのサイズ適正化は、クラスタの効率と費用に多大な影響を及ぼします。それに加えて、正しく設定されていないリクエスト(まったく設定されていない、少なすぎるなど)も、ワークロードがクラスタから削除される可能性があるためアプリケーションの信頼性に影響します。このシグナルを必ず最初に調査して、リクエストを継続的にモニタリングする必要があります。
需要ベースの自動スケーリング
Generali が考慮した 2 つ目のシグナルは需要ベースの自動スケーリングです。アプリケーションとインフラストラクチャをエンドユーザーからの需要に基づいて自動スケーリングするよう構成することで、トラフィックが一定しないワークロードの費用を大幅にカットできます。たとえば、Generali ではすでにインフラストラクチャは自動スケーリングされていたものの、このシグナルを分析したところ適切にトリガーされないことがあり、トラフィック量が少ないときでもスケールダウンが行われていなかったことが判明しました。Pod の自動スケーリング構成方法と、アプリケーションの構成エラーが原因です。
この動作を変更するために、同社はスケールダウンを妨げている問題を修正し、Google Cloud コンサルティングが提供したベスト プラクティスに基づいて水平および垂直 Pod 自動スケーラーを構成しました。
Generali の場合、特定のワークロードの垂直 Pod 自動スケーリングと水平 Pod 自動スケーリングをブロック解除することで不要なノードの対価を払う必要がなくなり、費用削減がすぐに実現しました。ゼロへのスケーリング手法も取り入れ、年間 €35,000 の推定削減額を達成しました。
ビンパッキング
3 つめのシグナルであるビンパッキングは、ワークロードに適合するノードの最適な数と特性を選択します。アプリをノードにうまく詰め込むほど、無駄を省けます。Generali は GKE Standard と、Spot VM などのさまざまなノードプールを使用してビンパッキングを改善しました。ビンパッキングの割合はすでに 60% を超えていたものの、まだ改善の余地がありました。チームは、N2 マシンから、コスト最適化された E2 マシンへの移行に重点を置き、パフォーマンスと費用のバランスを改善しました。こうした変更と、さらなるビンパッキングの最適化により、Generali は年間 €105,000 ほどの節約ができることを確認しました。
最適化をさらに進めるため、Generali は GKE Autopilot のテストも行いました。ノード上の未使用の容量には課金されないため、総所有コストが低減されます。GKE は最適なノードを選択して管理し、ビンパッキングを改善して、本来はユーザーが行う必要がある自動スケーリングの設定など、多くの保守運用タスクを実施します。詳しくは、Autopilot のドキュメント ガイドをお読みいただくか、GKE Standard と GKE Autopilot の機能を比較する方法をご確認ください。
割引の適用範囲
最後のシグナルである割引の適用範囲は、GKE に対して最大の費用対効果を得るために不可欠です。特に、確約利用割引(CUD)の対象になる可能性があるクラウド リソースを、確実に対象とするために重要です。
CUD では、リソースの一定期間(通常 1 年または 3 年)にわたる使用を確約することで、GKE 使用量に対して大幅な割引を得られます。GKE リソースの需要が予測可能で一貫している場合は、非常に効果的です。
GKE では 2 種類の CUD が提供されています。
-
GKE Autopilot モードの CUD: GKE Autopilot クラスタに特有の支出ベース割引を提供します。
-
リソースベースの CUD: GKE Standard クラスタに適用される vCPU とメモリの割引を提供します。
CUD は、最初は控えめに始めて、適用範囲を確立していくのがベストです。Generali はすでに CUD を使用しており、最適化により使用しているインフラストラクチャの総量に影響があると考えられることから、この最適化の作業が完了するまで新たなコミットメントの購入は待つことを選びました。Generali は、CUD により約 €75,000 の節約を予測しています。
Generali と Google Cloud にとっての素晴らしい成果
Google Cloud コンサルティングと連携して、Generali は GKE 投資に対し、パーセンテージにして 2 桁の節約を達成できました。プロジェクト リードの Mohamed Talhoui 氏によると、「今回 Generali が行った取り組みから得られた学びは、先を見越した財務管理と最適化の重要性」とのことです。
費用最適化の次のステップとして、Generali はすべてのクラスタのサイズ最適化とビンパッキングを終わらせて、GKE Autopilot の評価を完了させる計画を立てています。チームは、すべての費用最適化を実施し終えたら、新しいコミットメントの準備も予定しています。
Talhoui 氏は以下のように述べています。「Google Cloud コンサルティングの FinOps チームとのエンゲージメントは当社にとって非常に有益でした。Google の専門知識、ガイダンス、集中的な作業のおかげで、非常に短期間のうちに大幅な費用最適化が実現し、パフォーマンスやクオリティが犠牲になることもありませんでした。」
使ってみる
詳細については、FinOps に重点を置いた Google のサービスをご確認ください。また、お客様が学習、構築、運用し、成功を収めるうえで Google Cloud コンサルティングがどのようにお役に立てるかについてもご覧ください。
費用削減方法を見極めて導入し、本ブログ投稿のために分析情報を共有いただいた Generali Switzerland GKE チームの Nada Kammoun-Ksibi 氏、Mohamed Talhaoui 氏、Christophe Mugnier 氏、Mohamed Marzouk 氏、Daniele Altomare 氏、Jomon Joseph 氏、Gustavo Benitez 氏に感謝するとともに、成功を心よりお祝い申し上げます。