コスト最適化 - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

コスト最適化

効果的なリソース制御をサポートするために、Kubernetes のコスト最小化は、このコンテナオーケストレーションテクノロジーを使用する企業にとって不可欠です。ポッドやノードなどの複数のコンポーネントを含む複雑さのため、Kubernetes 設定の支出を適切に追跡することは困難です。コスト最適化手法を適用することで、企業はリソースがどこに費やされているかを確認し、部門やプロジェクトに適切に経費を割り当てることができます。

動的スケーリングには利点がありますが、適切に管理しないと、予期しない費用が発生する可能性があります。効率的なコスト管理は、本当に必要な場合にのみリソースを割り当て、予期しない支出の急増を防ぐのに役立ちます。

このセクションでは、コスト最適化の以下のアプローチについて説明します。

Kubecost

Kubecost は、企業がクラウドインフラストラクチャへの支出を追跡、制御、最大化するのに役立つコスト管理ソリューションです。これは、Kubernetes クラスター専用に作成されています。Kubecost は、リソース使用率とリアルタイムのコスト認識に関するインサイトを提供し、クラウドリソースが使用されている場所と量をよりよく理解できるようにします。これらのインサイトを使用すると、インフラストラクチャの支出を最適化し、リソース効率を向上させ、クラウド投資についてより多くの情報に基づいた意思決定を行うことができます。

Kubecost には以下の主要な機能があります。

  • コスト配分 – Kubecost は、ワークロード、サービス、名前空間、ラベルなど、Kubernetes リソースの徹底的なコスト配分を提供します。この機能は、チームが環境、プロジェクト、チームごとにコストをモニタリングするのに役立ちます。

  • リアルタイムのコストモニタリング – クラウドコストをリアルタイムでモニタリングできるため、組織は支出パターンをすぐに把握し、予期しないコスト超過を防ぐことができます。

  • 最適化に関する推奨事項 – Kubecost は、アイドル状態のリソースの削減、ワークロードの適切なサイズ設定、ストレージ費用の最大化など、リソース使用率を最小限に抑えるための実用的な提案を提供します。

  • 予算とアラート – Kubecost ユーザーは予算を作成し、支出が事前定義された基準に近づいたとき、または超えたときにリマインダーを受け取ることができます。この機能は、チームが財務上の制約に従うのに役立ちます。

ゴールドロック

Goldilocks は、ユーザーが Kubernetes ワークロードのリソースリクエストと制限を最適化できるように設計された Kubernetes ユーティリティです。Kubernetes クラスターで実行されているコンテナの CPU リソースとメモリリソースを設定する方法に関する推奨事項を提供します。これらの推奨事項は、アプリケーションを無駄なく効率的に実行するための適切な数のリソースを確保するのに役立ちます。この最適化により、コスト削減、パフォーマンスの向上、Kubernetes クラスターのより効率的な使用が可能になります。

Goldilocks には、次の主要な機能があります。

  • リソースのレコメンデーション – Goldilocks は、Kubernetes ワークロードの過去の CPU およびメモリ消費統計を分析することで、リソースリクエストと制限の理想的な設定を決定します。これにより、過剰プロビジョニングや過剰プロビジョニングを回避しやすくなります。これにより、パフォーマンスの問題やリソースの無駄が生じる可能性があります。

  • VPA 統合 – Goldilocks は Kubernetes Vertical Pod Autoscaler (VPA) を活用してデータを収集し、レコメンデーションを提供します。これは「レコメンデーションモード」で実行されます。つまり、リソース設定は実際に変更されませんが、それらの設定についてガイダンスを提供します。

  • 名前空間ベースの分析 – Goldilocks では、特定の名前空間を分析対象にすることで、最適化およびモニタリングされるワークロードを細かく調整できます。

  • ビジュアルダッシュボード – ウェブベースのダッシュボードには、提案されたリソースリクエストと制限が視覚的に表示されるため、データを理解し、アクションを実行するのが簡単です。

  • 非侵入オペレーション – 推奨モードで動作するため、Goldilocks はクラスターの設定を変更しません。必要に応じて、レコメンデーションを確認した後に、推奨リソース設定を手動で適用できます。

AWS Fargate

Amazon EKS のコンテキストでは、 https://docs.aws.amazon.com/eks/latest/userguide/fargate.htmlAWS Fargate を使用すると、基盤となる Amazon EC2 インスタンスを管理せずに Kubernetes ポッドを実行できます。これは、インフラストラクチャを気にすることなく、コンテナ化されたアプリケーションのデプロイとスケーリングに集中できるサーバーレスコンピューティングエンジンです。

AWS Fargate には、次の主要な機能があります。

  • インフラストラクチャ管理なし – Fargate は、Amazon EC2 インスタンスまたは Kubernetes ノードをプロビジョニング、管理、またはスケーリングする必要をなくします。 は、パッチ適用やスケーリングを含むすべてのインフラストラクチャ管理 AWS を処理します。

  • ポッドレベルの分離 – Amazon EC2 に基づくワーカーノードとは異なり、Fargate はタスクまたはポッドレベルの分離を提供します。各ポッドは独自の分離されたコンピューティング環境で実行されるため、セキュリティとパフォーマンスが向上します。

  • 自動スケーリング – Fargate は、需要に基づいて Kubernetes ポッドを自動的にスケーリングします。スケーリングポリシーやノードプールを管理する必要はありません。

  • 1 秒あたりの請求 – 各ポッドが実行する正確な期間に消費した vCPU とメモリリソースに対してのみ料金が発生します。これは、特定のワークロードに対して費用対効果の高いオプションです。

  • オーバーヘッドの削減 – EC2 インスタンスを管理する必要がなくなることで、Fargate はインフラストラクチャオペレーションではなくアプリケーションの構築と管理に集中できます。

スポットインスタンス

スポットインスタンスは、オンデマンドインスタンスの料金を大幅に節約でき、Amazon EKS クラスターで Amazon EC2 ワーカーノードを実行するための手頃なオプションです。ただし、 は、オンデマンドAWS インスタンスの容量が必要な場合にスポットインスタンスを中断できます。 は、容量が必要な場合に 2 分間の通知でスポットインスタンスを再利用 AWS できるため、重要でステートフルなワークロードの信頼性が低下します。

コストの影響を受けやすく、中断に耐えられるワークロードには、Amazon EKS のスポットインスタンスが適しています。Kubernetes クラスターでスポットインスタンスとオンデマンドインスタンスを組み合わせて使用すると、重要なワークロードの可用性を犠牲にすることなくコストを削減できます。

スポットインスタンスには、次の主要な機能があります。

  • コスト削減 – スポットインスタンスはオンデマンドインスタンスの料金よりも安価になる可能性があるため、コストの影響を受けやすいワークロードに最適です。

  • 耐障害性ワークロードに最適 – バッチ処理、CI/CD ジョブ、機械学習、大規模なデータ処理など、インスタンスを大きな中断なしで置き換えることができるステートレスで耐障害性の高いワークロードに最適です。

  • Auto-Scaling グループ統合 – Amazon EKS はスポットインスタンスを Kubernetes クラスターオートスケーラーと統合します。これにより、中断されたスポットインスタンスノードを他の利用可能なスポットインスタンスまたはオンデマンドインスタンスに自動的に置き換えることができます。

予約インスタンス

Amazon EKS では、リザーブドインスタンスは、Kubernetes ワークロードを実行する Amazon EC2 ワーカーノードの料金モデルです。リザーブドインスタンスを使用すると、オンデマンドインスタンスの料金と比較してコスト削減と引き換えに、特定のインスタンスタイプを 1 年間または 3 年間使用することをコミットできます。Amazon EKS でインスタンスを予約することは、Amazon EC2 ワーカーノードで一貫した長期ワークロードを実行するための手頃な方法です。

リザーブドインスタンスは、Amazon EC2 で一般的に使用されます。ただし、ワークロードが長期的で予測可能な使用を必要とする場合、Amazon EKS クラスター (EC2 インスタンス) のワーカーノードもこのコスト削減モデルからメリットを得ることができます。

高可用性と一貫したパフォーマンスを必要とする本稼働サービス、データベース、およびその他のステートフルアプリケーションは、リザーブドインスタンスに適した安定したワークロードの例です。

リザーブドインスタンスには、次の主要な機能があります。

  • コスト削減 – リザーブドインスタンスは、期間の長さ (1 年または 3 年) と支払いプラン (全額前払い、一部前払い、前払いなし) に応じて、オンデマンドインスタンスと比較して節約を提供します。

  • 長期コミットメント – 特定のインスタンスタイプ、サイズ、および について、1 年または 3 年の期間をコミットします AWS リージョン。これは、安定していて、時間の経過とともに継続的に実行されるワークロードに最適です。

  • 予測可能な料金 – リザーブドインスタンスは特定の期間にコミットされているため、予測可能な月額または前払いコストを提供するため、長期ワークロードの予算編成が容易になります。

  • インスタンスの柔軟性 – コンバーティブルリザーブドインスタンスでは、予約期間中にインスタンスタイプ、ファミリー、またはサイズを変更できます。コンバーティブルリザーブドインスタンスは、スタンダードリザーブドインスタンスよりも柔軟性が高く、変更はできません。

  • 保証された容量 – リザーブドインスタンスは、予約が行われたアベイラビリティーゾーンで容量を利用できるようにします。これは、一貫したコンピューティング能力を必要とする重要なワークロードにとって不可欠です。

  • 中断リスクなし – スポットインスタンスとは異なり、リザーブドインスタンスは によって中断されることはありません AWS。これにより、保証された稼働時間を必要とするミッションクリティカルなワークロードの実行に最適です。

AWS Graviton インスタンス

AWS Graviton は、クラウドワークロードのパフォーマンスとコスト効率を向上させる AWS ために によって設計された ARM ベースのプロセッサのファミリーです。Amazon EKS のコンテキストでは、Graviton インスタンスをワーカーノードとして使用して Kubernetes ワークロードを実行し、大幅なパフォーマンスの向上とコスト削減を実現できます。

Graviton インスタンスは、x86 インスタンスよりも高い価格パフォーマンス比を提供するため、クラウドネイティブでコンピューティング集約型のアプリケーションに最適なオプションです。ただし、Graviton インスタンスの採用を検討する場合は、ARM の互換性を考慮してください。

AWS Graviton インスタンスには、次の主要な機能があります。

  • ARM ベースのアーキテクチャ – AWS Graviton プロセッサは ARM アーキテクチャ上に構築されています。これは従来の x86 アーキテクチャとは異なりますが、多くのワークロードに対して非常に効率的です。

  • コスト効率 – Graviton ベースの Amazon EC2 インスタンスは、通常、x86 ベースの EC2 インスタンスよりも優れた価格パフォーマンスを提供します。これにより、Amazon EKS を実行する Kubernetes クラスターにとって魅力的なオプションになります。

  • パフォーマンス – Graviton の第 2 世代である Graviton2 プロセッサは、コンピューティングパフォーマンス、メモリスループット、エネルギー効率の点で大幅に改善されています。 AWS CPU を大量に消費し、メモリを大量に消費するワークロードに最適です。

  • 多様なインスタンスタイプ – Graviton インスタンスには、t4g、m7g、c7g、r7g などのさまざまなファミリーがあり、汎用からコンピューティング最適化、メモリ最適化、バースト可能なワークロードまで、さまざまなユースケースに対応しています。

  • Amazon EKS ノードグループ – Amazon EKS によって管理されるノードグループまたはセルフマネージド型ノードグループを設定して、Graviton ベースのインスタンスを含めることができます。このアプローチでは、x86 ベースのインスタンスとともに同じ Kubernetes クラスターで ARM アーキテクチャに最適化されたワークロードを実行できます。