Application Load Balancer (ALB) でクロスゾーン負荷分散がオフできるようになりました!!

記事タイトルとURLをコピーする

こんにちわ。こんばんわ。CI部の佐藤です。 re:invent 2022 に参加しているためラスベガスからお伝えします。

この記事を書いている途中で re:invent 2022 中に発表されたものでは無いことに気がついたのですが、せっかくなので公開します。re:invent 気分でお読みいただけるとうれしいです。

内容は2022年11月17日のアップデートされたものなります。

内容 ・ Updateには以下書かれていました。クロスゾーン負荷分散のオフが可能になったと書かれています。

Application Load Balancer は、ロードバランサーのノードと同じゾーンにあるターゲットにのみトラフィックをルーティングすることができるようになりました。これにより、複数のゾーンにわたって Application Load Balancer を使用していてもソフトウェアのスタックのゾーンごとの分離を維持することができ、ゾーンごとの失敗時の可用性が向上します。

ターゲットグループごとやリージョンごとにクロスゾーン負荷分散をオフに設定することが可能になりました。また AWS SDK を使用して、1 つ以上のロードバランサーと関連する複数のターゲットグループに対し、プログラムによってクロスゾーン負荷分散をオフに設定することもできます。この機能はバックグラウンドでシナリオを自動スケーリングするのに役立ち、確実にターゲットアプリケーションが AZ ごとにスケーリングされます。またこの機能には、既存のロードバランサーの各種メトリクス向けに必須のゾーンごとのディメンションが追加されました。

aws.amazon.com

これまでについて

・ これまでの各ELBでは以下となっていてALBのみ変更することができませんでしたが、今回できるようになりました。

・ 詳細についてはこちらをご参考ください。2022/11/29時点で日本語では情報が古いままですがEnglishに変更すると、最新情報になっていました。

これまでのクロスゾーン負荷分散設定
ALB デフォルト有効 変更不可
NLB/GLB デフォルト無効 変更可能
CLB デフォルト有効 変更可能 ※1

*1 GUIで作成する場合、有効にチェックが入った状態ですがCLIから作成した場合は無効で作成されます。

オフにしてみたい

・ ALB(とターゲットグループ)を作成してみてみます。

・ 作成したあとのALBの属性をみてみると以下のようになっていて、[オン] になっていますので、変更してみます。

・ 編集画面ですが、以下のようになっていて設定を変更することができないので、書かれているとおりターゲットグループの属性もみてみます。

・ [ロードバランサー属性から設定を継承] となっているので、クリックします。

・ [オン] と [オフ] が選べますので [オフ] にします。

・ オフになりました。

・ それでは動作確認していきます。ターゲットにしていたWebサーバのアクセスログをみてみます。

・ 以下のように2つのIPアドレスからヘルスチェックが行われていました。

10.0.12.28 - - [30/Nov/2022:02:39:38 +0000] "GET / HTTP/1.1" 200 - "-" "ELB-HealthChecker/2.0"
10.0.28.240 - - [30/Nov/2022:02:40:04 +0000] "GET / HTTP/1.1" 200 - "-" "ELB-HealthChecker/2.0"
10.0.12.28 - - [30/Nov/2022:02:40:08 +0000] "GET / HTTP/1.1" 200 - "-" "ELB-HealthChecker/2.0"
10.0.28.240 - - [30/Nov/2022:02:40:34 +0000] "GET / HTTP/1.1" 200 - "-" "ELB-HealthChecker/2.0"
10.0.12.28 - - [30/Nov/2022:02:40:38 +0000] "GET / HTTP/1.1" 200 - "-" "ELB-HealthChecker/2.0"
10.0.28.240 - - [30/Nov/2022:02:41:05 +0000] "GET / HTTP/1.1" 200 - "-" "ELB-HealthChecker/2.0"

・ 変更後は以下のように1つのIPアドレスからのみヘルスチェックが行われています。

10.0.12.28 - - [30/Nov/2022:02:41:08 +0000] "GET / HTTP/1.1" 200 - "-" "ELB-HealthChecker/2.0"
10.0.12.28 - - [30/Nov/2022:02:41:38 +0000] "GET / HTTP/1.1" 200 - "-" "ELB-HealthChecker/2.0"
10.0.12.28 - - [30/Nov/2022:02:42:08 +0000] "GET / HTTP/1.1" 200 - "-" "ELB-HealthChecker/2.0"
10.0.12.28 - - [30/Nov/2022:02:42:38 +0000] "GET / HTTP/1.1" 200 - "-" "ELB-HealthChecker/2.0"```

最後に

・ ALBからの設定しようとするとオフにできないので混乱するかと思って記載してみました。どなたかのお役に立てたら幸いです。

▼ 11月28日〜12月2日 AWS re:Invent 2022開催中!▼

米・ラスベガスで開催されるAWS最大のカンファレンスイベント!
ご登録はこちらから:

佐藤 (執筆記事の一覧)

CI部

ネットワークエンジニアからAWSエンジニアに変身しました。