#複数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)機能あり