高可用性・耐障害性の設計応用
あるWebアプリケーションがAuto Scalingグループ内の複数のEC2インスタンスと、Application Load Balancer(ALB)を使用しています。Auto ScalingグループのヘルスチェックタイプはデフォルトのEC2のままです。あるインスタンスでアプリケーションがクラッシュしましたが、EC2ステータスチェックは正常です。ALBとAuto Scalingはそれぞれどのように動作しますか?
A.ALBはヘルスチェック失敗を検知してトラフィックを停止するが、Auto Scalingはインフラレベルのヘルスチェック(EC2ステータス)のみを見るため、アプリクラッシュは検知できず自動交換は行われない← 正解
✓ 正解です。ALBは自身のヘルスチェックに失敗したインスタンスへのルーティングを停止します。一方、デフォルト設定のAuto ScalingはEC2ステータスチェックを使用するため、EC2が正常ならアプリケーションのクラッシュだけではインスタンスを交換しません。
B.ALBのヘルスチェックが失敗し、そのインスタンスへのトラフィックルーティングを停止する。Auto Scalingも独自のヘルスチェックで異常を検知し、インスタンスを終了して新しいインスタンスを起動する
✗ Auto ScalingがALBのヘルスチェック結果を使うには、そのヘルスチェックを明示的に有効化する必要があります。デフォルトのEC2ヘルスチェックだけではアプリケーションの異常を検知できません。
C.ALBのヘルスチェックが失敗すると、そのインスタンスは即座に終了される。Auto Scalingは新しいインスタンスを起動するが、ALBは新インスタンスのヘルスチェック完了前からトラフィックを送信する
✗ ALBはトラフィックを停止しますが、インスタンスを直接終了する権限はありません。また新インスタンスはヘルスチェック通過後にトラフィックを受けます。
D.Auto Scalingがヘルスチェック失敗を検知してインスタンスを交換するが、ALBはAuto Scalingから通知を受けるまでそのインスタンスへのルーティングを継続する
✗ ALBは独自のヘルスチェックで即座にルーティングを停止します。Auto Scalingからの通知を待つ設計ではありません。
この問題のポイント
ALBは自身のヘルスチェックに失敗したインスタンスへのルーティングを停止します。一方、デフォルト設定のAuto ScalingはEC2ステータスチェックを使用するため、EC2が正常ならアプリケーションのクラッシュだけではインスタンスを交換しません。
「高可用性・耐障害性の設計」の他の問題
IT・クラウド の関連資格
AWS Certified Cloud Practitioner(CLF-C02)
AWSクラウドの入門資格。クラウドの概念・AWSのコアサービス・セキュリティ・料金モデルを問う。
DP-900:Microsoft Azure Data Fundamentals
Azureのデータサービスの基礎を問うMicrosoft認定資格。リレーショナル/非リレーショナルデータ、分析ワークロード、コアのデータ概念を扱う。
AZ-900:Microsoft Azure Fundamentals
クラウドとAzureの基礎を問うMicrosoft認定資格。クラウドの概念、Azureの主要サービス、セキュリティ・コンプライアンス・料金を扱う。