本文の内容は、2022年12月19日にVICTOR HERNANDO が投稿したブログ(https://sysdig.com/blog/kubernetes-cost-optimization/)を元に日本語に翻訳・再構成した内容となっております。
企業がKubernetesとクラウドネイティブの旅を始めると、クラウドインフラストラクチャーとサービスは急速なペースで成長します。これは、組織が徹底した管理を行わずにシフトレフトした結果、Kubernetes環境に対して過剰な配分を行い、過剰な支出を行うようになることがあまりにも多いのです。
クラウドでワークロードを実行している組織は、次のような重要な事実に関する情報が不足していると、予算が危険にさらされる可能性があります。
- アプリケーションが使用しているリソースの数
- アプリケーションが必要とするリソースの最大値と最小値
- 消費量の傾向はどうか、など。
私たちの経験から、リソースの使用状況の監視、コントロール、分析に失敗すると、月末に巨額のKubernetes請求書を支払わなければならなくなる可能性があることが分かっています。企業の規模にもよりますが、制御不能なKubernetesの請求書から来るような予定外のコストは、特に厳しい経済状況を通過する際には、確実に深刻な頭痛の種になり得ます。
Kubernetesやクラウドのコストがどこに行っているかを把握するために、スプレッドシートの数字を確認するのに多くの時間を費やしていませんか?もしそうなら、このまま読み進めて、Sysdigのコスト削減の経験が、あなたのコスト最適化の旅路にどのように役立つかを発見してください。
Sysdigでは、何百人もの開発者が、多くの異なるクラウドプロバイダーでホストされている50以上のクラスターに、何百ものマイクロサービスを構築し、継続的にデプロイしています。私たちのすべてのワークロードは、ステートフルとステートレスの両方で、マネージドとセルフホスティングの両方のKubernetesクラスターで100%稼働しています。信頼性と観測可能性の管理に加えて、コスト管理は、このように巨大なフットプリントを持つクラスターにとって重要なフォーカスエリアとなります。
私たちは数ヶ月前にこの取り組みを開始し、さまざまな最適化を行った結果、すべてのクラウドプロバイダーで40%以上のコスト削減と大幅なコスト削減を達成しました。
いい感じでしょう?
今回はブログシリーズの第1回目として、さまざまな最適化手法と、それらがどのように大幅なコスト削減に役立ったかを紹介します。
現在のコストと使用状況の可視化
コストの最適化を行う際に最初に考えるべきことは、誰がこのチャーターを所有すべきかを決めることです。なぜなら、コストの最適化は決して一度で終わる活動ではないからです。私たちは、クラウドオペレーションとインフラエンジニアからなる小さな専門チームを結成し、このチャーターを担当させました。彼らは、監視、分析、最適化のアプローチから始めました。この3つの原則について簡単に説明し、Kubernetesとクラウドインフラストラクチャーの現在のコストについてより良く理解するためにどのように役立ったかを説明しましょう。
監視
Sysdig インフラストラクチャー・エンジニアリング・チームは、コンテナ、Kubernetes、クラウド全体の深い可視性を得るために Sysdig Monitor を多用しています。Kubernetesの深い可視性とSysdig Monitorの簡単なビルド・ダッシュボードにより、すべての主要なコスト貢献者のメトリクスを1つのツールで利用することができました。私たちは、最もお金をかけているスタックの主要な領域を特定し、ダッシュボードを構築して、負荷、利用、および容量に関するきめ細かい可視性を提供しました。分析
利用データを入手した後、クラウドプロバイダーからコストデータを入手して、最高のROIを達成するために注力すべき分野を分析・理解しました。Kubernetes は動的な性質を持っているため、ワークロード レベルでコストを理解することは非常に困難です。Sysdig Monitorは、アウトオブボックスの拡張ラベルセットとメトリクスのリッチ化を提供し、コストの統合と分析をより簡単にします。Kubernetes、インフラストラクチャーのメタデータ、およびアプリケーションのコンテキストを使用して、すべてのメトリクスを自動的にリッチ化します。このメタデータとメトリクスの組み合わせは、実際のKubernetesとクラウドのコストデータに収束されます。
リソースの使用に関して言えば、最も支出の多いワークロードを特定し、どのネームスペースがより多くのリソースを要求し、それらのネームスペースのうちどれがこれらの要求を十分に活用していないかを、すべて数秒で確認できるようになると想像してください。
コスト削減のための最適化
リソースの使用状況、パフォーマンス、サイジングなどに関するすべての重要なデータを分析したら、次は意思決定、正しいサイジングの提案、そして最終的にこれらの変更を適用する番です。コスト最適化チームが推奨する上位の機会には、次のようなものがあります。
- ワークロードとデータストアの最適化
- ワークロードの最適化とチューニング
- クラスターオートスケーラーのチューニング
- インスタンスのリシェイプ
- ARMプロセッサーの活用
- ネットワークトラフィックの最適化とInter AZ (Availability Zone)トラフィックの削減
これらの最適化については、次回のブログシリーズでご紹介する予定ですが、ワークロードの最適化後の結果を示す画像をいくつかご覧ください。
このダッシュボードは、ネームスペース内のワークロードのグループに対するCPUの適正化を表しています。CPUは、未使用で要求されたリソースのメトリクスに基づいて削減されました。
今回は、メモリにもサイジングが適用され、unused-but-requested memoryダッシュボードに基づく推奨レベルまで縮小されました。
どちらの画像でもわかるように、未使用のCPUとメモリが大幅に削減され、実行時のリソースが節約され、結果としてコストが削減されたことがわかります。
最適化は、一般的なコスト削減プロセスの最後のステップです。監視と分析のステップは、どのワークロードを適切なサイズにする必要があるかを特定する上で重要であり、最終的には無駄な支出を削減することを可能にしています。
FinOpsのベストプラクティスを推進する
FinOpsファウンデーション自身の言葉です。「FinOpsは、進化するクラウド財務管理の規律と文化的慣習であり、エンジニアリング、財務、技術、ビジネスの各チームがデータ駆動型の支出決定において協力することで、組織が最大のビジネス価値を得られるようにします」。現在、大多数の企業はクラウドネイティブとKubernetesの旅の途中にあります。つまり、ほとんどの場合、アプリケーション・アーキテクチャーを変更し、マイクロサービス・パラダイムに移り、Kubernetesとクラウドプロバイダーを使用してアプリケーションとサービスをホストすることを意味します。この新しいアプローチは、スケーラビリティ、高可用性、アクセス性、オンプレミスインフラストラクチャーの簡素化/削減など、多くの利点をもたらします。しかし、欠点もあります。コストの観測ができないため、巨額の出費を強いられる可能性があるのです。
企業内のすべての部門が、どれだけのリソースが使用され、その使用に対する支出が何であるかを特定し、定量化できるようなコスト規律の文化を促進し、導入することが重要です。
ここでは、Sysdigが採用しているFinOpsのベストプラクティスをいくつかご紹介します。これらのベストプラクティスに従って実装することが、コスト最適化の旅で成功するための鍵でした。
- コストの観測可能性を改善または実装する。Kubernetesとクラウドインフラストラクチャーを適切に監視・分析することは、極めて重要です。リソースの使用データとコスト情報を関連付けることができれば、誰が、どのようなユーザー/アプリケーション/サービスを最も消費しているのか、あるいは最も高い超過支出が何であるのかをよりよく理解できるようになります。
- 最も緊急性の高い支出超過箇所を特定する。最初に対処すべき特定の領域を見つけたら、月末にKubernetesとクラウドの請求書で大きな問題が発生しないように、先に手を打ちましょう。より一般的な観点から、上から下へと取り組むには、組織内の支出データを特定し、ランク付けするのに役立つことをお忘れなく。
- 独自のレポートを作成するか、チャージバックをフィードする。シンプルにするために、独自のコストレポートを精緻に作成するのは常に良いアイデアです。これは、会社が各部門にコストを関連付け、割り当てるのに役立ち、最終的には予算計画や割り当てを支援することになります。
- コスト削減策を立案し、実行する。無駄な支出を減らすという点では、自分で戦略を立て、実行し、これらの行動がどれだけ効果的であるかを測定することです。適切なサイズ、他の種類のインスタンスの価値、ワークロードの適応、インフラストラクチャーに応じた再設計など。
- リソースの使用とクラウドの支出について、従業員に説明責任を持たせる。コスト規律の文化を推進することは、(さまざまな事柄の中で)企業内のさまざまなペルソナがリソースの正しく適切な使用について責任を持つことを意味します。リソースの無駄遣いは、電力、ハードウェア、設備など、持続可能性には全く貢献しないものをより多く消費することを意味します。
- ワークロードをクラウド用に設計・適合させる。ワークロードが、Kubernetesとクラウド環境に対して適切に設計され、適切なサイズであることを確認してください。アプリケーションの設計が悪いと、パフォーマンスが低下し、最終的にはリソースの利用が最適化されない可能性が高くなります。
まとめ
産業界では、オンプレミス環境からプラグアンドプレイのマルチクラウドへのクラウドジャーニーを速いフェーズで加速しています。クラウドサービスとKubernetesは、かつてないほどの俊敏性を開発チームに提供しますが、それにはコストがかかります。時間と規模のある時点で、どの企業も自社のインフラストラクチャーをよく見て、コストのために最適化しなければなりません。この旅は早く始め、コストを意識するチームの文化を築けば築くほど、有利になります。インフラストラクチャーを完全に可視化するために必要なすべてのデータを持ち、計画・実行するチームを持つことが、成功するために重要です。私たちが行ったあらゆる種類の最適化の詳細については、今後のブログでご紹介していきます。Sysdig Monitorの新しいコストアドバイザー機能は、これらのベストプラクティスの多くを自動化し、無駄な出費を40%削減することができます。Sysdig Monitorの30日間トライアルにご登録ください。すべての機能にアクセスでき、お支払いは不要です!