0
0

More than 3 years have passed since last update.

【AWS】ロードバランサー

Last updated at Posted at 2021-01-09

複数AZに分散

・二段階での負荷分散
1)DNSラウンドロビンで各AZ内のELBに振り分け
2)負荷が均等になるようにバックエンドのEC2にそれぞれのルーティングアルゴリズムで振り分け
 ALB:ラウンドロビンルーティング
 NLB:フローハッシュアルゴリズムルーティング

・クロスゾーン負荷分散
 ALB:デフォルトで有効
 NLB:デフォルトで無効
 CLB:デフォルトで有効

・同一のインスタンスで複数ポートに負荷分散可能
 異なるポートに対して負荷分散

・IPアドレスをターゲットに設定
 ALB \NLB

・ELB自体のスケーリング
 ALB,CLBにおいては接続が習慣的に急増した場合、HTTP503を返す
  →Pre-Warming(暖機運転)の申請をサポートケースにて行う
  →自前で付加を段階的にかけてスケーリングさせておく
・NLBは暖機不要で突発的な数百万リクエスト1/秒のトラフィックも捌ける

モニタリング

・ヘルスチェック
1)HTTP及びHTTPSリスナーを使用する場合には、EC2インスタンスでキーアライブのオプションを有効化することでロードバランサーがバックエンドインスタンスへの接続を再利用できるようになり、CPU使用率が削減される
2)異常と判断したインスタンスにはトラフィックは流さない

・アクセスログ
 ELBのアクセスログを取得可能
 S3バケットに簡単にログを自動保管

スティッキーセッション

・一時ファイルなどをEC2インスタンスが保持するな場合に必要 
・デフォルトで無効
・HTTP/HTTPのみ利用可能

SL/TLS Termination

・ELB側でSSL/TLS認証ができる
 1)ELBでSSLTerminationし、バックエンドとはSSLなし ←通常これが多い
 2)ELBでSSLTerminationし、バックエンドとは別途SSL
 3)SSLをバイパスしてバックエンドにTCPで送信

ACMを利用すれば証明書を利用可能

ALB

・L7ロードバランサー
・HPPP \HTTPSのみ対応
・コンテンツベースのルーティング(高度なリクエストルーティング)
・ユーザー認証機能
 Cognitoによる認証
 OIDC IdPによる認証(Google、Amazonなど)
・暖機申請は必要
・その他
 ・ネイティブHTTP/2対応
 ・ターゲットとしてのLambda関数
 ・クライアントのIPアドレス取得について(ALB \NLBの違い)
 ・AWS WAFとに連携について
  ALBのみ可能
 ・Websocketに対応

NLB

・TCP(L4)のバランサとして機能
・固定IPアドレス:AZごとに1つ、既に持っているEIPも利用可能
・送信元にIPアドレスの保持:X−Forwarded−ForやProxy Protocolが不要
・暖機なしに急激なスパイクにも対応
・Vpcエンドポイントサービス(AWS PrivateLink)のサポート
・NLBnihaセキュリティグループの設定がない

→以下、特に重要
 1)高可用性、高スループット、低レイテンシー
 2)Source IP/Portがターゲットまで保持される
 3)固定IP

Glocal Acceleratorとの連携

 ALBとNLBを指定できる
 ユーザは近いエッジjロケーションからGlobal Networkを経由して最も近いリージョンにアクセス可能

メモ

・トラフィックを複数のインスタンスに分散
・ヘルスチェック機能で、ELB配下のインスタンスがヘルスチェックに失敗した場合、振り分けを停止
・ヘルスチェックが回復した場合、振り分け再開
・暗号化・複合化(SSL)機能あり

 

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0