Iptables

如何將 Web 伺服器放置在 AWS 的私有子網中並在埠 80 上向世界開放

  • November 10, 2016

我正在嘗試設置一個高度可用的 AWS Magento 部署。這裡有一個參考部署:http: //docs.aws.amazon.com/quickstart/latest/magento/architecture.html

基於此,我想建構自己的,我喜歡他的想法,即只有 NAT 實例位於公共子網中。

RDS 實例和 Web 伺服器都位於私有子網中的 NAT 後面。我發現這與我目前的大部分理解背道而馳,即網路伺服器必須位於公共子網中才能從 Internet 訪問。

我缺少的是如何將在公共子網中執行的 NAT 實例配置為將埠轉發埠 80/443 到私有子網中 NAT 後面的相應網路伺服器。我不相信這可以僅通過 NAT 實例上的安全組來完成。

為此,您通常不會使用 NAT 實例,它實際上更準確地稱為 PAT(埠地址轉換,NAT 的子集)實例。NAT 實例的存在是為了向私有子網上的實例提供對 Internet 和大多數 AWS 服務(例如,SQS 或 SNS)的出站訪問——由私有子網上的實例發起的出站請求流量(根據定義,只有私有 IP 地址) ) 通過 NAT 實例的公共 IP 地址偽裝。可以通過iptables 或通過在 NAT 實例上執行反向代理來使用靜態埠映射或更複雜的訪問內部服務來配置 NAT 實例,但這不是典型的配置。

連結文件的圖 2 顯示了可通過 Internet 訪問 Web 伺服器。部署在公有子網中的 Elastic Load Balancer 具有公有 IP 地址和私有 IP 地址。它在公共端接受來自 Internet 的流量,並將其轉發到私有端的 Web 伺服器。

ELB 提供從外部對內部所有實例的單一邏輯訪問點,並且不會將流量轉發到它認為不“健康”的實例。

引用自:https://serverfault.com/questions/724149