##概要
期間限定のキャンペーンなどで負荷が増加した際、EC2インスタンスを増設して一時的な処理の増加に対応したり、逆に負荷が低下した状態ならEC2インスタンスを減らしたりできる
スケールアウトは複数のアベイラビリティゾーンで均等のサーバー数になるようにスケールアウトされます。 数が均等な場合は、ランダムにスケールアウトされます。
##起動テンプレート
EC2を起動するテンプレートのようなもので、何のAMIを使うか、インスタンスタイプは何か、キーペアはどれか、セキュリティグループなど通常EC2を手動で設定する内容をひとまとめにした機能
何のインスタンスを動かすか、起動テンプレートを作成する
※起動設定(旧版)
起動テンプレートは、内容を更新する際にバージョン管理ができる点に対して
起動設定は別のファイルとして管理しなければならない
AWSは起動テンプレートの使用を推奨しています
##AutoScalingグループ
起動テンプレート作成後に設定する
どの起動テンプレートを使用するかを設定するため、先に使用する起動テンプレートと紐付ける
他にELBのターゲットグループと紐付けできる
EC2をどれくらい作成していくかを指定する。
設定内容は最小、希望、最大
希望とはAutoScalingグループ作成直後のEC2インスタンスの作成される数
Auto Scalingグループを作成するときは、起動設定を指定する必要があります。複数のAuto Scalingグループに同じ起動設定を指定することができます。ただし、Auto Scalingグループに対して1つの起動設定のみを指定でき、作成後に起動設定を変更することは出来ません。 したがって、Auto Scalingグループの起動設定を変更する場合は、起動設定を作成してから、Auto Scalingグループを新しい起動設定で更新する必要がある。
##スケーリングポリシー
CloudWatchでメトリクスが発行され、設定したアラームと紐づけることで、EC2を追加したり削除したりできるルールのことで、一つのAutoScalingに対し、複数条件を設定できる
(例)アクセス数の増減により↓
・負荷が70%を越えた状態ならEC2を1つ追加(限度は最大まで)
・負荷が30%を切っていたらEC2を1つ削除(限度は最小まで)
##運用について
AutoScalingにはスケジュールに基づくスケーリングを設定することができます。例えば毎朝午前 8:30 に業務を開始する場合、処理の増加を予め見越して8:00 からスケーリングを開始すると十分余裕が得られます。 定期的に処理が集中するシステムの運用はスケジュールを利用したスケーリングを設定すべきです。 ネットワークトラフィックの増加を検知してからスケールアウトを行うと業務に間に合わない可能性があります。 また、リザーブドインスタンスやスポットインスタンスを利用する方法も予測に対するアプローチとしては間違いです。
##実装の流れ
##参考
この記事はAWS初学者を導く体系的な動画学習サービス
「AWS CloudTech」の課題カリキュラムで作成しました。
https://aws-cloud-tech.com