CloudFormationの動作
- LaunchConfiguration に更新があった場合、新規 LaunchConfiguration が作成される
- AutoScalingGroup の UpdatePolicy に従って順次新規EC2インスタンスに切替わる
- 切替え処理が成功すると旧 LaunchConfiguration は削除される
CloudFormationテンプレート
AWS::AutoScaling::AutoScalingGroup
リソースの定義内で UpdatePolicy
を指定する。
-
MinInstancesInService
で指定した台数を残しつつMaxBatchSize
で指定した台数の範囲でterminateとrunを繰り返す。 -
WaitOnResourceSignals
がtrueの場合、インスタンス起動時にcfn-signal
やaws cloudformation signal-resource
でCloudFormationに起動完了を通知してやる必要がある。 -
PauseTime
はWaitOnResourceSignals
を指定するかどうかで少し意味合いが変わる。trueの場合signal-resource
の通知を待機するタイムアウト時間になり、タイムアウトするとupdate失敗になる。falseの場合は起動成否を確認できないので、単純に次のインスタンスを起動するまでのインターバルになる。
詳細はUpdatePolicyに関するドキュメントを参照。
{
"Resources": {
"Group": {
"Type": "AWS::AutoScaling::AutoScalingGroup",
"UpdatePolicy": {
"AutoScalingRollingUpdate": {
"MaxBatchSize": "2",
"MinInstancesInService": "5",
"PauseTime": "PT10M",
"WaitOnResourceSignals": "true"
},
"AutoScalingScheduledAction" : {
"IgnoreUnmodifiedGroupSizeProperties" : "true"
}
},
"Properties": {
:
}
}
}
}
注意点
- LaunchConfiguration内のMetadataに変更があっても検知されずupdateは行われない。