Auto Scaliing、Elastic Load Balancingで管理されたアプリケーションを削除する方法
複数のAWSサービスが連携している時に削除する順番
Auto Scalingを使っているときに故意にインスタンスを落とすと、良くも悪くも自動で新しいインスタンスを起動しますので、消したつもりが消えてないということが起こりがちです。アンデットですw。そこで今回は、Auto Scalingグループに所属しているインスタンスを安全に落とす方法をご紹介します。
Auto Scalingグループの設定をアップデートする
答えは簡単です。maxとminをゼロにすることです。まずは現在の状況確認から
$ as-describe-auto-scaling-groups --region ap-northeast-1 AUTO-SCALING-GROUP mygroup3 t1config2 ap-northeast-1b,ap-northeast-1a MyLB 2 4 2 INSTANCE i-680b2c69 ap-northeast-1b InService Healthy t1config2 INSTANCE i-6a0b2c6b ap-northeast-1a InService Healthy t1config2
設定を更新してみましょう。
$ as-update-auto-scaling-group mygroup3 --min-size 0 --max-size 0 -region ap-northeast-1 OK-Updated AutoScalingGroup
ステータスを確認します。Terminatingということで、落としている最中です。
$ as-describe-auto-scaling-groups --region ap-northeast-1 AUTO-SCALING-GROUP mygroup3 t1config2 ap-northeast-1b,ap-northeast-1a MyLB 0 0 0 INSTANCE i-680b2c69 ap-northeast-1b Terminating Healthy t1config2 INSTANCE i-6a0b2c6b ap-northeast-1a Terminating Healthy t1config2
少し時間をおいて再度確認します。消えましたね。
$ as-describe-auto-scaling-groups --region ap-northeast-1 AUTO-SCALING-GROUP mygroup3 t1config2 ap-northeast-1b,ap-northeast-1a MyLB 0 0 0
改めてAuto Scalingグループを削除します。
$ as-delete-auto-scaling-group mygroup3 --region ap-northeast-1 Are you sure you want to delete this AutoScalingGroup? [Ny]y OK-Deleted AutoScalingGroup
無事に消えました。
--force-deleteオプション
実はオチがあるのですが、--force-deleteオプションを指定すれば配下のインスタンスも含めて強制的に落とすことができます。さらに、--forceオプションを指定すれば確認プロンプトも表示されません。グループを作成してから削除する一連の動作を確認します。
$ as-create-launch-config t1config2 --region ap-northeast-1 --image-id ami-9a54e19b \ --instance-type t1.micro --group default --key mykey1 OK-Created launch config $ as-create-auto-scaling-group mygroup3 --launch-configuration t1config2 \ --availability-zones ap-northeast-1a,ap-northeast-1b --min-size 2 --max-size 4 \ --load-balancers MyLB --region ap-northeast-1 OK-Created AutoScalingGroup $ as-delete-auto-scaling-group mygroup3 --force-delete --force --region ap-northeast-1 OK-Deleted AutoScalingGroup
CloudWatchのアラームを削除する
コマンドからCloudWatchのアラームを削除します。
$ mon-delete-alarms myhighcpualarm2 --region ap-northeast-1 Are you sure you want to delete these Alarms? [Ny]y OK-Deleted alarms $ mon-delete-alarms mylowcpualarm2 --region ap-northeast-1 Are you sure you want to delete these Alarms? [Ny]y OK-Deleted alarms
ELBを削除する
コマンドからELBを削除します。
$ elb-delete-lb MyLB --region ap-northeast-1 Warning: Deleting a LoadBalancer can lead to service disruption to any customers connected to the LoadBalancer. Are you sure you want to delete this LoadBalancer? [Ny]y OK-Deleting LoadBalancer
まとめ
AWSの各種サービスはコマンドから簡単に設定やインスタンスを削除することができました。削除する際には関連するサービスを先に消すか、強制削除を指定することで簡単に消せます。そろそろ使いこなしてきましたね!