2015-01-07 122 views
1

有一個快速的問題,可能是完全愚蠢的,但它是在清晨。所以我有一個標準的AWS VPC,ELB,NAT實例和2個EC2實例作爲應用程序代碼。通過網絡圖像的外觀,互聯網網關將流量傳遞給ELB和NAT實例。我的問題是爲什麼前面或後面的ELB不是NAT實例?看起來,如果所有流量都在那裏通過,此VPC中的單個瓶頸可能就是NAT實例。AWS NAT實例和ELB瓶頸

vpc, elb, nat, aws

+1

NAT只用於出站訪問。如果您的應用程序需要經常通過NAT訪問互聯網,那麼也許它是完美的瓶頸 – BMW

+0

,謝謝。 –

回答

16

的NAT(網絡地址轉換)服務器用於提供一個專用子網出境 Internet連接的Amazon EC2實例。

傳入流量將通過負載均衡器進入,任何對此流量的響應也將通過負載均衡器退出。 Elastic Load Balancing服務會根據流量自動調整(對流量轉移也有收費)。

如果私有子網中的EC2實例希望啓動與Internet的連接(例如,下載更新或與Amazon S3進行通信),它將無法將負載均衡器的流量「發送出去」。相反,該子網將配置爲路由流量到NAT服務器,該服務器充當從因特網請求數據的代理。

NAT服務器可能會變成瓶頸。如果是這樣,請修改實例以使用更大的實例類型 - 這不僅增加了CPU和RAM,還增加了網絡帶寬。

在某些情況下,人們也可以使用NAT服務器傳入流量 - 無論是作爲一個跳箱子爲管理目的(登錄到一個實例中的私人子網),或者轉發至特定端口一個私人服務器(通過端口轉發)。但是,最好的做法是將這些功能分爲不同的實例以實現安全性和管理目的。

附加信息:自從寫了這個答案後,AWS推出了一個可以自動縮放的Managed NAT Gateway。它在單個AZ中創建,因此您可能希望在兩個AZ中運行它以實現高可用性。

+0

太好了,回答謝謝。 –

+0

好的和詳細的答案,但使用更大的NAT服務器實例不能很好地擴展。 – Vame

0

我不知道如何它的工作,如果loadbalacer被終止在APP層,那麼在這些子網中推出的情況下將與IGW不是NAT實例配置的路由表,which raises a question how to make outbound traffic on the public network which is configured over a loadbalalncer