ロードバランサー
ロードバランサー
機能
負荷分散- 死活監視による
可用性向上
ELB
AWSはELB(Elastic Load Balancing)として以下のサービスを提供しています。
- ALB(Application Load Balancer)
- セキュリティグループ、WAFを設定可
- Internet ALB
- InternalなALB
- セキュリティグループ、WAFを設定可
- NLB(Network Load Balancer)
- セキュリティグループ、WAFを設定不可
- GLB(Gateway Load Balancer)
- CLB(Classic Load Balancer)
1つのターゲットグループを複数のロードバランサーに設定することはできない。つまりターゲットグループとロードバランサーは1対1。
ALB
ALBのおもな機能は以下のとおりです。
- OSI参照モデル第7層で動作(おもにHTTP/HTTPSで使用されるがgRPCなども使用できる)
- AWS WAF、Amazon Cognitoとの連携
- ホストヘッダやURLパスなどの条件にもとづくルーティング
- SSLとの連携
使用可能な条件
- ホストヘッダー
- パスパターン
- HTTPヘッダー
- HTTPメソッド
- クエリ文字列
- 送信元IP
ターゲットグループ
- インスタンス
- IPアドレス
- Lambda関数
※ ALBのターゲットグループにALBは指定できない(NLBはALBを指定できる)。
アルゴリズム
- ラウンドロビン
スティッキーセッション
- ALBが生成した2つのCookie(AWSALB、AWSALBCORS)を使用
- アプリケーションが生成したCookieを使用
Application Load Balancer のスティッキーセッション
アプリケーションのプライベート化
ALBを使用することによってアプリケーションをプライベートサブネットに配置することができます。
プライベートサブネットに配置することによってセキュリティが高まります。
Auto Scalling
EC2
- Auto Scalling機能はターゲットグループと紐付けたAuto Scallingグループが使用される
ECS
ECSのサービスを作成する際にサービス定義でターゲットグループを指定することで、動的ポートマッピングによりECSは動的に変化するコンテナのポートとインスタンスを自動的にターゲットグループに登録、解除してくれます。
AWS認定 高度なネットワーキング - 専門知識位 p157
X-Forwarded-For
ALBではクライアントIPをアプリケーションにHTTPヘッダのX-Forwarded-Forを使って渡します。
HTTP ヘッダーと Application Load Balancer
ACM ALBにACM設定してECSに登録
Application Load Balancer を作成し、Amazon ECS タスクを自動的に登録する方法を教えてください。から引用
- ACMを設定
Target Groupを作成する- Typeは
IP Address ECS Serviceを起動するVPCを選択する
- Typeは
ALBを作成ACMを関連付けるTarget Groupを関連付けるSecurity Groupを設定する
ECS Serviceを作成する 1.ALBを指定するTarget Groupを指定する(ECS Service起動時にPrivate IP adressで指定したTarget GroupのTargetに追加される)



ルーティング
CloudFormation
- ロードバランサー:
AWS::ElasticLoadBalancingV2::LoadBalancer - リスナー:AWS::
AWS::ElasticLoadBalancingV2::Listener - ターゲットグループ:
AWS::ElasticLoadBalancingV2::TargetGroup
ロードバランサーのタイプ
- ALB:
AWS::ElasticLoadBalancingV2::LoadBalancer.Properties.Type.application
NLBとの違い
NPBとの違いは以下のとおり。
- NLBはロードバランサーのIPを固定できる
- NLBはクライアントのIPを
IPヘッダに保持したままアプリケーションにアクセスできる - NLBはAmazon Cognito、AWS WAFが使用できない
- NLBはホストヘッダやURLのパスに基づくルーティングができない
- NLBはセキュリティグループを設定できない
- アクセス制御はNLBを配置するサブネットのNetwork ACLやターゲットインスタンスのセキュリティグループで実施する
- NLBもスティッキーセッションはALB同様使用できる
- NLBのアルゴリズムはフローハッシュアルゴリズム