8/7 I/O日記
AWS: ELBのCLBとALBの違い
CLB (Classic Load Balancer):
単一のアプリケーションに対してロードバランスを行う。
基本的なロードバランシング機能を提供。
ALB (Application Load Balancer):
複数のアプリケーションに対してロードバランスが可能。例: /searchのEC2インスタンス2台と、/userのEC2インスタンス2台にロードバランス。
クエリやURLを基にHTTPで処理を分けることが可能。
EC2とロードバランサ
EC2から見ると、ロードバランサから通信が来るため、クライアントのIPアドレスが直接わからない。これを解決するために、X-Forwarded-Forヘッダーにメタ情報としてクライアントIPが含まれる。
ALBとNLBの違い
ALB (Application Load Balancer):
アプリケーション層 (レイヤー7) で動作。
HTTPの処理をURLやクエリに基づいて分ける。
NLB (Network Load Balancer):
トランスポート層 (レイヤー4) で動作。TCPやUDPプロトコルに基づいて振り分け。
アプリケーション層の情報を見ずにパケットを処理するため、リソース消費が少ない。
スティッキネス
スティッキネスは、クライアントがキャッシュ (クッキー) を使って、複数あるインスタンスの中からロードバランサを介して特定のインスタンスにアクセスできるように制御する仕組み。
SSL/TLS通信
SSL/TLSは通信を暗号化する技術で、HTTPS通信を行う際に証明書を使って暗号化を行う。