Udemy講師クーポン配布中。詳しくはこちら(AIP問題集追加しました)

【無料】AWS DOP-C02練習問題10問|Udemy講師作成

AWS DOP無料問題集です。正解と解説を確認する際は右側のボタンを押下してください。

問題集の完全版は以下Udemyにて発売しているためお買い求めください。問題集への質問はUdemyのQA機能もしくはUdemyのメッセージにて承ります。Udemyの問題1から10問抜粋しております。

多くの方にご好評いただき、講師評価 4.5/5.0 を獲得できております。ありがとうございます。

特別価格: 通常2,600円1,500円

講師クーポン適用で42%OFF

講師クーポン【全出題範囲網羅+詳細解説】AWS DOP-C02日本語実践問題225問(DevOps Engineer Pro)

【全出題範囲網羅+詳細解説】AWS DOP-C02日本語実践問題225問(DevOps Engineer Pro)

問題文:
物流企業は、Amazon Elastic Container Service (Amazon ECS)とApplication Load Balancer (ALB)を使用して配送管理APIを運用しています。以前はサービスが安定しており、タスクが効率的に応答していましたが、SREエンジニアが新しいコンテナイメージを使用するようタスク定義を更新し、サービスに適用しました。その結果、サービスがALBのヘルスチェックに失敗し続け、タスクが終了して再起動を繰り返すようになりました。この問題を診断するために、SREエンジニアはどのように対応すべきでしょうか?

選択肢:
A. サービスに関連付けられたセキュリティグループが ALB からのトラフィックを許可していることを確認する。

B. サービスの ALB ヘルスチェックの猶予期間を延長する。

C. サービスの「最低正常率」構成を引き上げる。

D. ALB ヘルスチェックの間隔を短くする。

正解:B

A. サービスに関連付けられたセキュリティグループが ALB からのトラフィックを許可していることを確認する。

不正解 セキュリティグループの設定は、ALBからECSタスクへの接続可否に関わる問題です。もしセキュリティグループが原因であれば、すべてのヘルスチェックが一貫して失敗し、タスクが起動しても接続できないという状態になります。

B. サービスの ALB ヘルスチェックの猶予期間を延長する。

正解 ALBヘルスチェックの猶予期間は、新しいタスクが起動してからヘルスチェックが成功するまでに許容される時間です。問題の説明から、新しいコンテナイメージを使用するようにタスク定義が更新された後に問題が発生したことがわかります。

C. サービスの「最低正常率」構成を引き上げる。

不正解 「最低正常率」はECSサービスのデプロイ設定であり、デプロイ中に維持すべき正常タスクの最小割合を指定します。この値を引き上げると、デプロイ時により多くのタスクが正常である必要がありますが、タスクのヘルスチェック失敗そのものを解決するものではありません。

D. ALB ヘルスチェックの間隔を短くする。

不正解 ヘルスチェックの間隔を短くすると、ヘルスチェックがより頻繁に実行されるようになります。問題の状況では、タスクが初期化に十分な時間を取れていない可能性が高いです。ヘルスチェックの間隔を短くすると、タスクが準備できる前により頻繁にヘルスチェックが実行されることになり、問題をさらに悪化させる可能性があります。

全体的な説明

問われている要件

この問題では、Amazon ECSとALBを使用した配送管理APIにおいて、タスク定義を新しいコンテナイメージに更新した後に発生したサービス障害の診断と解決方法が問われています。具体的には、サービスがALBのヘルスチェックに失敗し続け、タスクが終了して再起動を繰り返すという問題状況において、SREエンジニアとしてどのように対応すべきかを判断する必要があります。

前提知識

Amazon ECSのタスクライフサイクル

Amazon ECSのタスクは、以下のライフサイクルを持ちます:

  1. PROVISIONING: タスクのリソースをプロビジョニングしている状態
  2. PENDING: タスクがコンテナインスタンスに配置される待機状態
  3. RUNNING: タスクが実行中の状態
  4. DEPROVISIONING: タスクが終了処理中の状態
  5. STOPPED: タスクが停止した状態

タスクが正常に終了した場合や、ヘルスチェックに失敗した場合など、様々な理由でタスクは停止状態になることがあります。ECSサービスは、設定された必要タスク数を維持するために、停止したタスクを自動的に再起動します。

Application Load Balancer (ALB) のヘルスチェック

ALBは、ターゲットグループに登録されたターゲット(この場合はECSタスク)の健全性を定期的に確認するためにヘルスチェックを行います。ヘルスチェックには以下の重要な設定があります:

  1. ヘルスチェックのパス: ALBがリクエストを送信するエンドポイント(例:/health)
  2. 間隔: ヘルスチェックを実行する頻度
  3. タイムアウト: ヘルスチェックリクエストに対するレスポンスを待つ時間
  4. 正常しきい値: ターゲットが正常と見なされるまでに必要な連続した成功ヘルスチェックの数
  5. 異常しきい値: ターゲットが異常と見なされるまでに必要な連続した失敗ヘルスチェックの数

ECSサービスの設定

ECSサービスには、デプロイメントとヘルスチェックに関連する重要な設定があります:

  1. デプロイメント設定:
  • 最小正常率: デプロイ中に常に実行状態を維持する必要があるタスクの割合
  • 最大率: 一度に実行できるタスクの最大数(サービスの望ましいタスク数に対する割合)
  1. ヘルスチェック猶予期間:
  • 新しいタスクが起動してから最初のヘルスチェックが実行されるまでの猶予期間
  • この期間中、タスクのヘルスステータスがチェックされない、または失敗しても無視される
  • これにより、タスクがアプリケーションを完全に初期化し、リクエストに応答できるようになるまでの時間を確保できる

コンテナの初期化時間と起動時間

コンテナイメージが変更されると、以下の要因により初期化時間が変わる可能性があります:

  1. アプリケーションの初期化処理:
  • データベース接続の確立
  • キャッシュの準備
  • 設定ファイルの読み込み
  • 依存サービスとの接続確立
  1. コンテナイメージのサイズと内容:
  • イメージサイズが大きい場合、ダウンロードと展開に時間がかかる
  • より多くの依存関係がある場合、初期化に時間がかかる
  1. システムリソース:
  • メモリとCPUの制約が厳しい場合、初期化が遅くなる

新しいコンテナイメージが以前のイメージよりも初期化に時間がかかる場合、既存のヘルスチェック猶予期間が不十分になり、タスクが準備できる前にヘルスチェックが失敗する可能性があります。

ヘルスチェック設定の最適化

ヘルスチェック設定の最適化には、以下の点を考慮する必要があります:

  1. 猶予期間の適切な設定:
  • アプリケーションの実際の起動時間に基づいて設定
  • 余裕を持たせる(例:平均起動時間 + 10〜20秒)
  1. ヘルスチェックエンドポイントの設計:
  • 軽量で高速に応答するエンドポイントを使用
  • アプリケーションの重要なコンポーネントの健全性を確認する
  1. ヘルスチェックの間隔とタイムアウト:
  • 間隔を長くすると、タスクの起動時間に余裕ができる
  • タイムアウトを長くすると、応答時間が遅いタスクでも正常と判断される可能性がある

ヘルスチェックの猶予期間を延長することは、新しいコンテナイメージの初期化時間が長い場合の最も直接的な解決策です。これにより、タスクが完全に起動して応答できるようになるまでの時間を確保できます。

解くための考え方

この問題を解くためには、以下の手順で考えるとよいでしょう:

  1. 問題の根本原因を特定する:
  • 問題が発生したタイミングは「新しいコンテナイメージを使用するようタスク定義を更新し、サービスに適用した後」
  • 症状は「サービスがALBのヘルスチェックに失敗し続け、タスクが終了して再起動を繰り返す」
  1. 可能性のある原因を検討する:
  • 新しいコンテナイメージの初期化時間が長い
  • コンテナが正しく起動していない
  • ヘルスチェックの設定と実際のアプリケーションの状態が一致していない
  • ネットワーク接続の問題
  1. 選択肢を評価する:
  • どの選択肢が問題の根本原因に対処しているか
  • どの選択肢が症状(タスクの再起動サイクル)を緩和できるか

ここで重要なのは、「タスクが終了して再起動を繰り返す」という症状です。これは、タスクが一時的に起動するものの、ALBのヘルスチェックに合格できず、その結果タスクが不健全と判断されて終了し、新しいタスクが起動するというサイクルを示唆しています。新しいコンテナイメージを使用するように変更した直後に問題が発生したことから、新しいイメージが起動して準備が整うまでの時間が、設定されたヘルスチェックの猶予期間よりも長くなっている可能性が高いです。

目次

スポンサーリンク

以下スポンサーリンクです。

この記事がお役に立ちましたら、コーヒー1杯分(300円)の応援をいただけると嬉しいです。いただいた支援は、より良い記事作成のための時間確保や情報収集に活用させていただきます。

目次