おっさん社内SEエンジニアの勉強ブログ

勉強記録のブログとなります。

SAA学習-信頼性設計-ELBの概要

今回のテーマ:ELBの概要

ELB(Elastic Load Balancing)

マネージド型のロードバランシングサービスで、EC2インスタンスの処理を分散する際に標準的に利用します。
特徴は以下になります。

  • インスタンス完夫不可を分散
  • 異常なインスタンスを認識し対応
  • パブリック/プライベートどちらでも使用可能
  • ELB自身も不可に応じてキャパシティを自動増減するスケーリングを実施
  • 従量課金で利用可能
  • マネージドサービスなので管理が不要
  • Auto Scaling,Route53,Cloud Formationなどと連携

ELBの主要機能

ヘルスチェック

負荷分散

  • 配下のEC2の負荷に応じて、複数のAZにまたがるEC2インスタンスの負荷分散を行う

SSLサポート

  • ELBでSSL Terminationできる

スティッキーセッション

  • セッション中に同じユーザから来たリクエストをすべて同じEC2インスタンスに送信する(音声とか同一ユーザからのリクエスト処理)

Connection Draining

  • インスタンスが登録解除されるか異常が発生した場合、そのバックエンドへの新規リクエスト送信を中止する

S3へのログ保管

スケーラビリティの確保

f:id:In-houseSE:20210527074349p:plain

高可用性

  • 複数のAZにある複数のインスタンス/ECS Serviceの中から正常なターゲットにのみ振り分け

f:id:In-houseSE:20210527074417p:plain

ELBのタイプ

利用できるロードバランサーは3タイプで用途に応じて使い分けます。

  • ALB
  • NLB
  • CLB

CLB(Classic Load Balancer)

AWSが開始された初期に提供されたELBとなり、標準的なL4/L7におけるロードバランシングが可能ですが、複雑な設定はできません。
特徴は以下となります。

cf)パスベースルーティング:異なるコンテンツ(URL)をホストする複数のバックエンドサーバーに要求を分散すること

簡単なディレク構成ですが、以下のようなWEBサイトで掲載してるコンテンツに対し、
アクセス経路に関するルーティングを行うことをパスベースルーティングとなります。

/root
 LcontentsA
 LcontentsB

ALB(Application Load Balancer)

レイヤー7の対応が強化された単一ロードバランサーで、異なるアプリケーションへリクエストをルーティングが可能です。
特徴は以下となります。

  • URLのパスに基づいてルーティングが可能なパスベースルーティングが可能
  • WebSocketとHTTP/2のリクエストを受付
  • 1インスタンスに複数ポートを登録可能
  • EC2インスタンスをターゲットグループに割りあえてる際、複数ポートを個別ターゲットとして登録することが可能なため、ポートを利用するコンテナバランシング可能
  • ターゲットグループでのヘルスチェックが可能
  • アクセスログの情報追加
  • EC2と同様に削除保護が可能
  • ALB自体が自動的にキャパシティを増減

CLBとALBの違い

ALBはパスベースルーティングにより、CLBより容易にバランシング構成が可能となります。

  • CLBの場合の構成事例

f:id:In-houseSE:20210527082506p:plain

  • ALBの場合の構成事例

f:id:In-houseSE:20210527082544p:plain

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はフォルトトレランス機能を内蔵したコネクション処理を持ち数カ月から数年のオープンな処理が可能
  • コンテナ化されたアプリケーションのサポートが可能
  • 各サービスの個別のヘルスチェックステータスのモニタリングのサポートが可能

今回のテーマは以上です。