NAT Gateway
基礎知識
一、概念
-
基本設置
NAT Gateway設置時,要指定處於哪個 public subnet 中。
只允許內網訪問外網,比如進行升級。
-
什么是 NAT
NAT網關作為一個網關設備,需要綁定公網IP才能正常工作。創建NAT網關后,您可以為NAT網關綁定彈性公網IP(EIP)。
Ref: 【折騰必懂·理論篇】第八期 NAT、內網穿透、SDN
NAT有三種:靜態NAT、動態NAT、PAT/NAPT。其中最后一種又可分為 SNAT 和 DNAT 。
-
- SNAT 可以為VPC內無公網IP的ECS實例提供訪問互聯網的代理服務。
雲服務器看來,所有請求都是從路由器發出來的。
-
- DNAT 可以將NAT網關上的公網IP映射給ECS實例使用,使ECS實例能夠提供互聯網服務。
再通過nginx的80端口,用到端口映射。
-
NAT 的缺陷
下面就是NAT的缺陷。
-
內網穿透技術
STUN, Simple Traversal of UDP through NAT(打洞)
TURN, Traversal Using Relay NAT(轉發),貌似就是這個,通過公網上NAT網關作為了 “媒婆”。
二、創建 NAT網關
小哥講得很真誠 :)
Ref: How to Create a NAT Gateway
1). 創建public子網和private子網,參見:[AWS] 09 - VPC。這里只配置了子網,其實還沒有分配 IP。
2). 首先設置 vpc --> Two Elastic IP Address for 2 NAT Gateway.
彈性 IP 地址 是專為動態雲計算設計的靜態 IPv4 地址。使用彈性 IP 地址,您可以快速將地址重新映射到您的賬戶中的另一個實例,從而屏蔽實例故障。彈性 IP 地址會分配給您的 AWS 賬戶,並且在您釋放它之前一直屬於你。
3). 再開始配置 NAT Gateway,並為 NAT Gateway 指定上述剛設置的一個Elastic IP Address 為 自己的IP地址。
4). 打開 私有子網 的 Route Table,添加一條路由 指向 NAT Gateway。如此,就連通了 public subnet 與 private subnet 了嘛:)
下圖表示:允許來自所有的 流量 指向 該網關的 Elastic IP Address。
三、升級為 Highly Available NAT Gateway
Ref: Let's Create a Highly Available AWS NAT Gateway
如果 Public Subnet 1中的 NAT Gateway掛了,至少希望有另一個還活着的gateway。
其實就是設置了兩個zone。
訪問測試
一、內網 訪問 Internet
Ref: Test Outbound Internet Access Through the NAT Gateways
-
設置role
IAM --> roles
--> create user case: ec2 --> choose policy
--> Role name is "SSMRole"
一個擁有該POLICY的ROLE,就准備好了。
-
創建、配置 instance
Network,選擇 VPC。
Subnet,選擇 private subnet。
IAM role,配置好的role。
-
測試 Outbound Internet Access
AWS Systems Manager --> run command
開機啟動命令設置如下,通過升級指令測試訪問外網效果。
sudo yum update -y
Choose instances manually,選擇剛配置好的ec2 instance。
然后按照同樣的步驟,創建另一個私有子網的另一台ec2。
二、Internet 訪問 內網
-
Lambda function in a VPC
AWS Knowledge Center Videos: How do I give internet access to my Lambda function in a VPC?
個人實踐經驗:
先一同部署了api gateway + lambda function, 然后給lambda function 加上vpc,仍然是可以工作的。
下一步就是如何用該lambda function 去 invoke 屬於同在一個subnet的lambda 即可。
End.