Auto Scalingグループ内の各EC2インスタンスの負荷に偏りが発生した場合は、古いインスタンスを終了して新しいインスタンスを起動させる。この場合にスムーズに処理が継続されるように、一時的に最大容量に対して10%のマージンが確保される。
ライフサイクル
Auto Scalingのライフサイクルは以下の通り。
Auto Scalingグループはグループ内のインスタンスに対して定期的にヘルスチェックを行なっている。スケールイン/アウトは、手動もしくはスケーリングポリシーやスケジュールに基づき実行される。スケールイン、ヘルスチェックの失敗、Auto Scalingグループからの離脱等が発生した場合には、Auto Scalingグループ内のEC2インスタンスは終了処理が実施される。
Auto Scalingグループ
起動設定
Auto Scalingグループ内のEC2インスタンスは、起動テンプレートもしくは起動設定の設定内容に基づいて起動される。これらには、AMIのIDやインスタンスタイプ、ネットワーク設定、ストレージの設定、オンデマンドインスタンスとスポットインスタンスの配分等が含まれる。また、起動設定は、既に起動済みのインスタンスの属性を使用して作成することも可能である。Auto Scalingグループに関連付けられる起動設定は1つだけであり、グループ作成後に変更することはできない。Auto Scalingグループに関連づける起動設定を変更する場合は、現在の起動設定をコピーした上で新たな起動設定を作成し、これを当該のAuto Scalingグループに紐づける。
ロードバランサとの連携
Auto Scalingで増減したインスタンスに対して適切にトラフィックが分散されるようにするためには、Elastic Load Balancingの受信トラフィックの通信先にAuto Scalingグループを指定する。Auto Scalingのヘルスチェックは、通常EC2のステータスチェックのみであるが、オプションでELBのヘルスチェックを用いてAuto Scalingグループのヘルスチェックを行う設定にすることも可能である。この場合、ELBから送られる定期的なPINGに応答しないなど、ELBのヘルスチェック合格しなかった場合、このインスタンスは異常ありと判定されて他のインスタンスに置き換えられる。