Skip to content

Commit 7226b25

Browse files
authored
Merge pull request #635 from TakahiroMishima/update-appgw-configchange-article
Update appgw configchange article
2 parents 3dcc4bb + 5e695c9 commit 7226b25

1 file changed

Lines changed: 30 additions & 72 deletions

File tree

Lines changed: 30 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,102 +1,60 @@
11
---
22
title: Application Gateway 設定変更の影響
3-
date: 2021-07-05 14:30:00
3+
date: 2026-06-26 00:00:00
44
tags:
55
- Network
66
- Application Gateway
77
---
88

9-
こんにちは、Azure テクニカル サポート チームの杜です。
10-
11-
Application Gateway に設定変更を行う際に既存接続(TCP コネクション)への影響についてご紹介させて頂きます。
12-
SKU により動作が異なっていますので、以下にて各 SKU の詳細をご説明します。
13-
14-
## Application Gateway SKU Standard_v1 & WAF_v1
15-
### 設定変更の影響
9+
> [!NOTE]
10+
> Application Gateway v1 は 2026 年 4 月 28 日をもって廃止となりました。<br>このため本記事では Application Gateway v2 に対する設定変更の影響についてのみ説明します。<br>2026 年 6 月現在、本記事は Application Gateway v2 / WAF v2 を対象としています。
1611
17-
基本的には既存接続に影響するような設定変更をしない限り影響はありません。
18-
19-
例えば、1つの Application Gateway に以下の設定が入っている場合は
20-
* リスナー A → 要求ルーティング A → HTTP設定 A → バックエンド プール A, カスタム正常性プローブ A
21-
* リスナー B → 要求ルーティング B → HTTP設定 B → バックエンド プール B, カスタム正常性プローブ B
22-
23-
任意の設定 A に対する設定変更、もしくは新規設定を追加してもリスナー B への既存接続に影響しません。
12+
こんにちは、Azure テクニカル サポート チームの杜です。
2413

25-
### 影響がある場合の動作
26-
既存接続が使用している設定を変更する場合、Application Gateway から クライアントに対して基本的に **TCP RST** を送信する動作だと確認しています。
27-
28-
例えば、リスナー A が使用している証明書を更新しますと、パケット キャプチャにて以下の動作が確認しています。
29-
30-
クライアント IP 192.168.0.172
31-
Application Gateway パブリック IP 20.48.x.x
32-
33-
![](./v1_rst.png)
34-
35-
> パケット レベルの詳細動作について現時点では公開ドキュメントに記載されておらず、保証される動作わけではございませんので、予めご了承ください。
36-
37-
### 影響がある設定変更内容
38-
以下に確認済みの既存接続に影響する設定変更をまとめています。
39-
* リスナー証明書の更新
40-
* リスナーのプロトコルやポート番号の変更
41-
* SSLポリシーや TLS バージョの変更
42-
* バックエンド設定にあるポート番号やプロトコルの変更
43-
* バックエンド プールからサーバーの削除
44-
* 接続のドレインが無効の場合: 削除されたバックエンド サーバーとの接続が切断され、クライアントに HTTP 502 エラーが返えされる
45-
* 接続のドレインが有効の場合: 設定されたタイムアウト時間内に、Application Gateway とバックエンド プールのセッションが維持され、既存の進行中リクエストの完了まで待つ
46-
47-
### 影響がない設定変更内容
48-
以下に確認済みの既存接続に影響しない設定変更をまとめています。
49-
* 使用されていないリスナー、バックエンド設定、正常性プローブ、ルートなどの設定の追加及び削除
50-
* SKU サイズ(S→M、M→Lなど)の変更
51-
* SKU 種類(Standard→WAF, WAF→Standard)の変更
52-
* インスタンス増減
53-
* バックエンド プールにサーバーの追加
54-
* HTTP2(無効→有効、有効→無効)の変更
55-
* バックエンド設定に接続ドレイン(無効→有効、有効→無効、タイムアウト時間)の変更
56-
* バックエンド設定に Cookie ベースのアフィニティ(無効→有効、有効→無効、Cookie名)の変更
57-
* 診断設定の追加、編集、削除
14+
本記事では Application Gateway に対して設定変更を行う際の既存接続 (TCP コネクション) への影響についてご紹介します。
5815

5916
## Application Gateway SKU Standard_v2 & WAF_v2
6017
### 設定変更の影響
6118

62-
基本的には全般の作業がすべての既存接続に影響を与えます。
63-
たとえ関連しない新規設定を追加するだけでも、既存すべてのリスナーへの TCP 接続が切断される動作となります。
19+
基本的には任意の設定変更がすべての既存接続に影響を与えます。<br>
20+
たとえ既存の通信に関連しない新規設定を追加する場合であっても、既存の通信を処理しているすべてのリスナーとの TCP 接続が切断される動作となります。
6421

65-
例えば、1つの Application Gateway に以下の設定が入っている場合は
66-
* リスナー A → 要求ルーティング A → HTTP設定 A → バックエンド プール A, カスタム正常性プローブ A
67-
* リスナー B → 要求ルーティング B → HTTP設定 B → バックエンド プール B, カスタム正常性プローブ B
22+
例えば、1つの Application Gateway に以下の設定が入っている場合は
23+
* リスナー A → 要求ルーティング規則 A → HTTP 設定 A → バックエンド プール A, カスタム正常性プローブ A
24+
* リスナー B → 要求ルーティング規則 B → HTTP 設定 B → バックエンド プール B, カスタム正常性プローブ B
6825

69-
任意の設定 A B に対する設定変更、もしくは新規の HTTP 設定やバックエンド プールを追加しますと、リスナー A 及び B への既存接続が切断されます。
26+
設定 A 又は B の任意のコンポーネントに対する設定変更、もしくは新規の HTTP 設定やバックエンド プールを追加しますと、リスナー A 及び B への既存接続が切断されます。
7027

7128
### 影響がある場合の動作
72-
任意の設定が変更される場合は、Application Gateway から クライアントに対して **TCP FIN** を送信する動作だと確認しています
29+
任意の設定変更を行った場合に、Application Gateway から クライアントに対して **TCP FIN** を送信する動作になっていることを確認しています
7330

74-
例えば、リスナー A が使用している証明書を更新しますと、パケット キャプチャにて以下の動作が確認しています
31+
例えば、リスナー A が使用している証明書を更新した際のパケット キャプチャを確認すると、以下の TCP シーケンスとなっています
7532

76-
クライアント IP 192.168.0.172
77-
Application Gateway パブリック IP 20.48.x.x
33+
クライアント IP アドレス: 192.168.0.172<br>
34+
Application Gateway パブリック IP アドレス: 20.48.x.x
7835

79-
![](./v2_fin.png)
36+
![](./appgw-configchange/v2_fin.png)
8037

81-
> パケット レベルの詳細動作について現時点では公開ドキュメントに記載されていなく、保証される動作わけではございませんので、予めご了承ください。
38+
> パケット レベルの詳細動作については現時点では公開ドキュメントに記載されておらず、将来にわたって保証される動作ではございませんので、予めご了承ください。
8239
8340
## よくある質問
84-
## TCP コネクションが切断されますが、実際にクライアントに対してどんな影響されますか
85-
クライアントの接続設定と挙動により一概にご案内できませんが、例えば Chrome などのブラウザが再接続などによって基本的には瞬断以外の影響はないと思われますが、
86-
もし少しの切断も許されないような環境でご利用の場合、メンテナンスの時間帯を設置して Application Gateway の設定変更をご実施頂きますようお願い致します
41+
### TCP コネクションが切断されるとのことですが、実際にクライアントに対してどのような影響がありますか
42+
クライアントの接続設定と挙動により一概にご案内できませんが、例えば Edge / Chrome などのブラウザーでは再接続などによって基本的には瞬断以外の影響はないと考えられます。<br>
43+
しかしながら、いかなる瞬断も許容されないような環境の場合、メンテナンス時間を設けて Application Gateway の設定変更を実施いただきますようお願いいたします
8744

88-
### 設定変更してから既存接続が切断されるまでどのぐらい時間かかりますか
89-
Azure 基盤側の処理状況によって固定ではありませんが、数十秒から数分間かかる場合は多いと見受けられます
45+
### 設定変更を行ってから既存接続が切断されるまでどれくらいの時間がかかりますか
46+
Azure 基盤側の処理状況に依存するため一概にご案内することはできませんが、数十秒から数分程度要する事例が多く見られます
9047
Azure ポータルから設定変更した場合は、下記のような設定変更の通知が出た後、数十秒後に接続済みの TCP コネクションが Application Gateway 側よりクローズされる動作を確認しています。
91-
![](./v2_notification.png)
48+
![](./appgw-configchange/v2_notification.png)
9249

93-
### Application Gateway v2 が KeyVault と連携している場合では、Key Vault 側で証明書を更新した際にも同じように瞬断などの影響を受けますか?
94-
以下の公開ドキュメントに記載されている通り、KeyVault と連携した場合は証明書更新が検出されると Application Gateway に自動的に反映する動作となります。
95-
- [Key Vault 証明書を使用した TLS 終端](https://docs.microsoft.com/ja-jp/azure/application-gateway/key-vault-certs)
50+
### Application Gateway v2 が Key Vault と連携している場合では、Key Vault 側で証明書を更新した際にも同じように瞬断などの影響を受けますか?
51+
はい、影響を受けます。<br>
52+
以下の公開ドキュメントに記載されているとおり、Key Vault と連携した場合は証明書の更新が検出されると Application Gateway に自動的に反映する動作となります。
53+
- [Key Vault 証明書を用いた TLS 終端](https://learn.microsoft.com/ja-jp/azure/application-gateway/key-vault-certs)
9654

97-
>インスタンスによって Key Vault が 4 時間間隔でポーリングされ、証明書の更新バージョン (存在する場合) が取得されます。 更新された証明書が検出されると、HTTPS リスナーに現在関連付けられている TLS または SSL 証明書が自動的にローテーションされます。
55+
>インスタンスによって 4 時間ごとに Key Vault がポーリングされ、証明書の更新バージョン (存在する場合) が取得されます。 更新された証明書が検出されると、HTTPS リスナーに関連付けられている TLS/SSL 証明書が自動的にローテーションされます。
9856
99-
この時に手動で証明書更新と同様な影響を受けることを確認しています
100-
そのため、既存接続に影響するタイミングをコントロールされたい場合は、証明書は手動更新にして頂きますようにお願い致します
57+
このときに手動で証明書を更新した場合と同様な影響を受けることを確認しています
58+
そのため、既存接続に影響するタイミングをコントロールされたい場合は、証明書は手動更新にしていただくようお願いいたします
10159

10260
以上、ご参考になれば幸いです。

0 commit comments

Comments
 (0)