TOP>コラム一覧>[CON324] Optiminzing Amazon EKS for performance and cost on AWS

[CON324] Optiminzing Amazon EKS for performance and cost on AWS

今回のセッションの概要は以下の通りです。

  • EKSサービスの基本的な紹介とk8sコストの最適化に関するチャレンジ
  • kubecostによるリソースコストの追跡
  • AWS Graviton、EC2 Spotを利用したコスト最適化
  • Karpenterを利用した自動化されたコスト最適化

現在、お客様のニーズは大きく以下の4つで言えます。

  • サービスを市場に迅速に提供する
  • コスト削減
  • 高性能、スケーラビリティ
  • セキュリティと隔離

今回のセッションでは、EKSを使用する環境でパフォーマンス、コスト面でどのように改善できるかについての意見を聞くことができました。

EKSクラスタの基本構造を見てみると、次のようになります。

  • AWS で管理するアカウントで実行される Control plane
  • 自己管理型EC2ノード
  • プロビジョニングとライフサイクル管理を自動化するEKSマネージドノードグループ
  • 仮想マシングループを直接プロビジョニング、構成、拡張する必要がないFargate
  • ポッドの総リソース要求を監視し、ノードの開始/終了、予約待ち時間を決定してコストを削減するKarpenter

Kubernetesのコスト最適化の課題については、コストの最適化が基本的にコストとパフォーマンスの間にテンションが存在するため、2つの目標を達成することは困難です。

Kubernetes clusterを構成するときにコストが発生する要因を調べる必要があります。Computeのコストは約90%以上で、ほとんどのコストを占めており、その下位にはネットワーキング、ストレージ、3rdソリューションなどがあります。

FinOpsとは、コミュニケーション、ビジネスコラボレーション、エンジニアリングを強調する「Finance」と「DevOps」の合成語です。複数のチームのコラボレーションを通じてクラウドに対する金融責任を付与するだけでなく、スピード、コスト、パフォーマンスなどのバランスの取れた管理に焦点を当てます。

FinOpsを使用することで、各チームがどのような支出決定を下すのかを明確にすることができます。

コストを最適化するには、まずKubernetesで細かいコストの可視性を確保する必要があります。

クラスターが増加するにつれて、それぞれに固有のawsアカウントを割り当てることには制限があり、単一のアカウントで管理していても、クラスタごとにEC2インスタンスのコストを把握することは困難です。

これを解決するために、Amazon EKSはデフォルトでクラスタ内のすべてのEC2にコスト割り当てタグを追加します。

また、AWS と kubecost が協力してコストモニタリングの効率性を実現できます。

多くの組織がKubernetes支出を監視せず、毎月の見積もりのみを使用しているため、細分化されたコストを把握することは困難です。

ただし、Kubecostを使用すると、Pod、node、namespace、labelなどを含むKubernetesリソース固有の細かいコストを確認でき、無料で利用できます。

代表的にはAdobe社が使用しており、kubecostとKubernetes labelを組み合わせて使用しています。

コスト最適化 part 1. AWS Graviton

Graviton3は、2対25%のパフォーマンスが向上したプロセッサです。同様の他のEC2インスタンスと比較して60%のエネルギー効率が高く、典型的にはC7gインスタンスはコンピューティング集約的なワークロードに価格に対する最高のパフォーマンスを提供します。

Gravitonベースのインスタンスを採用した代表的な企業として、Snapchatなどソーシャルメディアサービスで有名なSnap Incがあります。EKSが毎秒200万のトランザクションを処理するのを助け、開発努力の77%を減らすことができました。

コスト最適化part2。EC2 Spot

EKSマネージドノードグループを使用して、EC2スポットインスタンスを作成および管理できます。スポットインスタンスを使用することで、中断可能なワークロードのコストを削減できます。

バッチ処理、ビッグデータ、ステートレスAPIエンドポイントなどのKubernetesクラスタでフォールトトレラントアプリケーションを実行するのに最適です。

顧客の例として、デジタルストリーミングプラットフォームの会社であるAirtelがあり、スポットインスタンスを活用してコストの47%を削減できました。スポットインスタンスが利用できない場合は、中断に迅速に対応するためにイベントベースのサービスであるAWS Node Termination Handlerを実装しました。

コスト最適化 part 3. Karpenter

KarpenterはKubernetes clusterオートスケーラーで、オープンソースです。Karpenterがクラスタにインストールされると、ポッドのリソース要求全体を監視し、新しいノードの起動/終了を決定することで、インフラストラクチャのコストを削減できます。

代表的な顧客事例として、旅行プラットフォームであるExpedia Groupがあります。ExpediaはKarpenterを使用してEC2 spotインスタンスを管理し、コストを削減し、運用オーバーヘッドを削減できました。

セッションの内容をまとめると、Kubecostを活用してEKS内のリソースの細分化されたコスト追跡が可能になり、Karpenter、EC2 spot、Gravitonプロセッサなどを活用してインフラストラクチャのコスト削減が可能です。また、ワークロードに応じて適切な方法を導入し、FinOpsを介して体系的なコストプロセスを構築すれば、コストの最適化に大きく役立つと思います。

お問い合わせ

引用元

TOP>コラム一覧>[CON324] Optiminzing Amazon EKS for performance and cost on AWS

pagetop