概要
複数台のEC2がELBに接続されてるシステムにおいて、ローリングでEC2をスケールダウンする際のオペレーションフローをまとめてみました。
あくまでインフラ・ミドルウェアのフローなので、実際にはここにアプリケーションに必要な手順が入ることになります。
フロー
スケールダウン対象のインスタンスを ins とします。
- 要件確認
- 影響範囲確認
- 現状の負荷が、一台切り離しても耐えうるものなのかを確認
- フロー確認
- チーム内周知
- 作業報告
- 監視をメンテナンスに
- 対象ホストがメンテナンス状態になっていることを確認
-
ins が現状実際にロードバランシング対象になっていることを確認
- AWS コンパネから ELB の設定とヘルスチェックの状態を確認
- ins にログインし、アクセスログを見て、アクセスが来ていることを確認
-
ins を LB から切り離し
- AWS コンパネで切り離されていることを確認
- ins にログインし、アクセスログから、アクセスが来ていないことを確認
- LB につながっている他のインスタンスの負荷を確認
- Zabbix 等でモニタリング
-
ins のプロセスを停止
- ins にログインし、プロセスを停止
- ps コマンドなどでプロセスが停止していることを確認
-
ins を停止
-
ins にログインし、他ユーザがログインしていないことを確認(
w
コマンド) - コマンドでインスタンスを停止(
sudo shutdown -h now
)
-
ins にログインし、他ユーザがログインしていないことを確認(
- ins のインスタンスタイプを変更
-
ins を起動
- コンパネから起動
-
ins にログインし、インスタンスタイプが変わっていることを確認(
sudo cat /proc/meminfo;
) - 必要なプロセスが起動していることを確認
- localhost でアクセスできるか確認(
curl localhost:80
) - ネットワークの port listen を確認(
sudo netstat -tunplo
) - Unix Domin Scoket の確認(
sudo netstat -xnplo
)
- LB に ins を追加
- コンパネから LB の状態を確認し、ins が追加されていることを確認
- コンパネ上でヘルスチェックが正常なのを確認
- ins にログインし、アクセスログからアクセスが来ていることを確認
- LB につながっている他のインスタンスの負荷を確認
- Zabbix 等でモニタリング
- 7 に戻って他のインスタンスにも適用
- 監視をメンテナンスモードから戻す
- 作業完了報告