どうもPナッツです!
今日はELBとAuto Scalingについて学びました。
どちらも内容が濃かったので、その①とその②で記事を分けてまとめることにしました。
本記事はELBについてまとめた記事です。
Auto ScalingもELBと組み合わせて使われる重要な機能なので、こちらもぜひ見てください!
ELBとは
ELB(Elastic Load Balancing)の略です。
簡単にいうと、インターネットやシステム内部からのリクエストを複数のEC2インスタンスへ分散して案内してくれるサービスです。
複数のサーバーに負荷を分散することで、特定のサーバーにアクセスが集中することを防いでくれます。
ELBがあることで何ができるのか
上記の説明だけだと、何が便利なのか分かりにくいですよね。

まず前提として、AWSには「Design for Failure(壊れることを前提に設計する)」という考え方があります。
つまり、
「サーバーはいつか壊れる」
「障害は起きるもの」
という前提でシステムを作ります。
そのため、1つのAZに1台だけEC2を配置するのではなく、異なるAZに複数のEC2インスタンスを配置する構成がよく使われます。
では、この状態でインターネットからのリクエストが1台のEC2に集中したらどうなるでしょうか。
そうです。
そのEC2に負荷が集中して、最悪の場合サービスが停止してしまいます。
そこで活躍するのがELBです。
ELBはインターネットからのリクエストをまず受け取り、利用可能なEC2インスタンスへ自動的に振り分けてくれます。
さらに、異常が発生しているEC2にはリクエストを送らないようにすることもできます。
その結果、
- 負荷を分散できる
- 障害が発生したサーバーを避けられる
- システム全体の可用性を高められる
といったメリットがあります。
なんだか昔やったゲームを思い出しました。
女性用トイレと男性用トイレがあって、来た人をそれぞれの場所へ案内していくゲームです。
今回は同じ役割のEC2同士への振り分けなので少し違うかもしれませんが、
「どこへ案内するかを判断する係」
という意味では少し似ているなと思いました。
なくてはならない存在ですね。
ELBの特徴
ELBの主な特徴は次の通りです。
- ロードバランサータイプ
- ヘルスチェック
- インターネット向け/内部向け
- 高可用性のマネージドサービス
それぞれ簡単にまとめます。
ロードバランサータイプ
ELBには主に以下の種類があります。
- Application Load Balancer(ALB)
- Network Load Balancer(NLB)
- Classic Load Balancer(CLB:旧世代)

WebサイトなどのHTTP/HTTPS通信ではALBがよく利用されます。
一方で、高速なTCP/UDP通信ではNLBが利用されます。
CLF試験では「HTTP/HTTPSならALB」と覚えておくと分かりやすそうです。
ヘルスチェック
ELBは接続先のEC2インスタンスが正常に動作しているかを定期的に確認してくれます。
これをヘルスチェックと呼びます。
異常が検知されたインスタンスにはリクエストを送らないようにできるため、利用者への影響を減らすことができます。
かなり便利な機能ですね。
インターネット向け/内部向け
ELBは次のような構成で利用できます。
- インターネットからEC2への負荷分散
- システム内部のEC2やアプリケーション間の負荷分散
システム内部でもELBを利用することで、可用性や拡張性を高めることができます。
高可用性のマネージドサービス
ELBはAWSが管理しているマネージドサービスです。
そのため利用者がサーバー管理を行う必要がありません。
また、アクセスが増加した場合でもAWS側で負荷に対応してくれるため、
「ELB自体にアクセスが集中して大丈夫なの?」
という心配をあまりしなくて済みます。
利用者は負荷分散の仕組みを利用することに集中できるわけですね。
最後に
どうだったでしょうか。
最初は「リクエストを振り分けるだけのサービスかな?」と思っていましたが、
- 負荷分散
- 障害インスタンスの切り離し
- 可用性向上
など、システム運用には欠かせないサービスだと分かりました。
複数のEC2インスタンスを利用する構成では、かなり重要な存在なんだろうなと思います。
ちなみに、その②で紹介するAuto Scalingと組み合わせるとさらに便利になります。
EC2を自動で増減させながら、ELBでアクセスを振り分けることで、より柔軟なシステム運用が可能になります。
どんな仕組みなのか、ぜひ次回の記事もチェックしてみてください!

それでは!
まとめ問題
問題1
ELB(Elastic Load Balancing)の主な役割として最も適切なものはどれでしょうか?
A. EC2インスタンスを自動的に増減させる
B. リクエストを複数のサーバーへ分散する
C. データを暗号化して保存する
D. データベースを自動でバックアップする
問題2
ELBのヘルスチェック機能の説明として正しいものはどれでしょうか?
A. EC2の料金を監視する
B. EC2のCPU使用率を常に100%に保つ
C. 接続先インスタンスが正常に動作しているか確認する
D. EC2を自動で起動・停止する
問題3
WebサイトのHTTP/HTTPS通信で主に利用されるロードバランサーはどれでしょうか?
A. Network Load Balancer(NLB)
B. Classic Load Balancer(CLB)
C. Application Load Balancer(ALB)
D. Amazon CloudFront
問題4
AWSの「Design for Failure」の考え方として最も適切なものはどれでしょうか?
A. 障害が起きないように設計する
B. 障害は発生しないものとして設計する
C. サーバーは壊れる前提で設計する
D. EC2は1台だけで運用する
問題5
ELBを利用するメリットとして適切でないものはどれでしょうか?
A. 負荷分散ができる
B. 障害が発生したインスタンスへの通信を避けられる
C. システムの可用性向上につながる
D. EC2インスタンス数を自動で増減できる
答えはコチラ
問題1:B
問題2:C
問題3:C
問題4:C
問題5:D
問題5はひっかけです。
EC2を自動で増減するのはAuto Scalingの役割で、ELBはあくまで振り分け担当ですね。

コメント