Amazon EC2 Auto Scaling
台数の自動増減
負荷やスケジュールに応じて EC2 の台数を自動で増減し、障害のある instance を置き換えます。
- コスト$ 安い
- 難易度●●●●●
- 未使用でも課金?いいえ
- AWS マネージド
- 出題試験CLF · SAA · SOA
たとえるならピーク時にはスタッフを呼び足し、空いている時には帰らせるレストランの店長のようなものです。
EC2 Auto Scaling はシステムのどこにある?
具体例でステップごとに
- チケット販売サイトは普段 EC2 2 台で十分ですが、夜 8 時にコンサートのチケット販売が始まるとアクセスが 10 倍になります。
- 最小 2 台・最大 20 台、3 つの AZ に分散し、平均 CPU を 50% 前後に保つポリシーの Auto Scaling グループを作成します。
- CPU が 50% を超えると、起動テンプレートからインスタンスが追加され、ロードバランサーに登録されます。お客さんが遅さを感じることはありません。
- 販売が落ち着くと CPU が下がり、台数は自動で 2 台に戻るので、必要なときの分だけ支払います。
- インスタンスが故障しても、ヘルスチェックが検知して新しいものに置き換えるので、夜中に誰かが対応する必要はありません。
いつ使う?
✓ 使うべき場面
時間帯によって負荷が変わる場合や、1 台が停止したときに自動復旧させたい場合。
✗ 避けるべき場面
アプリケーションが特定の 1 台でしか動かない場合(ローカルに状態を持つ)。
よくある使い方
- CPU や request 数に応じて自動で増減する Web 層
- N 台を固定で維持し、故障したマシンを自動で置き換え(self-healing)
- スケジュールによる scale(例: 営業時間)
EC2 Auto Scaling・ELB・Lambda の違い
| 役割 | EC2 を追加・削除・置き換える | 稼働中のインスタンスにリクエストを振り分ける | 関数のコピーを自動で増やす |
|---|---|---|---|
| 設定するもの | 最小・最大台数、スケーリングポリシー | リスナー、ターゲットグループ、ヘルスチェック | ほぼ不要(同時実行数の上限あり) |
| 料金 | 無料(EC2 の料金のみ) | 時間料金 + 処理量 | リクエスト数と実行時間 |
| よく組み合わせるもの | ロードバランサーと CloudWatch | Auto Scaling グループ | API Gateway、SQS、S3 |
料金はいくら?
- 課金方式: 無料です。グループが作成した EC2 と関連する CloudWatch アラームの料金のみ支払います。
- 無料枠: Auto Scaling 自体は無料です。
最大数を高く設定しすぎる、または scale-in が遅すぎてマシンが余分に稼働する。health check の誤設定でマシンが置き換えられ続ける。
「1 つの AZ が障害でも耐えられる」なら、複数 AZ にまたがる Auto Scaling グループと ALB です。ピーク時刻が分かっていればスケジュールに基づくスケーリング、指標を一定に保つならターゲット追跡です。インスタンスはステートレスにし、セッションは ElastiCache か DynamoDB に置きます。
本番の試験問題に挑戦
1In an experiment, if the minimum size for an Auto Scaling group is 1 instance, which of the following statements holds true when you terminate the running instance?
- AAuto Scaling must launch a new instance to replace it.
- BAuto Scaling will raise an alarm and send a notification to the user for action.
- CAuto Scaling must configure the schedule activity that terminates the instance after 5 days.
- DAuto Scaling will terminate the experiment.
答えを見る
正解: A
Auto Scaling は常に最小台数を下回らないように保ちます。インスタンスが終了すると、グループが代わりのインスタンスを起動します。
2You need to pass a custom script to new Amazon Linux instances created in your Auto Scaling group. Which feature allows you to accomplish this?
- AUser data.
- BEC2Config service.
- CIAM roles.
- DAWS Config.
答えを見る
正解: A
ユーザーデータはインスタンスの初回起動時に実行されるスクリプトで、Auto Scaling グループの起動テンプレートで定義します。EC2Config は古い Windows 専用で、IAM ロールや AWS Config はスクリプトを実行しません。
よくある質問
スケーリングポリシーにはどんな種類がありますか?
ターゲット追跡は指標を目標値の近くに保ちます(例:CPU 50%)。ステップスケーリングはアラームのしきい値ごとに段階的に増減します。スケジュールに基づくスケーリングは予定に沿って動きます。予測スケーリングは履歴から負荷を予測し、事前にキャパシティを用意します。
EC2 Auto Scaling に料金はかかりますか?
Auto Scaling 自体は無料です。グループが起動する EC2 インスタンスなどのリソースと、スケーリングのきっかけとなる CloudWatch アラームの料金のみがかかります。
AWS 認定試験では Auto Scaling について何が問われますか?
AZ 障害に耐えるため複数 AZ に分散すること、ALB のヘルスチェックと組み合わせて障害インスタンスを自動で置き換えること、シナリオに合ったポリシー(ターゲット追跡やスケジュール)の選択、インスタンス構成を定義する起動テンプレートなどです。