#はじめに
Auto ScalingグループのAuto Healingの設定を解除する方法について色々と調査した為に備忘録も兼ねて記事にしております。先日、ALB配下にEC2インスタンスを紐付けて更にAuto Scalingを設定して色々と試しておりましたが、料金を見ると中々のお値段だったので、なるべく起動設定などは変更せずに、せめてEC2インスタンスだけは全て停止させておきたいな、と感じて調べてみました。
目的としては、起動しているEC2インスタンスはそのままの起動状態となりますが、停止した、もしくは停止させた場合に新しくインスタンスを起動させないようにしたい、というようなものになります。
#一部のインスタンスをAuto Scalingから外す場合
もし特定のEC2インスタンスをAuto Scalingグループの管理下から外す場合、EC2インスタンスのデタッチを行い、再度Auto Scalingグループの管理下に戻す場合は、対象のEC2インスタンスをアタッチすることになると思います。その場合は以下説明が参考になると思います。
Auto Scaling グループからの EC2 インスタンスのデタッチする
[Auto Scaling グループに EC2 インスタンスをアタッチする]
(https://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/attach-instance-asg.html )
#全てのインスタンスをAuto Scalingの管理下から外したい
ところが全EC2インスタンスを管理下から除外するとなると少し面倒です。簡単に設定を変更して、Auto Scalingの管理下から外したい場合はヘルスチェックプロセスを停止することで実現出来るようです。
仕組みとしてはAuto Scalingグループにはプロセスの一時停止機能が提供されており、一時停止するプロセスで"Health Check"を指定します。その結果、EC2インスタンスおよびALBのヘルスチェックの結果として、インスタンスがUnhealthyとマークされなくなるようです。詳しくは以下ユーザーガイドをご参照ください。
中断の選択 ~ Auto Scaling グループのプロセスを一時停止および再開する
#実際の設定画面
実際に設定すると以下の様になります。
①Auto Scalingグループの選択
コンソール画面の「EC2」から「Auto Scaling グループ」を選択し、対象のグループのチェックボックスにチェックを入れます。
②Auto Scaling設定の編集画面を開く
「Auto Scaling グループ」ページの下部に分割ペインが開かれるので「詳細」タブの下部にある、「高度な設定」欄の「編集」をボタンを押します。
③中断プロセスの設定
高度な設定の中で「中断されたプロセス」欄のプルダウンリストから、「Health Check」を選択します。
④確認と後進
「Health Check」が指定されていることを確認したら「更新」ボタンを押下します。これで設定は完了です。
実行中のEC2インスタンスを停止させても新たなインスタンスは起動されないはずです。
#まとめ
AWSで自宅学習を行っている方、また規模の小さい事務所で手探りで構築を勧めている方などはEC2インスタンスの費用が気になる為にこまめに落としておきたいものの数日後には元に戻したい、ということもあるかと思います。そんな時は結構お世話になるかもしれません。