問AWS NLB如何調整才能使兩EC2所獲得請求一致

更新於 發佈於 閱讀時間約 6 分鐘

如果在AWS上設置了兩台EC2實例,分別位於不同的可用區(Availability Zone),並配置了NLB(網路負載均衡器)來進行流量分配。目前注意到,當在兩台EC2實例上分別執行Linux指令 netstat -tunlpa | wc -l 來檢查網路連接數時,發現兩邊的結果並不一致。更具體地說,流量似乎大多集中在其中一台EC2實例上,這引發了相關的疑問。

raw-image

目前使用的指令 netstat 是Linux中用來查看網路連線、路由表、連接埠狀態及相關統計資訊的工具。netstat -tunlpa 用於顯示所有監聽和非監聽的Socket連線,並顯示由程式佔用的TCP/UDP端口,通常會顯示多組數字。wc -l 是用來統計結果中顯示行數,即統計符合條件的連線數量。


可能的原因:

在這種情況下,造成結果不一致的原因可能有多方面,以下是幾個可能的方向:

1.NLB健康檢查設置:若NLB健康檢查設置不當,可能會影響流量分配,導致流量不均勻。

2.跨區負載均衡設定:默認情況下,NLB會將流量均勻分配到所有健康的目標EC2實例。如果未啟用跨區負載均衡(Cross-Zone Load Balancing),則流量將僅在每個可用區內的EC2實例之間進行分配。如果EC2實例分佈在不同可用區,可能會導致某區域接收更多流量,特別是在某可用區存在的EC2實例較少的情況下。

3.EC2實例配置問題: 目前所提到的 netstat 結果不一致,可能與EC2實例本身的配置或狀況有關, 比如某些實例處於高負載狀態,或者未能正確處理來自NLB的流量。

建議的步驟:

  1. 檢查NLB健康狀態
    如圖所示,確認NLB的健康檢查結果是否為「健康」(Healthy)。如果健康檢查顯示正常,則可以進一步排查其他可能的原因。


raw-image



    2.檢查NLB是否開啟跨區負載均衡(Cross-zone Load Balancing)


        如圖所示,跨區負載均衡功能目前處於關閉狀態。


raw-image



NLB結論:

  1. NLB設置正常
    經過檢查,相關設置和配置均顯示正常,且健康檢查結果顯示為「健康」(Healthy),這表示NLB的負載均衡功能正常運作,並且在將流量分配到目標EC2實例時沒有問題。
  2. 跨區負載均衡未啟用
    由於跨區負載均衡功能未開啟,而情境中並未提到有配置EC2集群,因此流量僅會在當前可用區內的目標EC2實例之間進行均衡分配。這並不影響負載均衡的運作,因為該功能僅限於跨可用區進行負載分配。
  3. 問題可能出在EC2設置,而非NLB
    根據目前的檢查結果,問題並不在於NLB的配置,而可能是在設置的EC2實例上。如果需要進一步分析,就需要檢查EC2的相關日誌和配置資料,以便進行更詳細的排查。

檢查 EC2 實例的資源使用情況

EC2 實例的資源使用情況,如 CPU、內存、網路帶寬等,會直接影響其處理流量的能力。如果某台 EC2 實例的資源處於高負載狀態,它可能無法處理更多的連線請求。

  • CPU 和內存使用率:檢查 EC2 實例的 CPU 和內存使用率。使用 tophtopfree 等工具來監控資源的使用情況。若某一台實例的資源消耗過高,則需要調整應用配置,或考慮升級實例類型。
  • 網路帶寬使用:檢查 EC2 實例的網路流量,確保其網路帶寬未達到瓶頸。使用 ifstatnetstat 等工具來監控網路帶寬使用情況。如果某台實例的網路帶寬達到限制,可能會影響其處理連線的能力。
  • 負載均衡設置(應用層):如果 EC2 上運行的是應用程式(如 Web 伺服器、API 伺服器等),需要確保這些應用層的負載均衡設置是合理的。例如,若使用 Nginx、Apache 或其他反向代理服務,應確保其配置允許跨可用區均衡地處理流量。

檢查應用層的負載均衡配置

如果 EC2 實例上運行的是 Web 服務或應用服務,這些服務的負載均衡設置也會影響流量的分配。

  • 應用層的負載均衡:如果使用 Nginx、HAProxy、或其他反向代理,檢查這些應用層負載均衡工具的設置,確保它們能夠均衡分配流量,並且不會因為配置錯誤導致不均衡的流量分配。
  • Session Stickiness(會話黏性):檢查是否開啟了會話黏性(Session Stickiness)設置,這會讓同一用戶的所有請求被定向到同一台 EC2 實例。如果開啟了會話黏性,則可能導致某台 EC2 實例的流量過高,另一台過低。可以根據需要調整會話黏性策略。

監控與性能調整

  • CloudWatch 監控:利用 CloudWatch 監控 EC2 實例的 CPU 使用率、網路流量、磁碟 IO 等指標,這可以幫助你發現性能瓶頸,進而調整實例配置或應用設置。
  • 性能調整:如果發現某台實例處於高負載狀態,可以考慮升級 EC2 實例類型,增加 CPU、內存、網路帶寬等資源,來提高其處理能力。也可以使用 Auto Scaling(自動擴容)來根據需求自動增加或減少 EC2 實例。

檢查應用程式或服務的配置

如果你的 EC2 實例運行的是需要長時間保持連接的應用程式(例如 Web 伺服器、數據庫服務等),需要檢查是否有不合理的配置,導致某一台實例的資源被過度消耗,或是某些連線未被正確關閉。

  • TCP 連線數量:檢查是否有大量的半開或掛起的 TCP 連線,這可能會導致某一台實例的負載過高。可以通過 netstatss 命令來檢查 TCP 連線狀態。
  • Keep-Alive 設置:如果應用程式使用了 HTTP Keep-Alive 連接,確保設置合理。過長的 Keep-Alive 連線時間可能會導致不必要的資源佔用。

檢查網路拓撲與延遲

在某些情況下,網路延遲也可能影響負載均衡的效果。雖然 NLB 會根據健康檢查將流量分配到健康的 EC2 實例,但如果某一台 EC2 實例所處的可用區(AZ)出現延遲或網路問題,可能會導致流量分配不均。

  • 檢查 VPC 和子網配置:確認 EC2 實例所在的 VPC 和子網設置沒有問題。網路瓶頸或錯誤的路由配置可能會影響流量分配。


若發現


關於NLB健康檢查相關操作可參考AWS原廠文件

https://docs.aws.amazon.com/zh_tw/elasticloadbalancing/latest/network/check-target-health.html





留言
avatar-img
留言分享你的想法!
avatar-img
手把手玩IT!
2會員
108內容數
手把手玩IT!的其他內容
2025/01/03
 Azure 平台中的子網路(Subnet)是虛擬網路(Virtual Network,VNet)中的一部分,它允許用戶將虛擬網路劃分為更小的區域,以便進行網路隔離和更精細的流量管理。本教學將詳細介紹如何在 Azure 入口網站中建立子網路,過程簡單易懂,適合初學者。 前置條件 已有 Azur
Thumbnail
2025/01/03
 Azure 平台中的子網路(Subnet)是虛擬網路(Virtual Network,VNet)中的一部分,它允許用戶將虛擬網路劃分為更小的區域,以便進行網路隔離和更精細的流量管理。本教學將詳細介紹如何在 Azure 入口網站中建立子網路,過程簡單易懂,適合初學者。 前置條件 已有 Azur
Thumbnail
2025/01/03
AWS ADS 和 MGN遷移應用  在進行地端伺服器(on-premises servers)遷移到 AWS 雲端的過程中,AWS 提供了多種工具來協助遷移工作,兩個常見的選擇是 AWS Application Discovery Service (ADS) 和 AWS Applicatio
Thumbnail
2025/01/03
AWS ADS 和 MGN遷移應用  在進行地端伺服器(on-premises servers)遷移到 AWS 雲端的過程中,AWS 提供了多種工具來協助遷移工作,兩個常見的選擇是 AWS Application Discovery Service (ADS) 和 AWS Applicatio
Thumbnail
2025/01/03
CSP類型的Azure訂用帳戶需開啟Cost Management相關權限才可看見預估費用 Azure Cost Management是Azure所提供的一套雲端成本控制和優化工具,重點在幫助用戶們有效管理在Azure平台上的支出。其中的功能包含了費用監控、預算管理、成本預測各個方面,可以讓用
Thumbnail
2025/01/03
CSP類型的Azure訂用帳戶需開啟Cost Management相關權限才可看見預估費用 Azure Cost Management是Azure所提供的一套雲端成本控制和優化工具,重點在幫助用戶們有效管理在Azure平台上的支出。其中的功能包含了費用監控、預算管理、成本預測各個方面,可以讓用
Thumbnail
看更多
你可能也想看
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
Cloud Run 允許您指定哪些修訂版應該接收流量,並指定不同版本接收的流量比例。Revisions 也能使您能夠回滾到先前的版本、逐步增加新版本的流量比例,或在多個修訂版之間拆分流量。
Thumbnail
Cloud Run 允許您指定哪些修訂版應該接收流量,並指定不同版本接收的流量比例。Revisions 也能使您能夠回滾到先前的版本、逐步增加新版本的流量比例,或在多個修訂版之間拆分流量。
Thumbnail
實驗目的:Lambda@Edge (L@E) 讓 CLoudFront (CF) 回源時,自動選擇較近的 S3 region 回源
Thumbnail
實驗目的:Lambda@Edge (L@E) 讓 CLoudFront (CF) 回源時,自動選擇較近的 S3 region 回源
Thumbnail
新加入的指標 VolumeStalledIOCheck: 此指標是二進位值,將根據 EBS 磁碟區是否可以完成 I/O 操作傳回 0(通過)或 1(失敗)狀態。 可能原因: EBS 磁碟區底層儲存子系統的硬體或軟體問題 實體主機上的硬體問題會影響 EC2 執行個體中的 EBS 磁碟區
Thumbnail
新加入的指標 VolumeStalledIOCheck: 此指標是二進位值,將根據 EBS 磁碟區是否可以完成 I/O 操作傳回 0(通過)或 1(失敗)狀態。 可能原因: EBS 磁碟區底層儲存子系統的硬體或軟體問題 實體主機上的硬體問題會影響 EC2 執行個體中的 EBS 磁碟區
Thumbnail
在著陸區(Landing Zone)在規劃時,在上一篇文章[1]的網路架構分享是以Shared VPC為例,但是在現實生活中,總是有各種前人留下的歷史共業或公司規範、作業考量而不能使用Shared VPC來集中管理雲端環境的網路架構。 因此分享常見的網路架構設計和設計架構時參考的因素!
Thumbnail
在著陸區(Landing Zone)在規劃時,在上一篇文章[1]的網路架構分享是以Shared VPC為例,但是在現實生活中,總是有各種前人留下的歷史共業或公司規範、作業考量而不能使用Shared VPC來集中管理雲端環境的網路架構。 因此分享常見的網路架構設計和設計架構時參考的因素!
Thumbnail
接續上一篇文章,本文再深入一點關於ETCD基本操作以及在其他文章中關於ETCD節點資料不一致情況的除錯內容分享
Thumbnail
接續上一篇文章,本文再深入一點關於ETCD基本操作以及在其他文章中關於ETCD節點資料不一致情況的除錯內容分享
Thumbnail
當大量的網路封包在有限的頻寬中傳輸,總有一些服務的封包會因為搶不過其他封包而造成卡頓,例如玩遊戲時,若同時也在下載其他大型檔案,就會造成遊戲卡頓甚至斷線。這時候客製化QOS來決定哪些封包能優先被傳送,就能有效地提升指定服務的順暢度,進而提升使用者在網路上的體驗。 本篇文章接介紹如何在OpenW
Thumbnail
當大量的網路封包在有限的頻寬中傳輸,總有一些服務的封包會因為搶不過其他封包而造成卡頓,例如玩遊戲時,若同時也在下載其他大型檔案,就會造成遊戲卡頓甚至斷線。這時候客製化QOS來決定哪些封包能優先被傳送,就能有效地提升指定服務的順暢度,進而提升使用者在網路上的體驗。 本篇文章接介紹如何在OpenW
Thumbnail
AWS AMI Oracle Linux 7 包成 AMI 後,使用 AMI 啟動新 EC2 會遇到 Instance status checks fail 的問題 查看 system log 看到 EC2 開機時沒有抓到 eth0 ,導致 Instance status checks fai
Thumbnail
AWS AMI Oracle Linux 7 包成 AMI 後,使用 AMI 啟動新 EC2 會遇到 Instance status checks fail 的問題 查看 system log 看到 EC2 開機時沒有抓到 eth0 ,導致 Instance status checks fai
Thumbnail
1.首先 這是 “AWS 上的工作負載發現” 的解決方案,我嘗試了一下,覺得很方便,所以介紹一下~ https://aws.amazon.com/tw/solutions/implementations/workload-discovery-on-aws/ 2. 部署 官方提供 CloudF
Thumbnail
1.首先 這是 “AWS 上的工作負載發現” 的解決方案,我嘗試了一下,覺得很方便,所以介紹一下~ https://aws.amazon.com/tw/solutions/implementations/workload-discovery-on-aws/ 2. 部署 官方提供 CloudF
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News