Azure Load Balancer で「管理者の状態」という機能がプレビュー利用出来るようになっていたので使ってみた

Azure Load Balancer で「管理者の状態」という機能がプレビュー利用出来るようになっていたので使ってみた

Clock Icon2024.08.05

いわさです。

先日のアップデートで Azure Load Balancer に新たに「管理者の状態」という機能が登場しました。(プレビュー)

https://azure.microsoft.com/en-us/updates/public-preview-azure-load-balancer-now-supports-admin-state/

最初読んでいてよくわからなかったのですが、どうやら正常性プローブ(ヘルスチェック)の挙動を上書き出来る機能のようです。
バックエンドプールにインスタンスを接続した状態で、正常なバックエンドをダウンしている状態として扱って目的のインスタンにトラフィックが転送されないようにしたりと、メンテナンス用途などで利用が出来そうです。

設定ひとつで切り離し出来るのはおもしろいですね。
ちょっと試してみました。

ロードバランサー作成

まずは通常どおりロードバランサーを作成していきます。

5598E3A4-90EC-4A28-902C-BC7155C9F24C_4_5005_c

今回はシンプルにロードバランサーの後ろに仮想マシンが 2 つ並んでいるような構成にしてみます。
それぞれの仮想マシンは次の公式ドキュメントに従って LAMP をインストールし、仮想マシンが識別出来るような index.html 内容に変更しておきました。

DD088D35-B0F0-4BB4-84F4-7B6CECF86FC7

https://learn.microsoft.com/ja-jp/azure/virtual-machines/linux/tutorial-lamp-stack

ロードバランサーの分析画面でみるとこんなかんじです。

6E202615-43F6-4E1C-B8EE-DF24C26CEA05

この時点でアクセスしてみます。接続固定は「なし」にしているのでアクセスごとに転送先が異なってます。

% curl http://48.218.244.64/
hoge0729vm2
% curl http://48.218.244.64/
hoge0729vm2
% curl http://48.218.244.64/
hoge0729vm1
% curl http://48.218.244.64/
hoge0729vm1
% curl http://48.218.244.64/
hoge0729vm2
% curl http://48.218.244.64/
hoge0729vm1

管理者の状態を有効化する

この構成に対して「管理者の状態」機能を使ってみましょう。

まず、この機能はどこから使うかというとロードバランサーの「バックエンドプール」メニューから構成を行います。
今回のアップデートによって次のように「管理者の状態」列が表示されています。
(プレビューだからだと思いますが、表示されないことが結構ありリロードを繰り返すと表示されたりしました...)

BCE4AEB2-A87F-4883-A2CC-E468D873F021

対象のバックエンドごとに「管理者の状態」列から設定変更が可能です。
選択すると次のように状態変更が可能で「なし」「上」「下」を設定が可能です。
「なし」は管理者の状態を設定せずに従来どおりの挙動となります。
「上(アップ)」は要はバックエンドインスタンスのヘルスチェックステータスに関わらず正常性プローブがアップ状態であるとものとして動きます。つまり、正常性プローブに問題が発生していてもトラフィックはインスタンスに転送されます。
「下(ダウン)」はその反対で正常性プローブがダウン状態であるものとして動きます。

C06C9FFE-97B0-4A91-A638-F92F7370333E

管理者の状態を変更し保存してみたのですが、失敗しました。
機能がサブスクリプションに登録されていないと表示されていますね。たまに見るやつです。

EB3FB013-5C46-4B2C-9062-B3FABA1A9B92_4_5005_c

Azure の一部の機能(特にプレビュー系)はサブスクリプションごとに有効化(機能のオプトイン)が必要です。
サブスクリプションの設定 - プレビュー機能から「Allow Admin State for Azure Load Balancer」を検索し、登録しましょう。

74FFA9EE-C961-4958-91B6-DA5AA2E30556

登録後再び「管理者の状態」を設定してみました。バックエンドインスタンスのひとつをダウン状態にしてみます。

5079FDAA-54B1-437F-9614-11DA529BCD8B

先ほどと同様に複数リクエストを送信してみましたが、管理者の状態がダウン状態のものにはトラフィック転送されていないことがわかりますね。

% curl http://48.218.244.64/
hoge0729vm2
% curl http://48.218.244.64/
hoge0729vm2
% curl http://48.218.244.64/
hoge0729vm2

:

% curl http://48.218.244.64/
hoge0729vm2
% curl http://48.218.244.64/
hoge0729vm2

プローブダウンした状態と同じ感じであることがわかります。
この間にパッチ適用とかメンテナンスすれば良いって感じですね。イメージしやすいです。

BDE2905F-490F-406B-92B5-4244160674AF

さいごに

本日は Azure Load Balancer で「管理者の状態」という機能がプレビュー利用出来るようになっていたので使ってみました。

この機能はとてもおもしろいのではないでしょうか。
調査やメンテナンスのためにバックエンドインスタンスを切り離したいケースってあると思うんですけども、切り離しのための手順が複雑だと事故を起こすことも多く、シンプルに設定ひとつで ON/OFF 切り替えれるのは良いですね。

ちなみに公式ドキュメントの以下にこの機能の仕様について記載されてまして、インバウンド NAT 規則がサポートされていなかったりといくつか制限事項もありますのでご注意ください。

https://learn.microsoft.com/ja-jp/azure/load-balancer/admin-state-overview

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.