MENU
オンライン講座開催中

AWS Auto ScalingとALBを組み合わせてEC2を自動スケールする方法【入門】

AWS Auto ScalingとALBを組み合わせてEC2を自動スケールする方法【入門】

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

目次

Auto Scalingとは

Auto Scalingはアクセス量に応じてEC2インスタンスを自動で増減させる仕組みです。CPU使用率などのメトリクスを監視して、設定したしきい値を超えたら自動でEC2を追加(スケールアウト)、下回ったら自動で削除(スケールイン)します。

通常時:EC2 1台
 ↓ CPU使用率が70%を超えたら
自動でEC2を追加:2台・3台
 ↓ CPU使用率が下がったら
自動でEC2を削除:1台に戻る

作業の流れ

  1. 起動テンプレートを作成する
  2. Auto Scalingグループを作成する
  3. スケーリングポリシーを設定する
  4. 動作確認

STEP1:起動テンプレートの作成

起動テンプレートは「Auto Scalingが新しいEC2を追加する時の設計図」です。どのAMI・インスタンスタイプ・セキュリティグループを使うかをあらかじめ定義しておきます。

  1. EC2コンソール → 左メニュー「起動テンプレート」
  2. 「起動テンプレートを作成」をクリック
  3. 以下の通りに設定する
項目設定値
起動テンプレート名charakatsu-lt
Auto Scalingのガイダンスチェックを入れる
AMIAmazon Linux 2023
インスタンスタイプt3.micro
キーペア既存のキーペアを選択
セキュリティグループ既存のセキュリティグループを選択
サブネット起動テンプレートの設定に含めない

サブネットは起動テンプレートには含めません。Auto Scalingグループ作成時に設定します。

STEP2:Auto Scalingグループの作成

  1. EC2コンソール → 左メニュー「Auto Scalingグループ」
  2. 「Auto Scalingグループを作成する」をクリック
  3. 以下の通りに設定する

ステップ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の学習に進む予定です。

目次