Auto Scalingと信頼性パターン

垂直スケールと水平スケール、起動テンプレート、Auto Scalingグループ、希望・最小・最大キャパシティ、ELBとの連携を整理します。

学習順Step 60 / 61サービスEC2試験ドメイン弾力性

スケーリングの考え方

負荷が増えたときに性能を上げる方法は大きく二つあります。

  • 垂直スケーリング(スケールアップ/ダウン) … 1台のCPU・メモリを大きく/小さくする。インスタンスタイプに上限があり、変更時に再起動や停止が伴うことがある。
  • 水平スケーリング(スケールアウト/イン)台数を増減する。EC2 Auto Scaling が担うのは主にこちらです。

信頼性の文脈では、複数台に分散して単一インスタンス依存を減らすことと、負荷に応じて台数を合わせることが両方重要です。「アクセスが閾値を超えたら新しい EC2 を追加する」イメージで説明されることが多いです。

設定の流れ(手順のイメージ)

ELB と連携する典型的な順序は次のようなイメージです(試験では順序そのものより、依存関係が問われます)。

  1. ターゲットグループの作成(ヘルスチェックのプロトコル・パスを決める)。
  2. 起動テンプレートの作成(AMI、インスタンスタイプ、ユーザデータ、IAM ロール、SG など)。
  3. Auto Scaling グループの作成 … **どの VPC/サブネット(複数 AZ)**に、最小・希望・最大をいくつにするか、どのターゲットグループに登録するかどのスケーリングポリシーを使うか。

起動テンプレートと ELB は Auto Scaling より前に用意しておく必要がある、という文脈で問題が出ます。

起動テンプレートと Auto Scaling グループ

  • 起動テンプレート(Launch Template) … どの AMI、どのインスタンスタイプ、どのサブネット/セキュリティグループ、どの IAM インスタンスプロファイルで起動するかをテンプレート化します。バージョン管理でき、コンソールからの手動起動と Auto Scaling の両方で再利用できます。起動設定(Launch Configuration) は後方互換のため残っているが、新規は起動テンプレート推奨が定番です。AMI を更新したら新しいテンプレートバージョンを作るか、既定バージョンを更新する運用になります。
  • Auto Scaling グループどの AZ に最低何台、最大何台まで置くか、どのターゲットグループに登録するかスケーリングポリシー・終了ポリシー・ヘルスチェック種別を束ねます。

グループサイズ(最小・希望・最大)

  • 最小キャパシティ … 負荷が低いときも維持する下限台数。高可用なら2以上にして複数 AZ にまたがせる、というのが教科書的な話です。
  • 希望キャパシティ … 現在の目標台数。手動変更やスケーリングで変動します。
  • 最大キャパシティ … スケールアウトの上限。コスト暴走防止と、スパイク時の過剰起動防止に効きます。

制約として、希望は最小以上・最大以下です。試験では数値の整合性を取る設問が出ます。

ELB との連携

Auto Scaling で起動したインスタンスを、ELB のターゲットグループに自動登録すると、新しいキャパシティにトラフィックが流れます。

ヘルスチェックの種類の選択が信頼性に直結します。

  • EC2 … ハイパーバイザーから見たインスタンスの死活アプリの異常は検知できない場合がある。
  • ELB … ターゲットグループのヘルスチェックに基づく。アプリが応答しないケースを拾いやすい。

本番の Web 系では ELB ヘルスチェックを選ぶシナリオが多く出ます。

スケーリングポリシーの種類(概要)

需要に応じて台数を変える主な方法です(詳細は Auto Scaling の詳細 も参照)。

方式 ざっくりした役割
ターゲット追跡 メトリクスが目標値に近づくよう台数を調整(運用でよく使う)
ステップスケーリング しきい値を超えたに応じて段階的に台数変更
シンプルスケーリング アラーム発火に応じた単純な増減(名称とコンソール表記は世代で変わりうる)
スケジュール 決まった日時に希望キャパシティを変更
手動 希望キャパシティを直接変更

複数のポリシーを併用できます(例: 朝にスケジュールで足し、日中はターゲット追跡)。

終了ポリシー

スケールイン時にどのインスタンスを止めるか終了ポリシーで制御します。既定では AZ 間の偏りを減らす古い起動テンプレートのインスタンスを優先などのロジックが使われます。試験では「可用性を落とさずにスケールインしたい」文脈で選択肢が出ます。

基本アーキテクチャの一文

ELB で冗長化した EC2 群に Auto Scaling を載せ、負荷に応じて自動拡張する … というのが、信頼性トレーニングで繰り返し描かれるパターンです。

既存トピックとの関係

EC2・ELB・Auto Scaling の一行サマリーEC2, Auto Scaling, ELB にあります。本ページは信頼性設計の観点から、グループサイズ・テンプレート・ELB 連携を補強する位置づけです。ポリシー詳細・ライフサイクルフックは EC2 Auto Scaling の実務的な要点 を参照してください。

公式ドキュメント(深掘り)

重要ポイント

  • EC2 Auto Scalingは水平スケール(台数)が主。垂直スケールは別操作(インスタンスタイプ変更)
  • 起動テンプレートは推奨。AMI更新時は新バージョン作成やデフォルト版の更新が必要
  • 最小・希望・最大は相互制約(希望は最小以上・最大以下)
  • ELBターゲットグループへの自動登録と、ELBヘルスチェック連携が信頼性の鍵
  • 動的スケーリングはターゲット追跡・ステップ・スケジュール等を用途で組み合わせ可能

このトピックの学習を完了しますか?

完了状態はいつでも切り替えられます