前回の記事ではALB(Application Load Balancer)を作成してEC2にトラフィックを振り分ける構成を作りました。今回はAuto Scalingを組み合わせて、アクセス量に応じてEC2インスタンスを自動で増減させる仕組みを構築します。
あわせて読みたい


AWS ALB(Application Load Balancer)を作成してEC2に振り分ける方法【入門】
AWS ALB(Application Load Balancer)を使って、複数のEC2インスタンスにトラフィックを振り分ける構成を作りました。今回は学習目的でEC2を2台用意してALBの基本的な…
目次
Auto Scalingとは
Auto Scalingはアクセス量に応じてEC2インスタンスを自動で増減させる仕組みです。CPU使用率などのメトリクスを監視して、設定したしきい値を超えたら自動でEC2を追加(スケールアウト)、下回ったら自動で削除(スケールイン)します。
通常時:EC2 1台
↓ CPU使用率が70%を超えたら
自動でEC2を追加:2台・3台
↓ CPU使用率が下がったら
自動でEC2を削除:1台に戻る
作業の流れ
- 起動テンプレートを作成する
- Auto Scalingグループを作成する
- スケーリングポリシーを設定する
- 動作確認
STEP1:起動テンプレートの作成
起動テンプレートは「Auto Scalingが新しいEC2を追加する時の設計図」です。どのAMI・インスタンスタイプ・セキュリティグループを使うかをあらかじめ定義しておきます。
- EC2コンソール → 左メニュー「起動テンプレート」
- 「起動テンプレートを作成」をクリック
- 以下の通りに設定する
| 項目 | 設定値 |
|---|---|
| 起動テンプレート名 | charakatsu-lt |
| Auto Scalingのガイダンス | チェックを入れる |
| AMI | Amazon Linux 2023 |
| インスタンスタイプ | t3.micro |
| キーペア | 既存のキーペアを選択 |
| セキュリティグループ | 既存のセキュリティグループを選択 |
| サブネット | 起動テンプレートの設定に含めない |
サブネットは起動テンプレートには含めません。Auto Scalingグループ作成時に設定します。
STEP2:Auto Scalingグループの作成
- EC2コンソール → 左メニュー「Auto Scalingグループ」
- 「Auto Scalingグループを作成する」をクリック
- 以下の通りに設定する
ステップ1:起動テンプレートを選択
| 項目 | 設定値 |
|---|---|
| Auto Scalingグループ名 | charakatsu-asg |
| 起動テンプレート | charakatsu-lt |
ステップ2:ネットワーク設定
| 項目 | 設定値 |
|---|---|
| VPC | デフォルト |
| アベイラビリティーゾーン | ap-northeast-1a・ap-northeast-1c(2つ選択) |
ステップ3:ロードバランサーの設定
| 項目 | 設定値 |
|---|---|
| ロードバランサー | 既存のロードバランサーにアタッチ |
| ターゲットグループ | charakatsu-tg |
| ヘルスチェック | ELBを有効にする(チェックを入れる) |
ステップ4:グループサイズとスケーリング
| 項目 | 設定値 |
|---|---|
| 希望するキャパシティ | 1 |
| 最小の希望するキャパシティ | 1 |
| 最大の希望するキャパシティ | 3 |
| 自動スケーリング | ターゲット追跡スケーリングポリシー |
| スケーリングポリシー名 | charakatsu-scaling-policy |
| メトリクスタイプ | 平均CPU使用率 |
| ターゲット値 | 70% |
「普段は1台、CPU使用率が70%を超えたら自動で最大3台まで増やす」という設定です。通知・タグはスキップしてOKです。
動作確認
Auto Scalingグループを作成すると、希望するキャパシティの1台が自動で起動します。EC2インスタンス一覧を確認すると、新しいインスタンスが追加されているのが確認できます。
ALB + Auto Scalingの全体構成
ユーザー
↓
charakatsu-alb(ALB)
↓
charakatsu-tg(ターゲットグループ)
↓
charakatsu-asg(Auto Scaling)
↓ ↓ ↓
EC2-1 EC2-2 EC2-3
(最小1台) (最大3台まで自動追加)
スケーリングポリシーの種類
| 種類 | 内容 | 向いているケース |
|---|---|---|
| ターゲット追跡スケーリング | CPU使用率などのメトリクスがターゲット値になるよう自動調整 | 一般的なWebサイト(今回使用) |
| ステップスケーリング | メトリクスの値に応じて段階的にスケール | 細かく制御したい場合 |
| スケジュールされたスケーリング | 時間帯を指定してスケール | アクセスの波が予測できる場合 |
まとめ
ALBとAuto Scalingを組み合わせることで、アクセス増加時に自動でEC2を追加する高可用性構成が完成しました。普段は1台で運用してコストを抑えつつ、アクセスが増えたら自動で対応できます。次のステップとしてDockerの学習に進む予定です。

