SAA学習-信頼性設計-ELBの概要
今回のテーマ:ELBの概要
ELB(Elastic Load Balancing)
マネージド型のロードバランシングサービスで、EC2インスタンスの処理を分散する際に標準的に利用します。
特徴は以下になります。
- インスタンス完夫不可を分散
- 異常なインスタンスを認識し対応
- パブリック/プライベートどちらでも使用可能
- ELB自身も不可に応じてキャパシティを自動増減するスケーリングを実施
- 従量課金で利用可能
- マネージドサービスなので管理が不要
- Auto Scaling,Route53,Cloud Formationなどと連携
ELBの主要機能
ヘルスチェック
負荷分散
- 配下のEC2の負荷に応じて、複数のAZにまたがるEC2インスタンスの負荷分散を行う
SSLサポート
- ELBでSSL Terminationできる
スティッキーセッション
Connection Draining
S3へのログ保管
- ELBのアクセスログを指定したS3へ自動保管
スケーラビリティの確保
- 複数のEC2インスタンス/ECS Serviceへの負荷分散を実現します。
高可用性
- 複数のAZにある複数のインスタンス/ECS Serviceの中から正常なターゲットにのみ振り分け
ELBのタイプ
利用できるロードバランサーは3タイプで用途に応じて使い分けます。
- ALB
- NLB
- CLB
CLB(Classic Load Balancer)
AWSが開始された初期に提供されたELBとなり、標準的なL4/L7におけるロードバランシングが可能ですが、複雑な設定はできません。
特徴は以下となります。
- HTTP/HTTPSとTCL/SSLプロトコルのL4とL7に対応
- Proxyプロトコルによる発信元IPアドレス識別
- ELBとバックエンドのEC2インスタンス間でHTTPS/SSL使用時にサーバ証明書認証を実施
- CLBは配下のインスタンスは、すべて同一の機能を持ったインスタンスが必要
- 異なる機能に対しパスベースルーティングができない
cf)パスベースルーティング:異なるコンテンツ(URL)をホストする複数のバックエンドサーバーに要求を分散すること
簡単なディレク構成ですが、以下のようなWEBサイトで掲載してるコンテンツに対し、
アクセス経路に関するルーティングを行うことをパスベースルーティングとなります。
/root LcontentsA LcontentsB
ALB(Application Load Balancer)
レイヤー7の対応が強化された単一ロードバランサーで、異なるアプリケーションへリクエストをルーティングが可能です。
特徴は以下となります。
- URLのパスに基づいてルーティングが可能なパスベースルーティングが可能
- WebSocketとHTTP/2のリクエストを受付
- 1インスタンスに複数ポートを登録可能
- EC2インスタンスをターゲットグループに割りあえてる際、複数ポートを個別ターゲットとして登録することが可能なため、ポートを利用するコンテナバランシング可能
- ターゲットグループでのヘルスチェックが可能
- アクセスログの情報追加
- EC2と同様に削除保護が可能
- ALB自体が自動的にキャパシティを増減
CLBとALBの違い
ALBはパスベースルーティングにより、CLBより容易にバランシング構成が可能となります。
- CLBの場合の構成事例
- ALBの場合の構成事例
NLB(Network Load Balancer)
NLBは超低速で高スループットを維持しながら秒間何百万リスエストを捌くように設計されたロードバランサーとなります。
特徴は以下となります。
- 開放型システム間相互接続(OSI)モデルの固定IPアドレスを持つL4ロードバランサー
- 揮発性(きはつせい)ワークロードを処理し、毎秒数百万のリクエストに対応できる能力
- VPC外のターゲットを含めたIPアドレスや静的IPアドレスでの登録可能
- 複数のポートで各インスタンスまたはIPアドレスを同ターゲットグループに登録可能
- 大規模アクセスが予測される際、CLBやALBで必要だったPre-waring申請が不要
- ALBやCLBはX-Forwarded-Forでアクセス元IPアドレスを判断したが、NLBは送信元IPアドレスと送信元ポートの書き換えを行わないため、パケットからアクセス元判断可能
- NLBはフォルトトレランス機能を内蔵したコネクション処理を持ち数カ月から数年のオープンな処理が可能
- コンテナ化されたアプリケーションのサポートが可能
- 各サービスの個別のヘルスチェックステータスのモニタリングのサポートが可能
今回のテーマは以上です。