Auto ScalingとElastic Load Balancingを理解する

EC2 Auto Scalingは必要な台数を調整し、Elastic Load Balancingは要求を複数の処理先へ分散します。二つの役割と組合せ、正常性の確認、増減しても動くアプリの条件を理解します。

この単元で学ぶこと

  • 台数調整と要求分散を区別する
  • 容量設定と正常性・起動条件を説明する
  • 複数AZとアプリの状態管理を合わせて判断する

本文解説

1. 二つの仕事 利用者が増えたとき、処理するEC2を増やす仕事と、各EC2へ要求を振り分ける仕事は別です。EC2 Auto Scalingは台数を管理し、ELBは要求を分散します。ロードバランサー自身の処理能力が増えても、アプリを動かすEC2が同じ割合で増えるわけではありません。

2. Auto Scalingグループ 一群のEC2をASGとして管理し、最小、希望、最大の容量を設定します。ここでは各EC2を一台として数え、重み付けや置換時の一時的な挙動を除いた通常の希望台数を考えます。最小2、希望3、最大6なら、現在目指す台数は3であり6を常時起動する意味ではありません。

3. 需要に応じて増減 CPU利用率等に合わせる動的な調整や、予定に合わせた調整を利用できます。増やすスケールアウトと減らすスケールインを区別します。EC2起動やアプリの準備には時間がかかるため、急な需要への備えや起動後の正常性確認も必要です。

4. 起動条件をそろえる 起動テンプレート等にAMI、インスタンスタイプ、設定をまとめ、新しいEC2が業務を実行できるようにします。正常でないインスタンスの置換も希望容量の維持に役立ちます。ただし使用するヘルスチェックの種類やアプリの準備条件を確認し、OS起動だけを業務準備の完了としません。

5. ELBの働き ロードバランサーは登録されたターゲットへトラフィックを分散します。ヘルスチェックで状態を判断し、正常なターゲットがある通常の構成では正常側へ送ります。全ターゲット異常時等の挙動には種類や設定に応じた条件があるため、一律に全通信が遮断されるとは考えません。

6. ALBとNLB Application Load BalancerはHTTPのホストやパス等を使う振分けに適します。Network Load BalancerはTCPやUDP等のトランスポート層の通信を扱います。例えばURLのパスで別アプリへ送りたいのか、Webに限らない通信を分散したいのかを明確にして種類を選びます。

7. AZ分散と余力 ASGやロードバランサーを複数AZへ構成すると、一つの場所の障害に備えられます。ただし正常時の合計台数だけでなく、片方を失った後に必要な処理量を満たせるか確認します。ASGが新しい資源を起動できても、準備までの時間と割当て可能な容量も考慮します。

8. 状態と費用 EC2が入れ替わるため、重要なデータや共有セッションを一台のメモリだけへ置かない設計を考えます。EC2 Auto Scaling自体の追加料金はありませんが、実行するEC2、EBS、ELB等の費用は発生します。調整と振分け、データ保持、費用を一緒に確認します。

図解

台数の調整と通信の振分け
ELBの処理能力と、配下のEC2台数を増やす仕組みは別です。

重要ポイント

  • ASGは台数、ELBは要求の振分けを管理する。
  • 希望台数と最大台数は異なる。
  • 起動・正常性・データ保持も含めて設計する。

間違えやすい点

  • ELBを置くだけでEC2台数も増えると思う。
  • 二AZなら障害時の能力確認は不要と考える。

用語解説

希望容量
ASGが目指す資源量。本文では各EC2一台の台数として扱う。
スケールアウト
処理する台数や実行数を増やすこと。
スケールイン
処理する台数や実行数を減らすこと。
ターゲット
ロードバランサーから通信を受ける登録済みの処理先。

関連教材

参考資料

教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。

確認問題の出題・採点や学習履歴の保存にはログインが必要です。