AWS ELBを知ろう
最終更新日:2026年8月10日
この記事でわかること
はじめに
| 項目 | AWS | Microsoft Azure | Google Cloud |
|---|---|---|---|
| 世界シェア | 約33%(首位) | 約22% | 約11% |
| 強み | サービス数・実績 | Microsoft製品連携 | データ分析・AI |
| 無料枠 | 12ヶ月+常時無料 | 12ヶ月無料 | 常時無料枠あり |
| 主な資格 | CLF / SAA / SAP | AZ-900 / AZ-104 | ACE / PCA |
AWSで単一障害点を排除するELBについて学習したことについてまとめました。最後まで一読していただけると幸いです。
ELB概要
マネージド型のロードバランシングサービスで、EC2インスタンスの処理を分散する際に標準的に利用するものです。特徴はまとめると以下になります。
・インスタンス間の負荷を分散する
・異常なインスタンスを認識して対応する
・パブリック/プライベートどちらでも使用可能
・ELB自体も負荷に応じてキャパシティを自動増減するスケーリングを実施
・従量課金で利用可能
・マネージドサービスなので管理が不要
・Auto Scaling、Route53、Cloud Formationなどと連携
ELBの主要機能
①ヘルスチェック
EC2インスタンスの状態を確認して利用するEC2の振り分けを行うことを行います。例えば複数のアベイラビリティゾーンにあるEC2インスタンスのヘルスチェックを行って、1つが止まってしまえば、別の方に集中するといった処理を行います。
②負荷分散
配下のEC2の負荷に応じて、複数のAZに跨るEC2インスタンスの負荷分散を行います。例えば2台のEC2インスタンストラフィック量を3:7といったように分散させることができます。
③SSLサポート
ELBではSSL Terminationできたり、そういった操作をするサポートがついています。
④スティッキーセッション
負荷分散をしているとセッション中に同じユーザーからの2回目のアクセスで別のEC2インスタンスに飛ばされるということがあるが、この機能を有効にしていれば同じユーザーからきたリクエストは全て同じEC2インスタンスに送信することができます。
⑤Connection Draining
インスタンスが登録解除されるなどの異常が発生した場合に、切り離しを実施し処理中のリクエストは処理を続け、新規リクエスト送信を中止します。
⑥S3へのログ保管
ELBのアクセスログを指定したS3に自動保管することができます。
ELBのタイプ
現在利用できるロードバランサーは4タイプあります。それぞれについてこれから説明しますので用途に応じて使い分けましょう。
【要注意】
本記事初出時点ではELBは「CLB/ALB/NLB」の3タイプとして紹介されていましたが、2020年11月にネットワーク仮想アプライアンス(ファイアウォール等)との連携向けにGateway Load Balancer(GLB)が追加され、現在は4タイプ構成になっています。また、CLBは初期世代のロードバランサーであり現在も利用は可能ですが、AWSは新規構築ではALBまたはNLB(L3/L4のアプライアンス連携が必要な場合はGLB)の利用を推奨しています。
①CLB (Classic Load Balancer)
初期に提供されたELBであり、標準的なL4/L7におけるロードバランシングが可能でしたが、複雑な設定はできない弱点があります。特徴を以下にまとめます。
・HTTP/HTTPSとTCP/SSLプロトコルのL4とL7に対応
・Proxyプロトコルによる発信元IPアドレス識別
・ELBとバックエンドのEC2インスタンス間でHTTPS/SSL使用時にサーバ証明書認証を実施
・CLB配下のインスタンスは、全て同一の機能を持ったインスタンスが必要
・異なる機能に対してコンテントベースルーティングは出来ない
・新規ワークロードでの利用は非推奨。既存利用の場合もALB/NLBへの移行が推奨される
②ALB(Application Load Balancer )
レイヤー7の対応が強化された単一ロードバランサーで、異なるアプリケーションへリクエストをパスルーティングが可能です。WEBアプリケーション用のロードバランシングとしてはこちらが主要です。特徴を以下にまとめます。
・URLのパスに基いてルーティングが可能なパスベースルーティングが可能
・WebSocketとHTTP/2のリクエストを受付可能
・1インスタンスに複数ポートを登録可能
・EC2インスタンスをターゲットグループに割り当てる際、複数ポートを個別のターゲットとして登録することが可能なため、ポートを利用するコンテナをロードバランシング可能
・ターゲットグループでのヘルスチェックが可能
・アクセスログの情報追加
・EC2と同様に削除保護が可能
・ALB自体が自動的にキャパシティを増減可能
③NLB(Network Load Balancer)
NLBは超低遅延で高スループットを維持しながら秒間何百万リクエストを捌く様に設計された最新のロードバランサーです。高負荷予定されているケースに使用します。特徴を以下にまとめます。
・開放型システム間相互接続 (OSI) モデルの固定IPアドレスを持つL4ロードバランサ
・揮発性ワークロードを処理し、毎秒数百万のリクエストに対応できる能力
・VPC外のターゲットを含めたIP アドレスや静的IPアドレスでの登録可能
・複数のポートで各インスタンスまたは IP アドレスを同ターゲットグループに登録可能
・大規模アクセスが予測される際にCLBやALBで必要だったPre-warming申請が不要
・ALBやCLBはX-Forwarded-Forでアクセス元IPアドレスを判断していたが、NLBは送信元IPアドレスと送信元ポートの書き換えを行わないため、パケットからアクセス元が判断可能
・NLBはフォルトトレランス機能を内蔵したコネクション処理を持ち、数カ月から数年のオープンなコネクションを処理できる
・コンテナ化されたアプリケーションのサポート
・各サービスの個別のヘルスステータスのモニタリングのサポート
④GLB(Gateway Load Balancer)
サードパーティ製のファイアウォールやIDS/IPSなどのネットワーク仮想アプライアンスへのトラフィックを透過的に分散させるためのL3ロードバランサーです。特徴を以下にまとめます。
・GENEVEプロトコル(ポート6081)でトラフィックを仮想アプライアンスへ転送
・トラフィックの検査・変換後、送信元へ透過的に戻すインライン構成が可能
・複数のセキュリティアプライアンスをスケール・冗長化しやすい
押さえておきたいポイント
- 新規に構築する場合はALB(HTTP/HTTPSのWebアプリ向け)かNLB(超低遅延・固定IP・TCP/UDP向け)を優先し、L3のセキュリティアプライアンス連携が必要な場合はGLBを検討する。CLBは既存資産の維持目的以外では選びにくい。
- ヘルスチェック・Connection Draining・Auto Scalingとの連携によって、単一障害点の排除と可用性設計を両立できるのがELBの本質的な価値。
- アクセスログをS3へ自動保管できるため、障害調査やセキュリティ監査の材料として活用できる。
よくある質問
ALBとNLBはどちらを選べばよいですか?
HTTP/HTTPSベースのWebアプリケーションでパスベースルーティングやWebSocket対応が必要ならALB、超低遅延・高スループットや固定IPアドレスが求められる場合、あるいはTCP/UDPレベルでのシンプルな転送を行いたい場合はNLBが適しています。
CLBは今後も使い続けられますか?
既存のCLBは引き続き利用できますが、大きな機能追加は行われておらず、AWSは新規構築ではALB・NLB(用途によってはGLB)の利用を推奨しています。既存でCLBを使っている場合も、将来的な移行を検討するとよいでしょう。
ELBの料金体系はどうなっていますか?
ロードバランサーの稼働時間と処理容量(LCU等)に応じた従量課金が基本です。具体的な料金は改定される可能性があるため、最新料金はAWS公式サイトでご確認ください。
まとめ
以上がELBについて学んだことです。ELBを使用する際は基本的にはALBで問題ないと思います。AWSなら検証もし易いですし、実際にサーバを作ってELBを使ってみましょう。
参考文献:
https://yusuke-mrmt.hatenablog.com/
https://yusuke-mrmt.hatenablog.com/entry/2020/09/18/144100
▼ アクロビジョンについて


