この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、網走の大村です。
クロスゾーン負荷分散のデフォルト値がELBの各種類、作成方法によって異なることを調べました。
クロスゾーン負荷分散とは
例えばアベイラビリティーゾーンが2つあり、各アベイラビリティーゾーンにターゲットノード(EC2インスタンス)の起動数に偏りがあってもトラフィックを均等に各EC2インスタンスへ分散する機能です。
ELBの種類毎のデフォルト値
ELBの種類と作り方によってもデフォルトの設定値が異なっていることを知ったので整理しました。
クロスゾーン負荷分散デフォルト設定値
ELBの種類 | マネジメントコンソールから作成 | API/CLIから作成 |
---|---|---|
Application Load Balancer | 有効 | 有効 |
Network Load Balancer | 無効 | 無効 |
Classic Load Balancer | 有効 | 無効 |
検証してみた
各ELBをマネジメントコンソールから作成しAWS CLIでパラメータを確認します。CLBはCLIからも作成して、デフォルト値が異なることを確認します。
ALB マネジメントコンソールからの作成結果
クロスゾーン負荷分散の項目がない。気になったので後述します。
aws elbv2 describe-load-balancer-attributes --load-balancer-arn "arn:aws:elasticloadbalancing:ap-northeast-1:000000000000:loadbalancer/app/alb-manual/f9d660c7ffa7619b" --output table
----------------------------------------------------------------
| DescribeLoadBalancerAttributes |
+--------------------------------------------------------------+
|| Attributes ||
|+---------------------------------------------------+--------+|
|| Key | Value ||
|+---------------------------------------------------+--------+|
|| access_logs.s3.enabled | false ||
|| access_logs.s3.bucket | ||
|| access_logs.s3.prefix | ||
|| idle_timeout.timeout_seconds | 60 ||
|| deletion_protection.enabled | false ||
|| routing.http2.enabled | true ||
|| routing.http.drop_invalid_header_fields.enabled | false ||
|+---------------------------------------------------+--------+|
NLB マネジメントコンソールからの作成結果
クロスゾーン負荷分散は無効
aws elbv2 describe-load-balancer-attributes --load-balancer-arn "arn:aws:elasticloadbalancing:ap-northeast-1:000000000000:loadbalancer/net/nlb-manual/ad789b64a430a8fa" --output table
--------------------------------------------------
| DescribeLoadBalancerAttributes |
+------------------------------------------------+
|| Attributes ||
|+-------------------------------------+--------+|
|| Key | Value ||
|+-------------------------------------+--------+|
|| access_logs.s3.enabled | false ||
|| load_balancing.cross_zone.enabled | false ||
|| access_logs.s3.prefix | ||
|| deletion_protection.enabled | false ||
|| access_logs.s3.bucket | ||
|+-------------------------------------+--------+|
CLB マネジメントコンソールからの作成結果
クロスゾーン負荷分散は有効
aws elb describe-load-balancer-attributes --load-balancer-name "clb-manual" --output table
--------------------------------
|DescribeLoadBalancerAttributes|
+------------------------------+
|| LoadBalancerAttributes ||
|+----------------------------+|
||| AccessLog |||
||+-------------+------------+||
||| Enabled | False |||
||+-------------+------------+||
||| ConnectionDraining |||
||+------------+-------------+||
||| Enabled | Timeout |||
||+------------+-------------+||
||| True | 300 |||
||+------------+-------------+||
||| ConnectionSettings |||
||+------------------+-------+||
||| IdleTimeout | 60 |||
||+------------------+-------+||
||| CrossZoneLoadBalancing |||
||+--------------+-----------+||
||| Enabled | True |||
||+--------------+-----------+||
CLB AWS CLIからの作成結果
クロスゾーン負荷分散は無効。CLIから作成するとドキュメントの通り無効で作成されることを確認できました。
aws elb create-load-balancer --load-balancer-name clb-cli --listeners "Protocol=HTTP,LoadBalancerPort=80,InstanceProtocol=HTTP,InstancePort=80" --subnets subnet-05ce64dcf64bd3d83 --security-groups sg-02b9ebe110bf9ae04
aws elb describe-load-balancer-attributes --load-balancer-name "clb-cli" --output table
--------------------------------
|DescribeLoadBalancerAttributes|
+------------------------------+
|| LoadBalancerAttributes ||
|+----------------------------+|
||| AccessLog |||
||+-------------+------------+||
||| Enabled | False |||
||+-------------+------------+||
||| ConnectionDraining |||
||+------------+-------------+||
||| Enabled | Timeout |||
||+------------+-------------+||
||| False | 300 |||
||+------------+-------------+||
||| ConnectionSettings |||
||+------------------+-------+||
||| IdleTimeout | 60 |||
||+------------------+-------+||
||| CrossZoneLoadBalancing |||
||+-------------+------------+||
||| Enabled | False |||
||+-------------+------------+||
ALBのクロスゾーン負荷分散の項目がなかったので気になった
Application Load Balancer では、クロスゾーン負荷分散が常に有効になっています。
常にと言うことは無効にもできないというか。
Elastic Load Balancing の詳細 - Elastic Load Balancing
おわりに
AWS SAPの勉強中に調べ物していた際に今回のドキュメントにたどり着き、気になったので試してみました。ALBではあえて無効できないこと、NLBはデフォルト値が無効であることを知れたのが収穫。