[架构图](https://res.cloudinary.com/practicaldev/image/fetch/s--N5dP7pPD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/nti327hmr7a642l03njz.png)

首先,通过架构图。 AWS 为管理虚拟网络提供了许多服务。在本指南中,您可以逐步创建 AWS VPC。

在 AWS 管理控制台中搜索并转到 VPC 服务,然后单击创建 vpc 按钮。

[创建Vpc](https://res.cloudinary.com/practicaldev/image/fetch/s--lCEln8Cw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/hhqpum5za28ss9pyve2x.jpg)

为 VPC 命名并添加 IPv4 CIDR。您可以使用 10.0.0.0/16 CIDR 范围。

[CIDR 添加 VPC](https://res.cloudinary.com/practicaldev/image/fetch/s--BUnpjZ3u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to -uploads.s3.amazonaws.com/uploads/articles/fc6iypvs89705iuov6gu.jpg)

创建两个子网。首先创建一个公共子网。您可以将 10.0.1.0/24 CIDR 范围用于公共子网。选择可用区并给出子网的名称。

[创建公共子网](https://res.cloudinary.com/practicaldev/image/fetch/s--FJEmF-s4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev -to-uploads.s3.amazonaws.com/uploads/articles/isa5gsphnpfq8sgq1fzs.jpg)

现在相同的界面,单击添加新子网按钮以创建私有子网。

[点击添加新子网按钮](https://res.cloudinary.com/practicaldev/image/fetch/s--IL_Xxuml--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev -to-uploads.s3.amazonaws.com/uploads/articles/a8gu6lbf5gz1ir9kg07h.jpg)

将 IPv4 CIDR 添加为 10.0.2.0/24。之后给出子网名称并选择可用区。最后,点击创建子网按钮。

[子网创建](https://res.cloudinary.com/practicaldev/image/fetch/s--tDhZMETH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/9d0f7b4vfpsztqf7mqv3.jpg)

现在为公共子网 Internet 访问创建一个 Internet 网关。在 VPC 控制台中选择 Internet 网关并创建 Internet 网关。给出 Internet 网关的名称并点击创建按钮。

[创建IGW](https://res.cloudinary.com/practicaldev/image/fetch/s--7rjNb2zM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/01ivd969kl96gdsqyrks.jpg)

接下来,我们要为 VPC 附加此 Internet 网关。您可以选择互联网网关并单击附加到 VPC。

[IGW 附加 VPC](https://res.cloudinary.com/practicaldev/image/fetch/s--IaeCoZ_f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to -uploads.s3.amazonaws.com/uploads/articles/x0e0fhhn91rawgmf68oj.jpg)

接下来,选择之前创建的 VPC,然后单击附加互联网网关按钮。

[IGW 附加 VPC](https://res.cloudinary.com/practicaldev/image/fetch/s--JT7BmyTx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to -uploads.s3.amazonaws.com/uploads/articles/nkq87foky5lrtlvriust.jpg)

接下来,转到路由表并为公共子网创建一个路由表。为路由表命名并选择之前创建的 VPC。下一次单击创建路由表按钮。

[创建公共路由表](https://res.cloudinary.com/practicaldev/image/fetch/s--HV_XwtZA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/uploads/articles/l89o80ovlu3n4imnls66.jpg)

单击公有子网路由表单击路由选项卡并添加路由 0.0.0.0/0 并选择先前创建的 Internet 网关。接下来点击保存更改按钮。

[为公共路由表添加路由](https://res.cloudinary.com/practicaldev/image/fetch/s--zRMCywhr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:// dev-to-uploads.s3.amazonaws.com/uploads/articles/7v8dmdl589iyhjt9kuv3.jpg)

在公共子网路由表中,单击子网关联部分,然后单击编辑“显式子网关联”部分。

[公共路由表的子网关联](https://res.cloudinary.com/practicaldev/image/fetch/s--tUyAjW_t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:// dev-to-uploads.s3.amazonaws.com/uploads/articles/ks94pqdvqwod88k4jow8.jpg)

接下来,选择公有子网并单击保存关联按钮。

[子网关联](https://res.cloudinary.com/practicaldev/image/fetch/s--kMIH09Cx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/8rb1ae9fbu2idou68ard.jpg)

现在我们转到公共子网并单击子网设置并启用“启用自动分配公共 IPv4 地址”并单击保存。

[启用自动分配公共 IPv4 地址](https://res.cloudinary.com/practicaldev/image/fetch/s--7mKQERr7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:// /dev-to-uploads.s3.amazonaws.com/uploads/articles/eykj88r7cftvjt1fm1ml.jpg)

接下来,我们要在公共子网和私有子网中创建 2 个 ec2 实例。使用 ubuntu 服务器 20.04 LTS AMI。

[EC2 创建](https://res.cloudinary.com/practicaldev/image/fetch/s--byQr5F-D--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/uploads/articles/yun31u4oqa0ondar6tew.jpg)

您可以看到 ec2 实例已启动并正在运行。

[EC2 启动并运行](https://res.cloudinary.com/practicaldev/image/fetch/s--c5pOxOVq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/uploads/articles/9514kt4vsoa3p5s2fcxw.jpg)

在 EC2 控制台中单击 Elastic ip 并创建 Elastic ip,如下所示。

[Eip 创建](https://res.cloudinary.com/practicaldev/image/fetch/s--n6jrRTpP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/dan6fd3zt9q14vmknlbh.jpg)

接下来,选择新创建的 Elastic ip 并单击 allocate elastic ip 按钮。

[分配Eip](https://res.cloudinary.com/practicaldev/image/fetch/s--2jQbwuRO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/kkhytg1f32r0rnf8dj9c.jpg)

选择先前创建的公共 ec2 并单击关联按钮。

[在Eip中选择EC2](https://res.cloudinary.com/practicaldev/image/fetch/s--fB-YWYyD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:// dev-to-uploads.s3.amazonaws.com/uploads/articles/kxwdlq3fkh51hws68f1n.jpg)

接下来,通过 SSH 客户端或 EC2 Instance Connect 连接公共 EC2。尝试更新ubuntu。工作意味着公共 ec2 可以连接互联网。

[公共 EC2 安装更新](https://res.cloudinary.com/practicaldev/image/fetch/s--IhFrMlAZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/uploads/articles/b8j16g7xx7nvl2mcg45l.jpg)

现在,我们尝试通过 SSH 连接到私有子网中的 EC2。 (这意味着堡垒主机)。在 Linux 终端中,您可以使用以下步骤。

  • 使用以下命令配置 SSH 代理。

ssh-add -L {{ssh-keyfile-name.pem}}

  • 接下来,使用此命令连接堡垒主机(公共 EC2)。

ssh –A ubuntu@{{Bastion-IP-address or DNS}}

  • 从堡垒主机连接到私有实例(代理转发)。

ssh ec2-user@{{InstanceIP or DNS}}

在私有 ec2 终端“ping google.com”内,它没有得到任何响应,因为它没有连接互联网。

[私有 EC2 ping 响应](https://res.cloudinary.com/practicaldev/image/fetch/s--pbWZTAKn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/uploads/articles/807xj1y4f6ju1t8oq7lp.jpg)

接下来,转到 VPC 控制台并创建 NAT 网关。在 NAT 网关创建中,选择子网作为公共子网并为 NAT 网关命名。之后单击分配弹性 IP 按钮,最后单击创建 nat 网关按钮。

[创建NAT网关](https://res.cloudinary.com/practicaldev/image/fetch/s--aMUy-SH3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev -to-uploads.s3.amazonaws.com/uploads/articles/4kl7e6z6dx1g9fmzoao7.jpg)

等待几分钟,让 Nat Gateway 启动并运行。

[NAT 启动并运行](https://res.cloudinary.com/practicaldev/image/fetch/s--C-iSc1Zs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:// dev-to-uploads.s3.amazonaws.com/uploads/articles/tlt6jtwzhvtg3un9wmpk.jpg)

接下来,为私有子网创建一个私有路由表。使用以前的公共路由表创建相同的场景。在创建私有路由表并添加以下路由以访问私有 EC2 互联网之后。 (选择之前创建的 nat 网关)

[创建私有路由表](https://res.cloudinary.com/practicaldev/image/fetch/s--tkgeZDds--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/uploads/articles/dav2vx4tz50z11xta1s8.jpg)

接下来,添加子网关联。选择私有子网并单击保存关联按钮。

[私有路由表的子网关联](https://res.cloudinary.com/practicaldev/image/fetch/s--uXJ7-zH_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https: //dev-to-uploads.s3.amazonaws.com/uploads/articles/tyvqxzi3wkmdo4zywz1d.jpg)

最后,尝试在私有子网终端内“ping google.com”。您可以看到以下输出。

[在私有 EC2 中 ping google.com](https://res.cloudinary.com/practicaldev/image/fetch/s--hAMXUSk3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https:// /dev-to-uploads.s3.amazonaws.com/uploads/articles/h4sbxjtc1zct11r990fg.jpg)

恭喜,现在您可以创建 AWS VPC。

为了清理

  • 终止实例

  • 发布弹性IP

  • 删除NAT网关

  • 删除互联网网关

  • 删除VPC

感谢您阅读文章。

资源

https://gist.github.com/sanju2/5273a22f68342080ced33b7b12fef14b

Logo

更多推荐