Auto Scaliing、Elastic Load Balancingで管理されたアプリケーションを削除する方法

AWS

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

複数の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の各種サービスはコマンドから簡単に設定やインスタンスを削除することができました。削除する際には関連するサービスを先に消すか、強制削除を指定することで簡単に消せます。そろそろ使いこなしてきましたね!