Auto Scaling
概要
- EC2インスタンスを自動増減できる。
- メリットは高可用性、耐障害性、コスト効率化。
- スケーリングは「起動設定」と「グループ」を設定したうえで、「ポリシー」または「スケジュール」により行われる。
- 利用は無料。
水平スケーリング
- Auto Scaling では水平スケーリングを行う。
- 水平スケーリングは、インスタンス数を変更することで対応する。
※垂直スケーリングはシステムサイズの変更(システムの設計変更)が発生するためスケールさせずらい。
Auto Scaling の設定
起動設定
項目 | 概要 |
---|---|
AMI | Amazon Machine Image AWS EC2 - ITとかCockatielとか 参照 |
インスタンスタイプ | AWS EC2 - ITとかCockatielとか 参照 |
IAMロール | |
ユーザーデータ | 後述。 |
ストレージ | 起動するEC2のストレージを設定する。 |
セキュリティグループ | AWS EC2 - ITとかCockatielとか 参照 |
キーペア | AWS EC2 - ITとかCockatielとか 参照 |
Auto Scaling グループ
項目 | 概要 |
---|---|
起動名設定 | 名称を設定する。 |
アベイラビリティゾーン (サブネット) |
|
ELBのターゲットグループ | AWS ELB - ITとかCockatielとか 参照 |
インスタンス数 | 最小、最大、希望数 |
通知 | スケーリングアクション時の通知設定。 |
タグ | 判別のためのタグを設定する。。 |
Auto Scaling ポリシー
- ターゲットポリシー
メトリクスポリシー(CPUの平均使用率など)に応じ、EC2インスタンスを最小~最大数の間で調整する。 - シンプルポリシー
CloudWatchのアラームによりスケーリングを行う。
クールダウン機能により、スケーリングアクションが連続して発生することを防ぐ。 - ステップポリシー
複数段階でのインスタンス追加、削除を設定する。
ウォームアップ機能によりインスタンスが連続して追加されることを防ぐ。
スケジュール
- 時間を指定したスケジュールによるスケーリング設定も可能。
アプリケーションデプロイの自動化
- 前提として、EC2インスタンスはステートレスで設計する。
- バージョンアップ等のデプロイを自動化するためには、ブートストラップという設計パターンを適用する。
ユーザーデータ
メタデータ
- 設定値の取得時に参照する情報。
- パブリックIPアドレスの取得などが行える。