CLF / ドメイン3 クラウドテクノロジーとサービス
重要な内容
Elastic Load BalancingとEC2 Auto Scaling
(ELB)とは、クラウドのとを実現する2つの中核機能です。 ELBは複数のインスタンスへ通信を分散し、EC2 Auto Scalingは需要に応じてインスタンスの台数を自動調整します。
CLFでは、「分散するのはELB、台数を調整するのはAuto Scaling」という役割の違いと、2つを組み合わせた定番構成を判断できることが重要です。
Point
- ELB = Elastic Load Balancing の略です。
- Load Balancer(ロードバランサー) は「負荷分散装置」の意味で、通信を複数の宛先へ振り分ける仕組みです。
- Elasticity(弾力性) は、需要に合わせてリソースを増減できる性質です。クラウドの重要な利点として試験に登場します。
- 和訳
- Elasticity: 弾力、伸縮性
- Weblio英和辞書「elasticity」
概要
では、ピーク時の需要に合わせてサーバーを事前に用意する必要がありました。 クラウドでは、通信を分散すると、台数を自動調整するを組み合わせることで、需要の変化に合わせた構成を維持できます。
⚠️ 頻出: 「トラフィックを複数のインスタンスへ分散する」のはELB、「需要に応じてインスタンス数を自動的に増減する」のはEC2 Auto Scalingです。この2つの役割を入れ替えた選択肢が誤答としてよく出ます。
主要技術
①水平スケーリングと垂直スケーリング ⚠️ 頻出
スケーリングとは、アプリケーションの処理能力を増減させることです。 方法には、1台の性能を変えると、台数を変えるがあります。
| 方式 | 方法 | 判断ポイント | 問題文のキーワード |
|---|---|---|---|
| 垂直スケーリング | インスタンス1台の性能を上げ下げします(スケールアップ/スケールダウン)。 | 変更時に停止を伴いやすく、1台の性能には上限があります。 | サーバーを大きくする、より高性能なへ変更 |
| 水平スケーリング | インスタンスの台数を増減します(スケールアウト/スケールイン)。 | 台数で対応するため上限に達しにくく、障害にも強い構成にできます。 | 台数を増やす、インスタンスを追加する |
が自動化するのは水平スケーリングです。 クラウドのを活かす基本は、複数の小さなインスタンスを並べて台数で調整する考え方です。
Point
- Scale Up(スケールアップ) = 1台を大きくする、Scale Down(スケールダウン) = 1台を小さくする。垂直(Vertical)方向の変化です。
- Scale Out(スケールアウト) = 台数を増やす、Scale In(スケールイン) = 台数を減らす。水平(Horizontal)方向の変化です。
- 「Up/Downは性能、Out/Inは台数」と覚えます。
- 和訳
- Vertical: 垂直の / Horizontal: 水平の
- Weblio英和辞書「horizontal」
②ELBの役割とロードバランサーの種類
は、インスタンス、、などのターゲットへ、受信した通信を自動的に分散します。 ターゲットのを行い、正常なターゲットにだけ通信を送るため、一部のインスタンスに障害が起きてもサービスを継続しやすくなります。
現行世代のには3つの種類があります。 CLFでは細かな機能よりも、どの層で動き、どんな用途に向くかを区別します。
| 種類 | 動作する層 | 主なプロトコル | 用途・判断ポイント |
|---|---|---|---|
| Application Load Balancer() | アプリケーション層(層) | HTTP、 | Webアプリケーション向けです。リクエストの内容(URLパスなど)に応じた振り分けができます。 |
| Network Load Balancer() | トランスポート層(層) | TCP、、 | 高い性能と低い遅延が必要な通信や、静的IPアドレスが必要な場合に使います。 |
| Gateway Load Balancer() | ネットワーク層 | IPパケット | ファイアウォールなどサードパーティー製の仮想アプライアンスへ通信を分散します。 |
なお、Classic Load Balancerは旧世代のロードバランサーで、現行世代への移行が推奨されています。
Point
- ALB = Application Load Balancer、NLB = Network Load Balancer、GWLB = Gateway Load Balancer の略です。
- 覚え方
- ALBはApplication=HTTPのやり取りを理解して振り分けます。
- NLBはNetwork=TCP/UDPを高速に振り分けます。
- GWLBはGateway=セキュリティ製品などへの入り口になります。
- 「Webサイト・HTTPならALB、高性能TCP/UDPならNLB」がCLFでの基本の判断です。
③EC2 Auto Scalingの仕組み
では、複数のインスタンスをAuto Scalingグループというまとまりで管理します。 グループには3つのキャパシティ設定があり、この範囲内で台数が自動調整されます。
| 設定値 | 意味 | 判断ポイント |
|---|---|---|
| 最小キャパシティ | この台数を下回らないように維持します。 | サービス維持に最低限必要な台数を設定します。 |
| 希望キャパシティ | 現在維持しようとする台数です。 | スケーリングによってこの値が増減します。 |
| 最大キャパシティ | この台数を超えないように制限します。 | 増えすぎによるコストの上振れを防ぎます。 |
需要の変化はの(使用率など)で検知します。 がしきい値を超えると、スケーリングポリシーに従ってインスタンスが追加または削除されます。
Auto Scalingグループはインスタンスの状態も監視し、異常なインスタンスを終了して新しいインスタンスに置き換え、希望キャパシティを維持します。 つまり、需要への追従だけでなく、常に一定の台数を保つ用途にも使えます。
④スケーリングポリシーの種類
台数をいつ、どのように増減させるかは、スケーリングの方式で決まります。
| 方式 | 内容 | 用途・判断ポイント |
|---|---|---|
| 手動スケーリング | 人が希望キャパシティを変更します。 | 一時的な調整や検証に使います。 |
| 動的スケーリング | に応じて自動で増減します。 | 需要の変動が事前に読めない場合に使います。使用率を一定に保つターゲット追跡が代表例です。 |
| スケジュールスケーリング | 指定した日時に増減します。 | 営業時間の開始や月末処理など、需要の変化があらかじめ分かっている場合に使います。 |
| 予測スケーリング | 過去の利用パターンから将来の需要を予測し、事前に増減します。 | 毎日・毎週のような周期的なパターンがあるワークロードに使います。 |
CLFでは、「需要が読めないなら動的」「時間が決まっているならスケジュール」「周期パターンから先回りするなら予測」と判断できれば十分です。
Point
- 動的スケーリングの代表である Target Tracking(ターゲット追跡) は、「CPU使用率50%を維持する」のように目標値を決めると、AWSが自動で台数を調整する方式です。
- Predictive(予測的な) スケーリングは、過去のデータから需要を予測して先にスケールします。
- 和訳
- Predictive: 予測的な
- Weblio英和辞書「predictive」
⑤ELB+Auto Scaling+マルチAZの定番構成 ⚠️ 頻出
が求められるシステムでは、とを組み合わせ、複数の(AZ)へインスタンスを配置する構成が定番です。
この構成では、2つの機能が自動的に連携します。
- Auto Scalingが起動したインスタンスは、自動的にELBへ登録されます。終了したインスタンスは自動的に登録解除されます。
- Auto Scalingグループに複数のAZを指定すると、インスタンスはAZ間でバランスよく配置されます。
- ELBはにより、正常なインスタンスにだけ通信を送ります。
1つのAZに障害が発生しても、別のAZのインスタンスが通信を受け続け、Auto Scalingが必要な台数を回復します。
⚠️ 頻出: 「をなくす」「1つのAZの障害でもサービスを継続する」という問題文では、ELB+Auto Scaling+の組み合わせを考えます。
⑥コストへの効果
この組み合わせは可用性だけでなく、コストの最適化にも役立ちます。
- 需要が減ったときはスケールインで台数を減らし、使っていないインスタンスの料金を削減できます。
- ピークに合わせた台数を常時確保する必要がなく、過剰なを避けられます。
- 自体に追加料金はなく、起動したインスタンスなどのリソース分だけを支払います。
- は使った分だけ支払うです。
「必要なときに必要な分だけ使い、使った分だけ支払う」というクラウドの料金の考え方を、コンピューティング容量で実現する仕組みと言えます。
試験対策
問題文のキーワードから、どの機能・方式を選ぶかを整理します。
| 問題文のキーワード | 選ぶもの | 理由 |
|---|---|---|
| トラフィックを複数のインスタンスへ分散 | 通信の振り分けはELBの役割です。 | |
| 需要に応じてインスタンス数を自動的に増減 | 台数の自動調整はAuto Scalingの役割です。 | |
| サーバーをより高性能なものに変更 | 1台の性能を上げる方法です。 | |
| インスタンスの台数を増やして対応 | 台数で処理能力を増やす方法です。 | |
| /のWebアプリケーションへ振り分け | Application Load Balancer | HTTP層で動作し、リクエスト内容に応じて振り分けます。 |
| 高性能な/通信、静的 | Network Load Balancer | TCP層で動作する高性能なです。 |
| 決まった時刻に台数を増やす | スケジュールスケーリング | 需要の変化が事前に分かる場合の方式です。 |
| 周期的なパターンを予測して事前にスケール | 予測スケーリング | 過去のパターンから需要を予測します。 |
| 1つのの障害でもサービスを継続 | ELB+Auto Scaling+ | 定番の構成です。 |
| 需要減少時にコストを削減 | EC2 Auto Scaling(スケールイン) | 不要な台数を減らして支払いを抑えます。 |
よくある誤答は、ELBとAuto Scalingの役割の入れ替えです。 ELBは通信を分散しますが、インスタンスの台数を増やすことはできません。逆に、Auto Scalingは台数を増減しますが、通信を振り分けることはできません。両方の効果が必要な場面では、2つを組み合わせます。
また、スケールアウト(台数を増やす)とスケールアップ(性能を上げる)の混同にも注意します。 「Auto Scalingでインスタンスを自動的に大きくする」という選択肢は誤りで、Auto Scalingが調整するのは台数です。