在上一篇文章中,我介绍了如何通过AWS设置具有私有和公共子网的VPC 。 在帖子中,我展示了一个基本配置,在该配置中,我们看到专用子网中的实例无法访问Internet,例如,这对于运行“ yum update”是必需的。 在本文中,我将向您展示一种解决方法,方法是在VPC中添加一个NAT实例,并使私有子网中的EC2实例使用该实例访问Internet资源。 这是我在上一篇文章中使用的图表:
创建NAT的步骤是:
- 创建一个新的NAT安全组
- 创建NAT实例
- 分配弹性IP地址
- 禁用“源/目的地检查”
- 建立新路线
创建一个新的NAT安全组
在EC2服务概述中创建一个新的安全组。 在此安全组中,我们将创建我们的NAT实例。 它将接收来自我们专用子网的流量并发送到Internet。 首先像这样创建组:
现在,为我们的出站流量和入站流量设置规则。 这些规则应反映出一个事实,即我们要使用HTTP和HTTPS流量从私有子网流到公共子网。 因此入站规则如下所示:
对于出站,我只允许HTTP和HTTPS来压缩选项:
因此,此安全组允许我们专用子网中的实例与我们接下来创建的NAT实例进行通信。
创建NAT实例
转到EC2服务,然后选择一个AMI作为我们的NAT实例映像。 最简单的“启动新实例”,选择“社区AMI”并在“ NAT”上进行过滤。 现在选择可用的选项之一:
在步骤2中,只需选择您认为需要的实例类型即可。 对于此演示,我使用micro.t2,但是如果您希望通过NAT实例的流量很大,则可以选择较重的类型。
在第3步中,确保选择正确的VPC和子网(公共子网)。 我还将在此处禁用自动分配步骤,因为稍后我将手动分配IP:
在步骤4中接受默认值,在步骤5中为实例命名,例如“ MyNATInstance”,然后在步骤6中将其分配给我们在上一步中创建的安全组:
完成此步骤后,您将收到一条警告,指出将无法通过SSH访问该实例,在这种情况下,这很好,因为我们的实例只能像路由器一样工作,因此只需单击“继续”:
查看设置后,单击“启动”,然后选择在较早阶段也创建的现有**对“ MyNewKeyPair”:
现在我们启动并运行了新实例,并为其分配IP地址。
分配弹性IP地址
转到左侧菜单中的“弹性IP”,单击“分配新地址”,然后设置“ VPC”中使用的EIP:
分配后,我们可以通过单击“关联地址”将其分配给NAT实例:
禁用“源/目的地检查”
下一步是回到EC2概述屏幕并选择NAT实例,打开“操作”菜单,然后找到“更改源/目标”项。 校验':
建立新路线
最后一步是向我们的私有子网添加一条规则,以便它能够与我们的NAT实例进行对话并以这种方式访问Internet。 因此,我打开了VPC概述,然后转到“路由表”,然后为“默认”路由表编辑路由:
作为目标,我们填写0.0.0.0/0以允许来自任何源的流量;作为目标,我们选择NAT实例。 就是这样,所以让我们测试一下。 我登录到位于DMZ中的“ WebServer”实例。 从那里,我打开一个到我们的“ ApplicationServer”的SSH终端。 如果现在执行“ sudo yum更新”,我们会看到此实例已连接到互联网以下载必要的软件包(由于我没有NAT,否则无法访问互联网,因此在上一篇文章的末尾失败了):
翻译自: https://www.javacodegeeks.com/2015/07/adding-a-nat-to-your-aws-vpc.html