無限ノック › SAP 練習問題一覧 › 問題
SAP既存のソリューションの継続的改善

あるEコマース企業は、コンテナ化されたマイクロサービスをAmazon EKS上で実行しています。トラフィックは予測不可能であり、突発的なスパイクが頻繁に発生します。現在、Horizontal Pod Autoscaler(HPA)とCluster Autoscalerを使用していますが、新しいEC2ノードがプロビジョニングされてポッドがスケジュールされるまでに数分の遅延が発生し、その間にリクエストがタイムアウトする問題が起きています。パフォーマンスを改善し、スケーリングの遅延を解消するための最もコスト効率の高いアプローチはどれですか。

A
優先度の低いダミーのポッドをデプロイしておく「ポッドのオーバープロビジョニング(Pod Overprovisioning)」を構成し、急なスパイク時に即座にリソースを解放して実際のポッドに割り当てる
✓ 正解
PriorityClassを利用して低い優先度のPauseポッドをデプロイしておくことで、事前にノードのキャパシティを確保できます。スパイク発生時にはこれらが即座に退去させられ、実際のポッドが待機時間なしで起動できるため最適な解決策です。
B
Cluster Autoscalerのスケールアップ評価間隔を10秒に短縮し、HPAのターゲットCPU使用率のしきい値を90%から50%に引き下げてノード追加を前倒しする
オートスケーラーの評価間隔を短縮しても、EC2インスタンス自体のOSブートやネットワーク設定にかかる物理的な起動時間は短縮されません。しきい値の引き下げは一時しのぎにはなりますが、スパイクの立ち上がり速度には対応しきれません。
C
すべてのワーカーノードをAWS Fargateプロファイルに移行し、EC2インスタンスの起動プロセスをバイパスすることでポッドの起動時間をミリ秒単位に短縮する
AWS Fargateはサーバーレスのコンテナ実行環境を提供しますが、ポッドが新しくスケジュールされるたびにマイクロVMのプロビジョニングが発生するため、EC2ノード上の空きリソースにポッドをスケジュールするよりも起動に時間がかかる場合があります。
D
Amazon EKSのワーカーノードグループにリザーブドインスタンスを多めに購入して常時稼働させ、スケールアウトが発生しないように十分なキャパシティを維持する
リザーブドインスタンスを大量に購入して常に過剰なキャパシティを稼働させておくアプローチは、予測不可能なトラフィックに対してパフォーマンスの要件は満たせますが、アイドルリソースのコストが劇的に増大するため「最もコスト効率が高い」という条件に反します。

解説

Amazon EKSやKubernetesにおいて、予測不可能なトラフィックスパイクに対するノードのプロビジョニング遅延(コールドスタート)を解決するベストプラクティスは、「ポッドのオーバープロビジョニング(Pod Overprovisioning)」です。これは、PriorityClassを使用して非常に低い優先度(マイナス値など)を設定した「Pauseポッド(何も処理を行わないダミーのポッド)」を事前に複数デプロイしておく手法です。これにより、Cluster Autoscalerはこれらのダミーポッドを収容するために事前にノードを追加します。突発的なスパイクが発生して実際のアプリケーションポッド(高い優先度)がスケジュールされると、Kubernetesのスケジューラは即座にダミーポッドを退役(Evict)させ、既に起動済みのノードの空きリソースを実際のポッドに割り当てます。これにより、数分かかるEC2の起動を待つことなく即座にスケールアウトが可能になります。 選択肢AはPriorityClassを用いた低優先度のPauseポッドを事前配置する方法であり、スパイク時に既存ノードの空きリソースを即座に実際のポッドへ解放できます。EC2ノードのプロビジョニング遅延を回避しつつコスト効率も維持できるため最も推奨されます。 選択肢BはCluster Autoscalerの評価間隔短縮とHPAのしきい値調整を組み合わせる方法ですが、スケーリングの検知タイミングを早めるだけであり、EC2ノードの実際の起動時間(数分)そのものを短縮することはできないため、根本的な解決策になりません。 選択肢CはFargateへの移行によりEC2ノードの起動待ちをなくす方法ですが、FargateはEC2と比較して一般的にコストが高く、コスト効率の高いアプローチとは言えません。また「ミリ秒単位で短縮」という表現は過大評価であり、Fargateポッドの起動にも実際には数十秒かかります。 選択肢DはReserved Instancesで常時大量のキャパシティを確保する方法ですが、未使用リソースにも費用が継続的に発生するため、スパイクが予測不可能な環境では最もコスト効率が低いアプローチです。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでSAPを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← SAP の問題一覧に戻る