AWS入門:ロードバランサについて

スポンサーリンク
AWS入門:ロードバランサについて 用語解説
AWS入門:ロードバランサについて
この記事は約4分で読めます。
よっしー
よっしー

こんにちは。よっしーです(^^)

今日は、ロードバランサについて解説しています。

スポンサーリンク

背景

ロードバランサについて調査する機会がありましたので、その時の内容を備忘として記事に残しました。

ロードバランサとは

AWSにおけるロードバランサは、着信トラフィックを複数のリソース(EC2インスタンスなど)に自動的に分散させるサービスです。主な役割は以下の通りです。

1. トラフィックの分散

  • 着信リクエストを登録された複数のリソースに分散させます
  • リソースへの負荷を分散し、可用性とスケーラビリティを高めます

2. ヘルスチェック

  • 登録リソースの正常性を定期的に確認します
  • 異常を検知した場合、その対象をロードバランシングから外します

3. セッション維持

  • 同じクライアントからのリクエストを同じリソースに転送し、セッション維持が可能

4. セキュリティ

  • リスナーを使ってSSL/TLSでの通信が可能
  • DoS攻撃からのアプリケーション保護にも役立ちます

AWSでは以下の3種類のロードバランサが提供されています。

1. Classic Load Balancer (CLB) – 従来のLB
– OSIモデルの第4層(TCP/UDP)でロードバランシングを行います

2. Application Load Balancer (ALB) – L7 LB
– OSIモデルの第7層(HTTPおよびHTTPS)でロードバランシングを行います
– コンテンツベースのルーティングなど、より高度な機能を備えています

3. Network Load Balancer (NLB) – L4 LB
– OSIモデル第4層(TCP/UDP)でロードバランシングを行います
– CLBよりも高パフォーマンスで、従来のTCPロードバランシングに適しています

これらを使い分けることで、ユースケースに最適なロードバランシングが可能になります。特にALB/NLBは高度な機能を備えており、マイクロサービスアーキテクチャなどの最新のシステムによく利用されています。

ロードバランサを利用することで、スケーラビリティとフォールトトレランスを確保し、耐障害性とセキュリティの高い可用性の高いアーキテクチャを実現できます。

具体例

AWSロードバランサの具体例を挙げます。

1. クラシックロードバランサ(CLB)の例

  • Webサーバー(Apache/Nginx)の冗長化
  • CLBでEC2インスタンスにHTTPトラフィックを分散
  • ヘルスチェックでインスタンスの死活監視
  • 自動スケーリンググループと連携してスケールアウト

2. アプリケーションロードバランサ(ALB)の例

  • マイクロサービスのロードバランシング
  • ALBでコンテナ(ECS/EKS)へリクエストをルーティング
  • パス(/api/v1)ベースのルーティング
  • ホストヘッダベースのルーティング
  • スティッキーセッション維持
  • WAF(Web Application Firewall)と連携し、Layer7でセキュリティ強化

3. ネットワークロードバランサ(NLB)の例

  • TCP/UDPベースのロードバランシング
  • UDP/TCPゲームサーバーのロードバランシング
  • VoIPセッションのロードバランシング
  • 超低レイテンシーが必要なTCPベースのロードバランシング

4. ゲートウェイロードバランサの例

  • ALBとNLBを組み合わせた、マルチロードバランサデプロイ
  • 例えばHTTPSリバースプロキシとTCP/UDPゲームサーバーの組み合わせ
  • ALB: HTTPSリバースプロキシ
  • NLB: UDPゲームサーバー
  • ゲートウェイロードバランサで複数のロードバランサをフェデレート

このように、AWSロードバランサは、L4〜L7レイヤーのさまざまなロードバランシングニーズに対応し、高可用で拡張性の高いシステムを実現します。ALB/NLBはマイクロサービスやコンテナ化されたアプリケーションによく使われています。

おわりに

今日は、 ロードバランサについて解説しました。

よっしー
よっしー

何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。

それでは、また明日お会いしましょう(^^)

コメント

タイトルとURLをコピーしました