クラウドコンピューティングの急速な世界では、効率と費用対効果が最も重要です。SourceFuseでは、クライアントのワークロードの複数の開発環境およびテスト環境をホストするために、Elastic Kubernetes Service(EKS)クラスターを活用しています。ミッションクリティカルではないこれらのワークロードの高いパフォーマンス基準を維持しながら、EKSの実行コストを削減するという課題に直面しました。このブログでは、問題を特定し、ソリューションを実装するために行った手順を説明し、大幅なコスト削減とリソース管理の改善を実現します。
高いEKSコストへの対処
a) スポットEC2インスタンスの活用: コスト最適化へのアプローチは、AWSスポットEC2インスタンスの戦略的な使用を中心に展開しました。Kubernetes Cluster Autoscaler(CA)に優先度ベースのエキスパンダーをインテリジェントに実装することで、ワークロード管理を変革しました。この動的なアプローチの重要なハイライトは、スポットEC2インスタンスとオンデマンドEC2インスタンスの理想的なバランスを実現したことです。ミッションクリティカルではないものの、スポットインスタンスの大幅なコスト削減の恩恵を受けることができるワークロードを特定しました。スポットインスタンスに高い優先度を割り当てることで、CAのスケーリング決定に必要なインスタンスのタイプ(例:m5.xlarge、c5.xlargeなど)に基づいて、さらに優先順位を付けることができました。スポット容量が利用可能な場合は常に最初に利用され、需要が増加する期間中のコンピューティングコストを大幅に削減できるようにしました。
経験に基づいて、スポットインスタンスには価格変動または容量制約という固有のリスクが伴うことを認識しています。この懸念に対処するために、スポット容量が不足した場合に、CAが自動的にオンデマンドインスタンスのプロビジョニングにフォールバックするように巧妙に構成しました。この重要なセーフガードにより、予期しないスポットインスタンスの利用不可時でも、アプリケーションは常に応答性とアクセス性を維持しました。以下のスクリーンショットは、スポットインスタンス戦略の実装後にEC2インスタンスで達成された目覚ましいコスト削減を示しています。

スポットインスタンス戦略を実装した後、EC2インスタンスのコストが74.66%削減され、大幅な節約につながりました。
次の課題は、エスカレートするEKSネットワークコストでした。これらの費用は、主にデータ転送料金と、NATゲートウェイのような高価なコンポーネントの使用によって発生しました。以下のスクリーンショットは、EC2-その他に適用されたフィルターを示しています。

パフォーマンスを損なうことなくコストを最適化するための的を絞った戦略が必要であることを認識していました。私たちのアプローチは次のとおりでした。
b) AWS VPCエンドポイントの活用: AWSサービスを呼び出すためにAWS VPCエンドポイントを利用して、データ転送料金の最適化を開始しました。このアプローチにより、データ転送をAmazonネットワーク内に維持し、パブリックインターネットをバイパスして、不要なデータ転送料金を回避することができました。たとえば、S3と頻繁にやり取りするワークロードでは、VPCエンドポイントを使用することで大幅なコスト削減が見られました。
c) NodeLocal DNSCacheの実装: NodeLocal DNSCacheを組み込むことで、クラスター全体でDNSクエリを解決することによって発生するデータ転送を最小限に抑えました。この効率的なソリューションにより、データ転送のオーバーヘッドが削減され、大幅なコスト削減に貢献しました。その結果、広範なDNSルックアップを必要とするWebアプリケーションのデータ転送料金が大幅に削減されました。

d) ゾーン認識のためのistioの利用: アプリケーションは複数のアベイラビリティーゾーン(AZ)にまたがることが多く、AZ間のデータ転送料金が発生していました。この課題に対処するために、可能な限り同じAZ内でトラフィックをインテリジェントにルーティングするゾーン認識のためにIstioを採用しました。この最適化により、ポッド間の不要なマルチAZ呼び出しが大幅に削減され、データ転送料金の大幅な節約につながりました。

前述の3つのステップを正常に実装すると、ネットワークコストを約90%大幅に削減できました。

次に実行した手順に進みましょう。
e) 非稼働時間のシャットダウンの自動化: コストをさらに最適化するために、非稼働時間中に不要なワークロードを自動的にシャットダウンする簡単なKubernetesアドオンであるKube-greenをデプロイしました。このインテリジェントなアプローチにより、アイドル状態のコンピューティング時間が大幅に削減され、費用が大幅に削減されました。アイドル状態のコンピューティング時間が大幅に削減され、費用が大幅に削減されました。たとえば、ステージング環境は夜間や週末に自動的にスケールダウンするようになり、大幅なコスト削減につながっています。
リソース管理の合理化
a) ワークロードの分離: ワークロードを個別のAWSアカウントに分離し、組織化、リソースの分離、および合理化された管理を改善しました。この動きにより、リソースの追跡が大幅に簡素化され、ガバナンスが向上しました。
b) 各アカウントのCustodianポリシー: さまざまなAWSアカウント全体でガバナンスとコスト管理を強化するために、各アカウントにカスタマイズされたCustodianポリシーを実装しました。これらのポリシーは、リソース使用ガイドラインとコンプライアンス対策を効果的に実施し、コスト最適化された安全な環境を確保しました。
結論
高いEKSコストに戦略的に対処し、リソース管理を合理化することで、費用を削減することに成功しました。その結果、EC2インスタンスのコストに驚くべき変化が見られました。
実装前のEC2インスタンスの総コスト(5月):$6672.55
実装後のEC2インスタンスの総コスト(6月):$1692.72
これは、スポットインスタンス戦略の実装後、EC2インスタンスのコストが74.66%削減されたことを示しており、全体的な効率が向上し、ネットワークコストが90%削減されました。革新的なAWS機能を採用し、インテリジェントなKubernetesアドオンを採用し、スポットインスタンスを活用することで、パフォーマンスと費用対効果の完璧なバランスを実現できました。
SourceFuseでは、クラウドインフラストラクチャの最適化に継続的に取り組んでいます。この成功事例は、コスト管理における卓越性への当社の献身の証であり、お客様に最高のサービスを提供しながら、AWSクラウドを最大限に活用することを保証します。
AWSの力とクラウドアーキテクトチームの専門知識により、将来の課題に取り組み、さらに大きなコスト削減と運用効率を達成できると確信しています。