ASi

CodeDeploy の lifecycle event hook の ValidateService と AfterAllowTraffic

下記記事参考になったのだが、
http://dev.classmethod.jp/cloud/aws/rolling-update-when-codedeploy-using-elb-health-check/


ValidateService で行うと該当の instance の ELB への登録に進まず、デッドロックしてタイムアウトする。


同じことを AfterAllowTraffic で行えば意図通りの動作になったように思われる。


と言うより、


BeforeAllowTraffic ~ AllowTraffic ~ AfterAllowTraffic の間で ELB に繋いだ instance が InService になるのを待つ処理をしているようだ。Deployの詳細画面でインスタンスアクティビティを見ると AllowTraffic にかかる時間が InService の判定時間に一致している。


従って、lifecycle event hook で InService を待つ必要は無い、と言うことになる。