share facebook facebook twitter menu hatena pocket slack

2019.10.02 WED

Auto Scalingグループの「ヘルスチェックの猶予期間」

新川 貴章

WRITTEN BY 新川 貴章

不要ならなくしちゃえ、ASのヘルスチェックの猶予期間

概要

  • ELB、EC2 Auto Scalingは何度か使用したことがあっても、ELBとAuto Scaling グループの設定は類似したものがあり、理解が難しいものです。
  • 今回は、EC2 Auto Scaling を利用していて、スケールアウト時に時間が掛かっていたため、Auto Scalingグループの設定である「ヘルスチェックの猶予期間」をデフォルト値から変更した件です。

「ヘルスチェックの猶予期間」を変更する

パラメータを理解する

  • 今回対象とするシステムは、EC2がCPU負荷に応じてスケールアウトするAuto Scalingを採用しています。EC2 は、起動テンプレートのUserData によって、アプリケーションの初期化を実施しますが、この初期化には数分を要します。
  • ドキュメントには、下記の記載があります。先ず最初のステップは、EC2 の起動によって、EC2としてのステータスチェックが行われます。

インスタンスが完全に設定され、最初のヘルスチェックに合格すると、Amazon EC2 Auto Scaling によって正常であると見なされ、InService 状態へ移行します。

  • 次のステップは、Auto Scalingのライフサイクルフックアクションです。今回は、起動テンプレートに設定したUserData によって、アプリケーションの初期化が行われます。
  • 最後のステップは、Auto Scalingのヘルスチェックです。「ヘルスチェックの猶予期間」はアプリケーションのためのウォームアップ期間であり、ライフサイクルフックアクションが完了後に開始されるとのことです。つまり、アプリケーションの準備に掛かる待ち時間をライフサイクルフックアクション、Auto Scalingグループの「ヘルスチェックの猶予期間」の両方で設定しており、(今回担当したシステムに関しては)過剰であったと判断しました。

多くの場合、サービス状態になったばかりの Auto Scaling インスタンスは、ヘルスチェックに合格する前にウォームアップが必要です。Amazon EC2 Auto Scaling は、インスタンスのヘルスステータスをチェックする前に、ヘルスチェックの猶予期間が終了するまで待機します。Amazon EC2 ステータスチェックと Elastic Load Balancing ヘルスチェックは、ヘルスチェックの猶予期間が終了する前に完了することができます。ただし、Amazon EC2 Auto Scaling はヘルスチェックの猶予期間が終了するまで、それらに対応しません。インスタンスに十分なウォームアップ期間を設けるためには、アプリケーションで想定される開始期間に対応するようにヘルスチェックの猶予期間を設定します。ライフサイクルフックを追加した場合、ヘルスチェックの猶予期間が始まるのは、ライフサイクルフックアクションが完了してインスタンスが InService 状態になってからになります。

  • 出典元は、下記ドキュメントとなります。
Amazon EC2 Auto Scaling のヘルスチェックについて説明します。

「ヘルスチェックの猶予期間」を”0″秒に変更してみる

  • Auto Scalingグループの「ヘルスチェックの猶予期間」は、デフォルトで300秒(5分)です。
  • 「ヘルスチェックの猶予期間」を”0秒”とします。(もちろん、システムの構成やポリシーによって異なりますので、ご注意ください)

  • 最後に各Auto Scalingグループの「ヘルスチェックの猶予期間」が正しいかをチェックします。

参考資料

  • 人間はせっかく覚えても忘れる生き物。この機会に、ELB、Auto Scalingグループのヘルスチェックを正しく理解したいものです。以前、まとめた記事を参考にしてください。
ELBのヘルスチェックを理解するELBヘルスチェックとは今回、ターゲットのCPU使用率が高くヘルスチェックの応答が遅延する事象を経験しました。ヘルスチェックのタイムアウトについて調べ、設定を変更しましたので、まとめます。先ず、ELBヘルスチェックについて整理...
Auto Scalingのヘルスチェックを理解するALB + EC2 のヘルスチェック落とし穴簡単そうに見えるAuto Scalingも色々と失敗があります。今回は、ヘルスチェックの落とし穴をご紹介します。ALB + EC2 構成で設定すべきヘルスチェックは2種類あります。1つ目のヘルスチェ...
AWS Black Belt Online Seminar 2017 Auto Scaling

元記事はこちら

Auto Scalingグループの「ヘルスチェックの猶予期間」

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。