こんにちは、インフラエンジニアのryuです。
この記事は、AWS認定クラウドプラクティショナー(CLF-C02)の勉強をしていて、ELBとAuto Scalingの問題で迷ってしまう人に向けて書いています。
どちらもEC2と一緒に出てくるサービスで、説明文にも「負荷」「可用性」「スケール」のような似た言葉が並びます。そのため、問題文を読んでもどちらを選べばいいのか決めきれない、ということが起きやすいです。
結論から言うと、ELBは届いたリクエストを複数のサーバーに振り分けるサービスで、Auto Scalingはサーバーの台数を増やしたり減らしたりするサービスです。
この記事では、この違いを表で整理してから、2つを組み合わせたときの動き方と、問題文の読み方を説明します。最後に確認問題も用意しました。
EC2そのものが分からない人は、先にEC2とは?の記事を読んでおくと、この記事の内容が入りやすくなります。CLF-C02全体の勉強の進め方は、CLF-C02の勉強方法の記事にまとめています。
CLF-C02でELBとAuto Scalingはどう問われる?¶
まずは試験の範囲を確認しておきます。CLF-C02は4つの分野に分かれていて、配点はクラウドのコンセプトが24%、セキュリティとコンプライアンスが30%、クラウドテクノロジーとサービスが34%、請求・料金・サポートが12%です。
ELBとAuto Scalingは、3つ目の「クラウドテクノロジーとサービス」の分野に入ります。試験ガイドでは、コンピューティングサービスを見分けるタスクの中に、次の2つが書かれています。
| 試験ガイドの内容 | この記事でいうと |
|---|---|
| Auto Scalingが伸縮性(elasticity)を提供することを理解する | 需要に合わせて台数を増減させるのがAuto Scaling |
| ロードバランサーの目的を理解する | 複数のサーバーにリクエストを振り分けるのがELB |
CLF-C02では、設定の手順やコマンドまでは問われません。問われるのは、ある場面でどのサービスを使うかを選べるかどうかです。
だからこそ、2つのサービスが何を担当しているのかを、一言で言えるようにしておくことが大切です。
ELBとAuto Scalingの違いとは?¶
ここで2つのサービスの違いを表にまとめます。まずはこの表を覚えてしまうのが近道です。
| 比べるところ | ELB(Elastic Load Balancing) | Auto Scaling(Amazon EC2 Auto Scaling) |
|---|---|---|
| 何をするか | 届いたリクエストを複数のターゲットに振り分ける | EC2インスタンスの台数を増やしたり減らしたりする |
| 解決する問題 | 1台に負荷が集中する、1台が止まるとサービスが止まる | アクセスの増減に台数が追いつかない、使わない台数の料金がかかる |
| 見ているもの | ターゲットが正常かどうか(ヘルスチェック) | 決めた台数を保てているか、負荷の指標がどうなっているか |
| 試験で結びつく言葉 | 負荷分散、振り分け、高可用性 | 伸縮性、需要に合わせて増減、台数の自動調整 |
| 料金 | 利用した時間と処理量に応じて料金がかかる | Auto Scaling自体に追加料金はない(起動したEC2などには料金がかかる) |
Auto Scalingの料金ページには、追加料金はかからず、EC2やCloudWatchなど実際に使ったリソースの料金だけがかかると書かれています。一方、ELBはロードバランサーが動いている時間と処理量に対して料金がかかります。
表のとおり、ELBは振り分け、Auto Scalingは台数の調整です。この一言さえ言えれば、多くの問題は選択肢を2つまで絞れます。
ELBの役割とロードバランサーの種類¶
ELBは、アプリケーションへのトラフィックを、EC2インスタンス・コンテナ・IPアドレスなどのターゲットに自動で振り分けるサービスです。1つのアベイラビリティーゾーン(AZ)だけでなく、複数のAZにまたがって振り分けられます。
ELBは定期的にターゲットへヘルスチェックを行い、正常なターゲットにだけリクエストを送ります。そのため、1台のサーバーが止まっても、残りのサーバーでサービスを続けられます。
ELBにはいくつかの種類があります。CLF-C02では細かい機能までは問われにくいですが、名前と大まかな違いは知っておくと安心です。
| 種類 | 動作する層 | 主に扱うもの |
|---|---|---|
| Application Load Balancer(ALB) | レイヤー7(アプリケーション層) | HTTP・HTTPS |
| Network Load Balancer(NLB) | レイヤー4(トランスポート層) | TCP・TLS・UDPなど |
| Gateway Load Balancer(GWLB) | レイヤー3(ネットワーク層) | ファイアウォールなどの仮想アプライアンスへの振り分け |
| Classic Load Balancer(CLB) | 前の世代のロードバランサー | 新しく作る構成では ALB や NLB を使う |
Webサイトのように、URLのパスによって振り分け先を変えたい場合はALB、TCPやUDPの通信を高速にさばきたい場合はNLB、と覚えておけば十分です。
AZの考え方があいまいな人は、リージョン・AZ・エッジロケーションの違いの記事を先に見ておくと、ELBが複数のAZに振り分ける意味が分かりやすくなります。
Auto Scalingの役割と3つの台数¶
Auto Scalingは、EC2インスタンスをAuto Scalingグループという単位でまとめて、その台数を管理するサービスです。グループには、最小・希望・最大の3つの台数を設定します。
| 設定 | 意味 |
|---|---|
| 最小(minimum) | どれだけ負荷が下がっても、この台数より少なくしない |
| 希望(desired) | 今この台数で動かしたい、という目標の台数 |
| 最大(maximum) | どれだけ負荷が上がっても、この台数より多くしない |
たとえば最小2・希望2・最大6にしておけば、普段は2台で動き、アクセスが増えたときは最大6台まで増え、落ち着いたら2台に戻ります。
台数を変えるきっかけには、CPU使用率などの指標を目標値に近づけるように増減させる方法や、決まった時刻に台数を変える方法があります。指標の取得にはCloudWatchが使われます。CloudWatchについてはCloudWatchとCloudTrailの違いの記事で説明しています。
また、Auto Scalingは異常になったインスタンスを終了して、新しいインスタンスに入れ替えることもできます。つまり、台数を増減させるだけでなく、決めた台数を保つ役割もあります。
ELBとAuto Scalingを組み合わせるとどうなる?¶
実際の構成では、ELBとAuto Scalingは一緒に使われることがほとんどです。2つを組み合わせると、次のような流れになります。
利用者
│
▼
ELB(ALB) ← リクエストを正常なインスタンスに振り分ける
│
├─ EC2(AZ-a) ┐
├─ EC2(AZ-c) ├ Auto Scalingグループ(最小2・希望2・最大6)
└─ EC2(増えた分) ┘ ← 負荷に応じて台数を増減する
Auto ScalingグループにはELBのターゲットグループを関連付けられます。そうすると、Auto Scalingで増えたインスタンスは自動でELBの振り分け先に加わり、減らしたインスタンスは振り分け先から外れます。
さらに、Auto ScalingのヘルスチェックにELBのヘルスチェックを使う設定にすると、ELBが異常と判断したインスタンスをAuto Scalingが入れ替えてくれます。
この組み合わせで、それぞれのサービスの担当がはっきり分かれます。
| 起きたこと | 対応するサービス | 何が起きるか |
|---|---|---|
| アクセスが急に増えた | Auto Scaling | インスタンスを増やす |
| 増えたインスタンスに通信を流したい | ELB | 新しいインスタンスにも振り分ける |
| 1台が応答しなくなった | ELB | その1台への振り分けを止める |
| 止まった1台の代わりが必要 | Auto Scaling | 新しいインスタンスに入れ替える |
試験でも、高可用性とスケーラビリティの両方を満たす構成として、この組み合わせを選ばせる問題が考えられます。どちらか一方だけでは足りない、という点を押さえておきましょう。
問題文はどこを見て選べばいい?¶
CLF-C02の問題では、サービス名ではなく、やりたいことが文章で書かれています。どちらを選ぶかは、問題文の中の言葉で判断します。
| 問題文に出てくる言葉 | 選ぶサービス |
|---|---|
| 複数のインスタンスにトラフィックを分散したい | ELB |
| 1台が故障しても、正常なインスタンスだけに通信を送りたい | ELB |
| 需要の変化に合わせて、インスタンスの数を自動で調整したい | Auto Scaling |
| 夜間や休日はインスタンスを減らして、コストを抑えたい | Auto Scaling |
| アクセスが増えても対応でき、1台が止まってもサービスを続けたい | ELBとAuto Scalingの組み合わせ |
ポイントは、主語が通信なのか、インスタンスの数なのかを見ることです。通信をどこへ流すかの話ならELB、何台で動かすかの話ならAuto Scalingです。
ELBとAuto Scalingの確認問題¶
ここからはオリジナルの確認問題です。正解と解説は、それぞれの問題の下の引用ブロックにまとめています。
問題1¶
あるWebサイトでは、アクセスが多い時間帯にEC2インスタンスの処理が追いつかなくなります。需要に合わせてインスタンスの数を自動で増減させたいとき、最も適したサービスはどれですか。
- A. Elastic Load Balancing
- B. Amazon EC2 Auto Scaling
- C. AWS CloudTrail
- D. Amazon S3
正解:B インスタンスの数を需要に合わせて増減させるのはAuto Scalingです。ELBはリクエストを振り分けるサービスで、台数そのものは変えません。
問題2¶
複数のアベイラビリティーゾーンにあるEC2インスタンスへ、届いたリクエストを分散させたいです。最も適したサービスはどれですか。
- A. Elastic Load Balancing
- B. Amazon EC2 Auto Scaling
- C. Amazon CloudWatch
- D. AWS IAM
正解:A リクエストを複数のターゲットに分散させるのはELBです。ELBは複数のAZにまたがって振り分けられ、ヘルスチェックで正常なターゲットにだけリクエストを送ります。
問題3¶
Auto Scalingグループを最小2・希望3・最大5で設定しました。負荷が下がったとき、インスタンスは最も少なくて何台になりますか。
- A. 0台
- B. 2台
- C. 3台
- D. 5台
正解:B 最小の台数は、負荷が下がってもそれより少なくしない台数です。この設定では2台より少なくなることはありません。
問題4¶
Amazon EC2 Auto Scalingの料金について、正しい説明はどれですか。
- A. Auto Scalingグループ1つごとに月額料金がかかる
- B. Auto Scaling自体に追加料金はなく、起動したEC2インスタンスなどの料金がかかる
- C. Auto Scalingを使うとEC2インスタンスの料金が無料になる
- D. 増やしたインスタンスの台数に応じて、Auto Scalingの手数料がかかる
正解:B Auto Scalingの料金ページには、追加料金はなく、EC2やCloudWatchなど実際に使ったリソースの料金がかかると書かれています。
今日やる練習とInfraAcademyで続ける方法¶
今日の練習として、次の3つをやってみてください。どれも紙とペンだけでできます。
- ELBとAuto Scalingの役割を、それぞれ一言で書き出す(振り分ける/台数を変える)
- この記事の組み合わせの表を見ずに、アクセス増加と1台の故障のときに、どちらのサービスが何をするかを書く
- 最小1・希望2・最大4のグループで、負荷が上がったときと下がったときの台数の範囲を書く
自分のAWSアカウントでELBを作ってみたい人は、ELBの作成方法の記事に手順があります。ただし、ELBは動かしている時間に応じて料金がかかります。作る前にAWS公式の料金ページと無料利用枠の条件を確認し、練習が終わったらロードバランサーとEC2インスタンスを必ず削除してください。
InfraAcademy のAWSの講座では、講座の中のシミュレーターでAWSの操作を練習できるので、料金を気にせずに手を動かせます。AWSの学習の順番はAWSのロードマップで確認できます。
問題演習を続けたい人は、トップページのInfraAcademy の資格模擬問題から「AWS認定 クラウドプラクティショナー模擬試験150問」を解けます。クラウドテクノロジーとサービスの分野で間違えた問題があれば、この記事の問題文の読み方の表に戻って、通信の話なのか台数の話なのかを確認してみてください。
まとめ¶
ELBとAuto Scalingの違いで、押さえておきたいところを振り返ります。
- ELBは、届いたリクエストを複数のターゲットに振り分けるサービス
- Auto Scalingは、EC2インスタンスの台数を需要に合わせて増減させるサービス
- ELBはヘルスチェックで正常なターゲットにだけ振り分ける
- Auto Scalingは最小・希望・最大の台数で管理し、異常なインスタンスを入れ替える
- ALBはレイヤー7(HTTP・HTTPS)、NLBはレイヤー4(TCP・UDPなど)
- 2つを組み合わせると、負荷の増加と1台の故障の両方に対応できる
問題文の主語が通信ならELB、インスタンスの数ならAuto Scalingと覚えておけば、迷う場面はかなり減ります。
1つずつ役割を言葉で説明できるようにしておけば、似たサービスが並ぶ問題でも落ち着いて選べます。合格に向けて、一緒に進んでいきましょう。
参考¶
- AWS Certified Cloud Practitioner (CLF-C02) Exam Guide - AWS
- In-Scope AWS Services (CLF-C02) - AWS
- What is Elastic Load Balancing? - AWS
- Elastic Load Balancing API Reference - AWS
- What is Amazon EC2 Auto Scaling? - AWS
- Attach an Elastic Load Balancing load balancer to your Auto Scaling group - AWS
- Amazon EC2 Auto Scaling Pricing - AWS
- Elastic Load Balancing pricing - AWS



