設計網路架構,多組Public IP Address替換成一個

0

Hi there,

目前我們在EC2上大約有40個instance正在執行,而每個instance會對應一個Public IP address,所以目前總共會使用40個Publci IP address。

  1. 我該如何重新設計我的網路架構?可以讓這40個instance在同一個LAN下,且只綁定外部一個Public IP address
  2. 在這個網路架構下,如何設定NAT讓外部存取該Public IP時,可以找到相對應的服務(instance)?
  3. 在這個網路架構下,每個月的cost約為多少?
1 個回答
1
已接受的答案

首先您要先了解 NAT Gateway 可以做到什麼,再來考慮 NAT 是否適合您的架構。

簡單來說 NAT Gateway 是讓內網(Private subnet)裡面的服務,透過 NAT Gateway 來存取外部網路,這是 單向的,外部機器是 無法 反向去存取內部的 EC2 實例。

Private subnet (內網) --> NAT Gateway ---> Internal (外網)

[+] API 閘道使用案例 - 從私有子網存取網際網路: https://docs.aws.amazon.com/zh_tw/vpc/latest/userguide/nat-gateway-scenarios.html#public-nat-internet-access 您可以使用公有 NAT 閘道讓私有子網中的執行個體能將傳出流量傳送到網際網路,同時阻止網際網路建立與執行個體的連線。

Q: 我該如何重新設計我的網路架構?可以讓這40個instance在同一個LAN下,且只綁定外部一個Public IP address

把這 40 實例重建在 內網(Private subnet),然後在這個網段去添加一個 NAT Gateway,並指定一個 EIP (Public IP address) 在上面。 但這只能做到這 40 EC2 實例,可以使用 同一個 EIP (Public IP address) 去對外連接,但仍然無法被外部客戶端來連接。

Q: 在這個網路架構下,如何設定NAT讓外部存取該Public IP時,可以找到相對應的服務(instance)? Q: 在這個網路架構下,每個月的cost約為多少?

NAT Gateway 本身是做不到的,自然說不上費用的問題,請參考上述說明。

最後回到您的目標 40個Publci IP address 變成 1個 Publci IP address,還要能自動轉導到後端40台實例上,不同服務、並且可能使用相同的Port

目前 AWS 應該沒有相對服務可以直接來使用,您可能要 自建一台 EC2 實例 + Port forward 的方式,來達到這個目的,但又有單點故障及管理上的成本,最終應該也省不了多少費用,以上提供您參考。

profile pictureAWS
Jerry_K
已回答 3 個月前
  • Hi Jerry,

    目前 AWS 應該沒有相對服務可以直接來使用,您可能要 自建一台 EC2 實例 + Port forward 的方式,來達到這個目的,但又有單點故障及管理上的成本,最終應該也省不了多少費用,以上提供您參考。

    我可以用Elastic Load Balancing來取代自建EC2+Port forwarding的方法嗎?

  • 我可以用Elastic Load Balancing來取代自建EC2+Port forwarding的方法嗎? <-- 是的,這是也是一個做法。

    但前端 ELB/ALB 並不是唯一個 public IP 位置,所以也無法完成符合您最初的要求( 40個Public IP address 變成 1個 Publci IP address ),不過在 EC2 前面掛 ELB 是另一個比較建議的架構。。

    • Outside client --> ELB/ALB ---> EC2 (Private subnet)

    [+] 負載平衡器 - Amazon Elastic Load Balancer (ELB) - AWS: https://aws.amazon.com/tw/elasticloadbalancing/

    !!! 不過,您需要考慮這樣的架構,在增加彈性的同時,也增加中間層 ELB 費用及管理上的成本。

    [+] 應用程式和網絡流量分配 – Elastic Load Balancing 定價 – AWS: https://aws.amazon.com/tw/elasticloadbalancing/pricing/

  • Hi Jerry, 了解,非常謝謝您的協助!

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南