AWS 為 Gateway Load Balancer 加入 TCP Reset:代理復原鏈路應測試什麼

AWS 於 2026 年 9 月 2 日宣布 Gateway Load Balancer 支援 TCP Reset。當後端目標被判定為不健康、完成註銷,或閒置流在逾時後再次收到封包時,GWLB 可以主動回傳 TCP 重置。傳送端不必繼續等待 TCP 重傳耗盡,而能明確知道舊連線已結束並建立新連線。
對於把合規資料收集、區域驗證或代理瀏覽器流量放在防火牆與檢測設備後方的團隊,這不只是負載平衡選項。客戶端看到的故障訊號已改變,因此復原邏輯、工作階段狀態與監控都應在上線前重新驗證。
AWS 改變了什麼
GWLB 會把網路流分配給防火牆、入侵偵測和深度封包檢查等虛擬設備。AWS 說明,原有 fail-open 行為可能繼續把既有流量送向不健康設備,客戶端只能等待 TCP 重試與指數退避,持續數十秒甚至數分鐘。
啟用 TCP Reset 後,GWLB 會移除受影響的流表項目,並在該流再次有封包時回傳 RST。應用程式隨後建立的新連線會形成新流,並可被分配給健康設備。
AWS 列出三類獨立觸發條件:
| 觸發條件 | 傳送重置的時點 | 設定範圍 |
|---|---|---|
| 目標不健康 | 健康檢查達到失敗門檻後 | 目標群組 |
| 目標註銷 | 連線排空時間結束後 | 目標群組 |
| 閒置流收到非 SYN 封包 | TCP 閒置逾時後 | 監聽器 |
此功能預設關閉,並要求五元組流黏著性。如果同時啟用 Flow Rebalance,則後者優先。
更快的故障訊號不等於立即復原
RST 消除一部分等待,但完整復原仍包含多個時鐘:
- 故障偵測時間:健康檢查間隔、失敗門檻與處理時間;
- 重置送達時間:目標變為不健康後,到相關封包收到 RST;
- 客戶端反應時間:辨識錯誤、執行退避並建立新連線;
- 路由復原時間:新流通過健康設備與核准的代理路徑;
- 業務復原時間:第一個結果通過內容、位置、工作階段與合規驗證。
AWS 提醒,預設健康檢查仍可能帶來數分鐘的偵測窗口。更積極的檢查可以縮短時間,但也會增加誤判。團隊應依自己的設定測量完整鏈路,而不是籠統宣稱「數秒復原」。
代理應用需要補做的測試
單獨記錄 RST
把 TCP 重置視為獨立傳輸結果,不要與連線逾時、TLS 錯誤、驗證失敗、HTTP 拒絕或內容無效合併。它們對應的安全處理方式不同。
限制重試規模
RST 可能觸發立即重連,大量工作程序容易同時重試。應加入抖動、最大嘗試次數、任務總時限與斷路器,並持續計算「總嘗試次數除以原始任務數」的重試放大倍數。
重新驗證替代路徑
新連線仍必須使用預期閘道、協定、位址家族和區域,並禁止直連回退。對黏著性工作負載,要預先定義出口改變是否會讓應用工作階段失效。
保護結果不確定的操作
RST 只能證明連線已結束,不能證明先前的寫入操作沒有生效。優先使用冪等鍵、檢查點與結果對帳;狀態未知時先隔離,不要自動重播。
同時監控基礎設施與業務結果
AWS 加入 TCP_ELB_Reset_Count 指標。應將它與目標健康變化、代理連線結果、首次成功率、有效內容率、工作階段遺失和業務復原時間一起觀察。只有重置計數,沒有有效結果,不能證明復原成功。
可控驗證流程
僅在自有或明確授權的測試環境執行。
- 使用一個健康設備和低固定負載建立基線。
- 核對五元組黏著性、閒置逾時與健康檢查設定。
- 以可逆方式讓一台測試設備離線或失效。
- 分別記錄故障注入、健康狀態變化、RST、新連線與第一個有效結果的時間。
- 確認沒有請求繞過代理直接連線。
- 核對黏著工作階段、Cookie 與進行中操作是否正確。
- 將總嘗試次數、p95 延遲與每個有效結果成本和基線比較。
- 分別測試目標註銷與閒置逾時,不要假設它們與健康失敗完全相同。
- 恢復設備後確認沒有路由抖動。
- 記錄上線與回滾門檻。
發布檢查清單
- [ ] 僅在預期目標群組和監聽器啟用 TCP Reset。
- [ ] 五元組黏著性已驗證。
- [ ] 已理解 Flow Rebalance 的優先關係。
- [ ] 健康檢查速度符合復原目標且誤判可接受。
- [ ] 客戶端能單獨辨識 RST,不會形成同步重試風暴。
- [ ] 已禁止直連回退。
- [ ] 替代路徑保持所需區域、協定與位址家族。
- [ ] 不確定寫入具備冪等或隔離機制。
- [ ] 基礎設施與業務復原指標都可見。
- [ ] 非正式環境故障演練通過後才上線。
常見問題
TCP Reset 會把舊流移到另一台設備嗎?
不會。它終止受影響的流,應用程式必須建立新連線,新流才會被分配給健康目標。
可以取消應用程式逾時嗎?
不可以。AWS 建議保留應用層逾時。RST 是額外訊號,不能取代任務總時限與有界重試。
它能解決所有代理逾時嗎?
不能。它只處理特定 GWLB 流場景。代理驗證、上游壅塞、目標限流、DNS、TLS 和內容驗證仍是獨立故障層。
最重要的驗收指標是什麼?
測量「第一個有效業務結果」的復原時間,不只看新連線建立時間,並同時驗證工作階段、路由合規與重複操作防護。
可搭配 98IP 的代理故障轉移演練、代理逾時預算和重試放大控制繼續完善客戶端方案。
合規說明
只測試自有或明確獲准的系統、帳號與流量路徑。遵守目標網站條款、robots 指令、速率限制、隱私義務和適用法律。不得用重置、重試或切換路由覆蓋存取決定,日誌中不得保留代理密碼、Cookie 或權杖。
來源說明:Amazon Web Services,《Reduce Traffic Interruptions with Gateway Load Balancer TCP Reset》,發布於 2026 年 9 月 2 日。