AMP と EKS で KEDA を使用したアプリケーションの自動スケーリング
現状
Amazon EKS アプリケーションのトラフィック増加への対応は困難であり、手動スケーリングは非効率的でエラーが発生しやすくなります。オートスケーリングは、リソース割り当てのためのより優れたソリューションを提供します。KEDA は、さまざまなメトリクスとイベントに基づいて Kubernetes のオートスケーリングを可能にし、Amazon Managed Service for Prometheus は EKS クラスターに対して安全なメトリクス監視を提供します。このソリューションは、KEDA と Amazon Managed Service for Prometheus を組み合わせ、Requests Per Second (RPS) メトリクスに基づくオートスケーリングを実証します。このアプローチは、ワークロードの需要に合わせた自動スケーリングを提供し、ユーザーは自身の EKS ワークロードに適用できます。Amazon Managed Grafana は、スケーリングパターンの監視と可視化に使用され、ユーザーはオートスケーリングの動作に関する洞察を得て、それらをビジネスイベントと関連付けることができます。
KEDA を使用した AMP メトリクスに基づくアプリケーションの自動スケーリング

このソリューションは、自動スケーリングパイプラインを作成するための AWS とオープンソースソフ トウェアの統合を実証します。マネージド Kubernetes のための Amazon EKS、メトリクス収集のための AWS Distro for Open Telemetry (ADOT)、イベント駆動型オートスケーリングのための KEDA、メトリクスストレージのための Amazon Managed Service for Prometheus、および可視化のための Amazon Managed Grafana を組み合わせています。このアーキテクチャには、EKS への KEDA のデプロイ、メトリクスをスクレイピングするための ADOT の設定、KEDA ScaledObject を使用したオートスケーリングルールの定義、およびスケーリングを監視するための Grafana ダッシュボードの使用が含まれます。オートスケーリングプロセスは、マイクロサービスへのユーザーリクエストから始まり、ADOT がメトリクスを収集し、それらを Prometheus に送信します。KEDA は定期的にこれらのメトリクスをクエリし、スケーリングの必要性を判断し、Horizontal Pod Autoscaler (HPA) と連携してポッドレプリカを調整します。このセットアップにより、Kubernetes マイクロサービスのメトリクス駆動型オートスケーリングが可能になり、さまざまな使用率指標に基づいてスケールできる柔軟なクラウドネイティブアーキテクチャを提供します。
AMP メトリクスを使用した KEDA によるクロスアカウント EKS アプリケーションスケーリング
この場合、KEDA EKS が ID 末尾 117 の AWS アカウントで実行されており、中央 AMP アカウント ID の末尾が 814 であると仮定します。KEDA EKS アカウントで、以下のようにクロスアカウント IAM ロールを設定します。

また、信頼関係を以下のように更新する必要があります。

EKS クラスター内では、ここで IRSA が使用されているため、Pod identity を使用していないことがわかります。

中央の AMP アカウントでは、以下のように AMP アクセスを設定しています

信頼関係にもアクセス権があります

以下のようにワークスペース ID をメモしてください

KEDA 設定
セットアップが完了したら、以下のように keda が実行されていることを確認します。セットアップ手順については、以下で共有されているブログリンクを参照してください

上記で定義した中央の AMP ロールを設定で使用するようにしてください。

KEDA スケーラー設定で、以下のように中央の AMP アカウントを指定します。

これで、Pod が適切にスケーリングされていることを確認できます。
