在本文中,作者将创建一个具有公共子网和私有子网的自定义VPC。每个子网中都有一个EC2实例(已安装WordPress)。公共子网中的实例可以通过互联网访问,而私有子网中的实例无法访问。以下是作者将要构建的体系结构。
登录到你的AWS控制台,选择你要在其中创建VPC的区域(在这种情况下,作者使用的是北弗吉尼亚),然后选择VPC。 现在,单击左侧栏中的“你的VPC”,然后单击“创建VPC”。 为你的VPC和IPv4 CIDR块命名。如果需要,还可以提供一个IPv6 CIDR块,但是对于本示例,作者将采用默认选择。你可以强制在此VPC中启动的EC2实例的租赁。如果选择专用的,则将在专用租用实例上启动所有实例(成本更高)。如果选择“默认”选项,则实例将在启动实例时使用选定的租赁选项。创建新的VPC时,默认情况下会创建网络访问控制列表(NACL)和主路由表。现在,我们已经创建了自定义VPC,让我们通过选择左侧边栏中的“子网”标签并单击“创建子网”按钮来创建公共子网和私有子网。 首先创建公共子网。你可以给它起一个友好的名称来轻松地识别它,然后为该子网选择自定义VPC和IPv4 CIDR块。在这里,作者选择10.0.1.0/24作为CIDR块。你也可以选择要在其中创建此子网的AZ,因为一个子网始终映射到一个AZ。默认情况下,子网的“自动分配公用IP”设置被禁用。让我们为公共子网启用此功能,方法是选择它,然后单击顶部的“操作”下拉菜单,然后选择“修改自动分配IP设置。
如果没有连接互联网网关,则无法通过互联网访问在该VPC内创建的任何实例。创建互联网网关,请转到左侧栏中的互联网网关选项卡,然后单击顶部的创建互联网网关。为你的互联网网关命名,然后单击“保存”按钮。 你可以看到网关已分离。你需要将互联网网关与你的自定义VPC相连。你可以通过选择它,单击顶部的“操作”下拉列表,然后选择“附加到VPC”来执行此操作。出于安全原因,建议保留主路由表不变。因此,我们将为自定义VPC创建一个新的路由表,并允许通过它访问我们的公共子网。让我们从左侧边栏中转到“路由表”标签,然后点击顶部的“创建路由表”按钮。为路由表命名,选择自定义VPC,然后单击“保存”按钮。
默认情况下,所有子网都与主路由表关联。通过选择公用子网并将其导航到底部的“子网关联”选项卡,将其与定制路由表相关联。单击编辑子网关联,然后选择公共子网,然后单击保存按钮。
现在,要允许互联网访问我们的公共子网,我们需要为自定义路由表创建一个新的路由。 选择自定义路线表,然后导航至底部的“路线”标签。单击“编辑路由”按钮,然后添加目标为0.0.0.0/0的新路由,即互联网和Target作为连接的互联网网关。
现在该启动我们的实例了。转到EC2窗口,然后单击启动实例。 从AWS Marketplace中选择由Bitnami和Automattic认证的WordPress,然后选择一个实例类型。作者在这里选择t2.micro,因为它是可用的免费套餐。 在下一步中,选择自定义VPC作为网络,选择公共子网作为子网。现在,在子网下方的字段中,你可以看到字段自动分配公共IP,其值已设置为子网设置。由于在子网中,我们启用了此选项,因此此处的默认选项是“启用”。现在,添加一些存储并为你的实例命名(作者给出的是公共实例)。
现在,创建一个安全组,其中端口22、80和443可以访问互联网。我们来打开端口22,因为我们要将SSH从公共实例转换为私有实例,但是为了提高安全性,SSH应该仅针对你的特定IP开放。 单击Review and Launch,然后通过创建密钥对启动实例。现在,要创建私有实例,请选择相同的AMI和实例类型。只是这一次选择专用子网来启动实例。 你可以看到,对于专用子网,默认情况下禁用自动分配公用IP。 现在,添加一些存储,为你的实例命名,选择与公共实例相同的安全组,并使用相同的密钥启动该实例。两个实例都运行之后,你可以看到只有公共实例具有IPv4公用IP。 如果你在浏览器中打开此IP,你将看到新的WordPress博客! 由于你的私有实例没有公共IP地址,因此你将无法从浏览器中看到其WordPress博客。
现在该通过SSH进入你的实例了,但是由于你的私有实例没有公共IP地址,因此你将无法直接从系统中对其进行SSH。要确认你的实例可以访问互联网,你可以运行sudo apt-get update并查看其是否正常运行。 现在,我们位于公共子网内,我们应该能够通过SSH进入我们的私有子网,因为默认情况下,VPC中的实例可以相互通信。要使用SSH,我们需要私钥,因此请创建一个.pem文件并在其中复制下载的PEM文件的内容。你可以通过键入以下命令来创建新文件:- 复制下载的PEM文件的内容,然后在Mac上使用Command + V,在Linux上使用Ctrl + Shift + V粘贴到终端中;
- 按Escape键退出插入模式,然后键入:wq保存文件并退出;
- 现在,键入chmod 600 private.pem以限制文件的权限。
ssh ubuntu@<private-IP-of-private-instance> -i private.pem
选择实例后,可以从“描述”选项卡中找到实例的私有IP。在作者的情况下,私有实例的私有IP为10.0.3.171。 现在我们处于私有实例的终端。要确认我们的私有实例无权访问互联网,请运行相同的命令:
现在,你已经看到一个专用子网,让我们看看为什么要使用一个专用子网:- 数据库——最常见的用例之一是将数据库托管在私有子网中,而将Web服务器托管在公共子网中。这样,你就可以限制对数据库的互联网访问,从而提供了额外的安全性。
- 应用服务器——假设你有处理逻辑并与数据库交互的应用服务器。现在,你的Web服务器可以将作业传递到专用子网中存在的应用程序服务器。
你的私有实例可能需要出站互联网访问才能使系统保持最新状态。你可以通过创建NAT网关来实现。它们仅允许对你的私有实例的出站互联网访问,同时阻止对它们的所有入站互联网访问。
现在,你已经了解了如何使用公用子网和专用子网创建自定义VPC,并有时间终止整个设置。终止你的EC2实例
实例终止后,转到VPC窗口,选择自定义VPC,单击顶部的“操作”按钮,然后选择“删除VPC”选项。
再次单击“删除VPC”,它将删除你的VPC及其所有资源。 希望这篇文章对你有用,如果你有任何疑问或反其他意见,请在评论区和我们讨论。原文:https://levelup.gitconnected.com/creating-a-custom-vpc-in-aws-b4ea7bf4a71
同时,欢迎所有开发者扫描下方二维码填写《开发者与AI大调研》,只需2分钟,便可收获价值299元的「AI开发者万人大会」在线直播门票!