SAA-C03弾力性に優れたアーキテクチャの設計MEDIUM単一選択

ある企業が、Amazon EKS でマイクロサービスを運用しており、特定のサービスへのトラフィックが急増したときに、そのサービスの Kubernetes Pod 数を自動的にスケールアウトさせたい。CPU 使用率や カスタムメトリクス(リクエストキュー長等)に基づいてスケールしたい。最も適切な方法はどれか。

  1. A. Kubernetes の HPA に KEDA(Kubernetes Event-driven Autoscaling)を組み合わせ、AWS CloudWatch メトリクス(カスタムメトリクス含む)や SQS キュー長などの外部メトリクスに基づいて Pod 数をスケールする。
  2. B. EKS クラスター全体のノード数を固定で増やして Pod のスケジュールに必要なリソースを確保する。
  3. C. Kubernetes の HPA(Horizontal Pod Autoscaler)を設定し、CPU 使用率に基づいて Pod 数をスケールする。
  4. D. AWS Auto Scaling グループのスケーリングポリシーで EKS ノードをスケールし、Pod は自動的に追加される。
解答と解説を見る

正解: A

KEDA(Kubernetes Event-driven Autoscaling)は HPA を拡張して外部のイベントソース(CloudWatch メトリクス、SQS キュー長、Kafka オフセット等)に基づいて Pod のスケールを制御できる。AWS CloudWatch のカスタムメトリクスにも対応しており、リクエストキュー長などのビジネスメトリクスでのスケーリングが可能。CPU/メモリ以外のメトリクスでのスケールが必要な場合のデファクトスタンダード。選択肢CのKubernetes HPA は CPU・メモリ使用率には標準対応しているが、カスタムメトリクスや外部メトリクスには Custom Metrics API または External Metrics API のアダプターが必要で、KEDA はそれを簡単に実装できるラッパーである。CPU のみで十分な場合は HPA で良いが、カスタムメトリクス要件があるため KEDA が適切。選択肢BのEKS ノード数の固定増加は動的なスケーリングではなく、過剰プロビジョニングとなりコスト効率が悪い。選択肢DのAuto Scaling グループでのノードスケールは Pod のスケールとは異なる概念で、Pod 数の制御には HPA/KEDA が必要。

▸ この試験を本気で演習する(全150問・無料)