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