shootacean's blog

shootacean

Web engineer's tech & life blog

CloudFormationで作成したEC2 Auto Scaling Groupスタックが削除されない?

CloudFormationスタックとして作成したEC2 Auto Scaling Groupが削除されなかった際に調べたことを記載します。

shootacean

1

EC2AutoScalingGroupロゴ

CFn(CloudFormation)でEC2 Auto Scaling Groupのスタックを作成して、スケーリングの検証を行った後、
作成したスタックを削除してもEC2 Auto Scaling GroupとEC2インスタンスの削除がされなかったことがありました。

結論

何もしなくても10分程度待てば削除されました。

確認したこと

  • スタック削除の操作後、マネジメントコンソールでEC2 Auto Scaling Groupを確認しても削除中の表示はない
  • 維持インスタンス数、最小インスタンス数、最大インスタンス数が 0 になっていた。
  • EC2 Auto Scaling Groupに紐付いているEC2インスタンスの起動ステータスは動作中のまま
  • 手動でEC2 Auto Scaling GroupとEC2インスタンスを削除すると、スタックも削除される

調査したこと

公式ドキュメントの『自動スケーリンググループの削除』では下記のように記載されていました。

Auto Scalingグループを削除する前にすべてのインスタンスを終了するには、UpdateAutoScalingGroupを呼び出して、Auto Scalingグループの最小サイズと必要な容量をゼロに設定します。 To terminate all instances before deleting the Auto Scaling group, call UpdateAutoScalingGroup and set the minimum size and desired capacity of the Auto Scaling group to zero.

今回のCFnスタック削除でのAutoScalingGroup削除では、上記の方法が取られているようです。

CFnで構成管理するまでは、

  1. マネジメントコンソールからAuto Scaling Groupを作成する
  2. 検証
  3. マネジメントコンソールからAutoScalingGroupを削除する
  4. 紐付いているEC2インスタンスが削除されることを確認

という手順を行っており、AutoScalingGroup削除操作の数秒後にはEC2インスタンスの削除が始まっていたので、
AutoScalingGroupを削除するとほぼ同時にEC2インスタンスも削除されるものだと思っていました。

課題や知らなかったこと

  • 利用するサービスのドキュメントは大雑把でもいいので一通りは読んでおくべき。
  • 設定次第で挙動は異なるし、使用するサービス毎にデフォルトの挙動が異なるのを念頭においておく必要がある。

参考

See more

Web engineer's tech & life blog