問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
蝦皮分潤計畫讓我在分享旅遊文章時,也能透過推薦好物累積被動收入,貼補旅行基金。這篇文章,除了介紹計畫的操作亮點與心得,也分享我最常應用的案例:「旅行必備小物 TOP5」,包含行李鎖、免洗內衣褲、分裝瓶、折疊衣架與真空壓縮袋,幫助出國打包更輕鬆。想同時記錄旅行、分享好物又創造額外收入的你,千萬別錯過!
Thumbnail
蝦皮分潤計畫讓我在分享旅遊文章時,也能透過推薦好物累積被動收入,貼補旅行基金。這篇文章,除了介紹計畫的操作亮點與心得,也分享我最常應用的案例:「旅行必備小物 TOP5」,包含行李鎖、免洗內衣褲、分裝瓶、折疊衣架與真空壓縮袋,幫助出國打包更輕鬆。想同時記錄旅行、分享好物又創造額外收入的你,千萬別錯過!
Thumbnail
想增加被動收入?加入蝦皮分潤計畫是輕鬆上手的好方法!本文提供完整教學,包含申請流程、賺取分潤技巧,以及實際使用心得分享,助你輕鬆獲得額外收入。
Thumbnail
想增加被動收入?加入蝦皮分潤計畫是輕鬆上手的好方法!本文提供完整教學,包含申請流程、賺取分潤技巧,以及實際使用心得分享,助你輕鬆獲得額外收入。
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
Thumbnail
本篇文章要介紹的是 AWS 的雲端運算服務 —— Amazon Elastic Compute Cloud (EC2),文末也會帶領讀者使用 EC2 建立 Web Server。
Thumbnail
本篇文章要介紹的是 AWS 的雲端運算服務 —— Amazon Elastic Compute Cloud (EC2),文末也會帶領讀者使用 EC2 建立 Web Server。
Thumbnail
橋接器的特色就是將多個不同網段的獨立網路﹝進行連接﹞,就好像一座橋一樣,把不同的網絡變成同一個網絡一樣。 然而這樣做的主要目的是﹝提高網絡的可靠度﹞、﹝增加網絡的效率及安全性﹞。 如圖所示,﹝Bridge﹞在這邊的運作流程是: 接收到發送請求→判斷請求是否放行→傳送到目的位址。 範例:
Thumbnail
橋接器的特色就是將多個不同網段的獨立網路﹝進行連接﹞,就好像一座橋一樣,把不同的網絡變成同一個網絡一樣。 然而這樣做的主要目的是﹝提高網絡的可靠度﹞、﹝增加網絡的效率及安全性﹞。 如圖所示,﹝Bridge﹞在這邊的運作流程是: 接收到發送請求→判斷請求是否放行→傳送到目的位址。 範例:
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News