Auto Scaling
AWSの特徴の一つでもある伸縮自在性を実現する機能がAuto Scalingです。
Auto Scalingは、EC2インスタンスでAuto Scalingグループというグループを構成し、設定に従って自動的にEC2インスタンスの台数を増減させることができます。
※使用料金は無料でコストはAuto Scalingによって起動したインスタンス料金のみ
ユースケース
-
負荷に基づいた利用
Webサイトへのアクセス数が増減するケース -
スケジュールに基づいた利用
チケット販売などで販売開始時刻が決まっているWebサイト -
正常なEC2インスタンスの台数を維持するための利用
数分のダウンタイムは許容される1台構成のシステム
設定項目
1. 起動設定(Launch Configuration)
「どんなEC2インスタンスを起動するか」という設定項目です。
Auto ScalingでEC2インスタンスを増やす際の起動設定で次の項目を設定します。
- AMI
- インスタンスタイプ
- IAMロール
- Cloud Watch 詳細モニタリング
- ユーザデータ
- IPアドレス
- ストレージ
- セキュリティグループ
- キーペア など
2. Auto Scaling Group
「どこにどんな規模のグループ」という設定項目です。
EC2インスタンスが起動するサブネットや特定のELBの配下などどこにという項目の他、最小/最大台数などグループの規模を決める設定で次の項目を設定します。
- スタートのグループサイズ(初期インスタンス数)
- サブネット
- ELB(ヘルスチェック設定含む)
- 最小/最大グループサイズ(インスタンス数) など
3. Auto Scaling ポリシー
「いつ、何台増減させるか」という設定項目です。
例えば負荷に基づくスケーリングであれば、CPU使用率のCloudWatchアラームを設定しておき、OKからアラームに状態遷移した際にアクションとしてAuto Scaling ポリシーを呼び出します。
- アラームXが発生した際(OKからアラームに状態遷移した際)
- N台追加/削除
- 猶予時間(インスタンス増減後に次の増減が発生するまでのクールダウン時間)
Auto Scaling における大原則
Auto Scaling には二つの大原則があります。
一つ目は正常なEC2インスタンスを希望する台数維持するため、インスタンスへのヘルスチェックをかけていることを理解すること。
二つ目はAuto Scaling グループが複数のAZにまたがる時、AZ間でEC2インスタンス数を均等にしてくれるよう考慮されていることです。