9
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS EC2オートスケーリングで新しいインスタンスの準備ができるまでアタッチを待機させるには

Last updated at Posted at 2018-06-22

結論

ライフサイクルフックを設定する。

概要

オートスケーリングによってALBにWebアプリサーバのEC2インスタンスが追加された時、一時的に一部のリクエストが502 Bad Gatewayなどを返す現象が発生する場合があります。

おそらく新しいインスタンスのソフトウェアの起動などの準備ができる前にALBにアタッチされてしまうのが原因だろうな。ということで、インスタンスが起動してからALBにアタッチするまでに待ち時間を入れる方法がないか調べてみました。

Auto Scalingグループの待機時間設定

それっぽい設定として、Auto Scalingグループの「デフォルトのクールダウン」と「ヘルスチェックの猶予期間」というのがありますが、これらは目的のものとは違いました。まずはこの2つの設定の意味について。

デフォルトのクールダウン

インスタンスを起動、追加している最中に、さらにインスタンスが追加されてしまうことがないようにするための待ち時間。デフォルトは5分。

ヘルスチェックの猶予期間

インスタンスを起動、追加している最中に、Unhealthyと判定されて起動したばかりのインスタンスが削除されしまうことがなようにすための待ち時間。デフォルトは5分。

ということで期待したものと違いましたね。正解としては「ライフサイクルフック」を追加することで、インスタンス起動後に一定時間待機させることができました。

ライフサイクルフックでALBへのアタッチを待機

コンソールのAuto Scalingグループの「ライフサイクルフック」タブを開き、「ライフサイクルフックの作成」をクリックします。次のような設定で作成します。

EC2_Management_Console.png

ライフサイクルフックタイプ
インスタンスの作成
ハートビートのタイムアウト
120(待機時間秒数)
デフォルトの結果
CONTINUE

この設定を入れると、スケールアウトで新しいEC2インスタンスが起動した後、2分間待機してからALBにアタッチされるようになります。

9
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?