常見Web系統的網絡架構:
這個架構涉及幾個問題:
1. 如何將面向公眾的負載均衡器連接到具有私有 IP 地址的 EC2 實例
2.在私有實例中如何訪問互聯網的服務(比如第三方的接口)等
重要的兩個概念:
公有子網
如果子網的默認流量路由到互聯網網關,則該子網稱為公有子網。例如,如果在此子網中啟動的實例具有彈性 IP 地址或與之關聯的公有 IP 地址,則該實例可以公開訪問。
私有子網
如果子網的默認流量路由到 NAT 實例/網關或完全沒有默認路由,則該子網稱為私有子網。例如,即使具有彈性 IP 地址或與之關聯的公有 IP 地址,在此子網中啟動的實例也不可公開訪問。
重要的約束:
1.ALB如果要互聯網訪問,必須關聯共有子網。
2.私有子網的實例如果想訪問互聯網,必須經過NAT服務(非互聯網網關)。
VPC的配置流程:
1.創建VPC,創建2個私有子網,分布在兩個不同的可用區。將實例放入這兩個私有子網。
2.創建兩個公有子網B,C,分布在兩個不同的可用區。
3.創建一個公有子網A,隨意選擇一個可用區。
4.創建NAT,綁定公有子網A
5.將私有子網的路由表增加路由到NAT的路由。
6.創建ELB,綁定VPC,及公有子網B,C
最后的結果如下:
兩個場景:
1.用戶從internet訪問web,走右邊的虛線。從internet gateway到ELB,到Public subnet,最后到private subnet
2.private subnet中的后端服務需要訪問互聯網上的第三方服務,走左邊的虛線。從EC2服務器,到private subnet,然后NAT gateway,然后直接到internet。
參考:
1. https://amazonaws-china.com/cn/premiumsupport/knowledge-center/public-load-balancer-private-ec2/
2.https://stackoverflow.com/questions/9257514/amazon-elb-in-vpc
3.http://thebluenode.com/exposing-private-ec2-instances-behind-public-elastic-load-balancer-elb-aws