1. Load Balancers
種類
- Application Load Balancer (以下ALB)
- Network Load Balancer (以下NLB)
- Classic Load Balancer (以下CLB)
- Gateway Load Balancer (以下GWLB)
※ELBは総称、ただCLBに対して言われることが多い
すべてAZ/サブネットサービス
BlackBelt ※これが一番大事
以下ポイント
全体
スティッキーセッション
デフォルトラウンドロビンで振り分けられるトラフィックをアクセス元のユーザ(ブラウザ/セッション)ごとに固定する機能
※CLBとは異なる
Connection Draining
EC2インスタンスの登録解除やヘルスチェックの失敗時、新規リクエストを止め処理中リクエストの処理のみを行う
※CLBとはちょっと異なる
クロスゾーン負荷分散
ターゲットグループが複数のAZに存在するときすべてのターゲットに対して負荷分散が出来るようになる
各 Load Balancer の比較
Application Load Balancer
概要
レイヤ7で動作するロードバランサ
ターゲットは EC2インスタンスやコンテナ、IPアドレスが想定
HTTP/HTTPS に対応
AWS WAFと連携可能
参考:https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/introduction.html
インターネット向け/内部
作成時にスキームカラムで指定(作成後は変更不可)
インターネット向け:インターネットからのトラフィックをルーティング(パブリックサブネットがマスト)DNSでルーティング
内部:プライベートIPアドレスでルーティング
SG
インターネットからの着信は HTTP/HTTPS で 0.0.0.0/0(要件によっては特定IP)
ALB 配下のインスタンスにはALBにアタッチしたSGを送信元にすることでセキュアにできる
リスナー
着信したトラフィックのルーティング設定を実施
ターゲットグループや着信プロトコル、ポート番号を指定する
ターゲットグループ
ターゲットタイプ:インスタンス(Auto Scaling Group)/IPアドレス/Lambda関数
ヘルスチェック:HTTP/HTTPS
プロトコルバージョン:HTTP1/HTTP2/gRPC ※インスタンス又はIPアドレス時のみ選択可能
ルール
作成時にはデフォルトルールが作成される
カスタムでredirectやforwardができる
〇Host名やHTTPヘッダー、URLパスベールでのルーティングが可能
→同一インスタンス内の複数ポートやパスにターゲット可能
・ホスト名ベース(サブドメインごとに別のターゲットにルーティング)
・HTTPヘッダーベース(ブラウザベースなどで別ターゲットにルーティング)
TLS終端
ターゲットグループでプロトコルをHTTPにすると ALBで終端
HTTPSにするとE2EでHTTPS通信
XFF
付加、保持、削除が選択可能
※デフォルトは付加
Network Load Balancer
概要
レイヤ4で動作するロードバランサ
TCP/UDP/SSL に対応
高可用性、高スループット、低レイテンシ
Source IP/Portがターゲットまで保持される
固定IPを持つ
AZごとの固定IP(EIP可能)
FW の穴あけなどに便利
背後にALBを置くことでALBでの固定IPも疑似的に実施可能
送信元IP保持
クライアントのIPとポートが保持される
→つまりターゲットはクライアントと直接やり取りしているように見える
※NLBはSGが設定できないのでターゲット側でSG管理が必要
PrivateLink
VPCEポイント経由でPrivateLinkを使いNLBにアクセスが可能
シンプルなアクセス制御で別VPCに対してサービスを提供できる
※利用者VPCとサービス提供側VPCをつなぐもの
利用者VPCにはVPCEを配置、サービス提供側にはVPCEサービスとNLBを置く(その背後にALBがよくある)
TLS 透過
注意:昔はできなかった(2019年以前)からターゲット側で行う必要があった
ターゲット
IP/インスタンス/ALB
Classic Load Balancer
概要
レイヤ4, 7で動作するロードバランサ
HTTP/HTTPS/TCP/UDP/SSL に対応
旧サービスのため基本的には推奨されない
※使用用途としては後方互換性
使われる場所
EC2-Classic環境
アプリケーション側で生成されたクッキーでのスティッキーセッションをしたい場合
Gateway Load Balancer
概要
セキュリティアプライアンス用ロードバランサ
アプライアンスごとのHA管理を簡素化、VPC分離が出来るようになる
マルチアカウント
VPCEサービスを作成し、そこに対してアクセスするエンドポイントを作っていくことで別アカウントでも使用可能
※GWLB-GWLBE Serviceは同一VPC内で一意に紐づき
GENEVE
ポート6081
導入
GWLB + IPS アプライアンスで検査したい
In:IGW → GWLBE → ALB → EC2
→Edgeアソシエーション(Edgeの関連付け):IGW/VGWにルートテーブルをアタッチする
Out:EC2 → GWLBE → NATGW → IGW
→MSR(More Specific Routing):local より細かいルートが設定できなかった
10.0.0.0/16 VPC, 10.0.0.0/24 ENI
Discussion