AWSコンソール上ではコンピューティング -> EC2の中にある
管理ツールにある「AWS Auto Scaling」とは別物っぽい。
今まで使用していたのものは「Amazon EC2 Auto Scaling」になるのかな。
Amazon EC2 Auto Scalingの構成要素
- 起動設定
- Auto Scalingグループ
- Scalingポリシー
起動設定
- AMI
- インスタンスタイプ
- 起動設定の名前
- IAMロール(なしでもOK)
- スポットインスタンス利用する/しない(価格設定)
- 詳細モニタリングを有効化するか
- ストレージ・セキュリティグループ
- key pair
Auto Scaling グループ(起動設定含む)
- グループ名
- グループサイズ(開始時のインスタンス数:0も可)
- ネットワーク(VPC/SUBNET)
- ClassicLoadBalancerのAutoScalingに紐づけるか
- ヘルスチェック(インスタンスサービス開始からの猶予時間。ロードバランサーと紐づけるとELB,EC2の選択もある)
- インスタンスの保護(スケールインしない)
- サービスにリンクされたロール
- 通知設定
- Tag
上記で作成したAuto Scalingグループに対して、ポリシーを設定する
(グループ作成時、作成後のどちらでも可)
Scalingポリシー
- 名前
- メトリクスタイプ(ターゲット別リクエスト数/CPU平均使用率/平均NW入力バイト/平均NW出力バイト)
- ターゲット値(メトリクスタイプの閾値)
- ウォームアップする秒数(この間はグループのメトリクスに入らない)
- スケールインの無効化
補足
基本的に素のAMIを使用することはないはずなので、カスタムしたAMIか、ユーザデータを利用して初期設定をするかの選択。カスタムAMIをAWSではGolden AMIと呼ぶ
運用方法として下記が考えられる
負荷に合わせてスケールさせるケース
- スケジュールベース: ピーク時間がわかる場合に採用する。Pre-Warmingの申請との違いがよくわからない
- ルールベース: スケーリングポリシーで設定したメトリクス/ターゲットでスケールさせる
障害時に備えるケース
- オートヒーリング: 最小台数を希望台数を合わせることによって台数を維持する。
インスタンスの起動時間を待てるサービス(最低15分程度のサービス停止)であれば、最低1台は動く様に設定することで自動化できる