一、要求
- 创建一个三层网络架构,服务器只能通过跳板机连接;
- web 服务器只能由跳板机连接,80 端口只能由 ELB 访问,服务器不分配公网IP,外网连接通过 NAT;
- 数据库服务器只能由 web 服务器连接 3306 端口;
- 服务器分布在多 AZ。
网络架构图
网络各组件关系
组件包括 NACL,Route,Security Group,Internet Gateway,NAT Gateway,Elastic IP等。
画图工具:https://www.processon.com/i/5a24e7d6e4b0f3a798660105
二、操作步骤
2.1、网络设置
- 创建 VPC,如果希望创建的 EC2 实例带有公网 DNS,请打开 VPC 的
DNS hostnames enable
的设置;
- 创建 IGW,附加到 VPC 上面;
- 创建需要的六个子网,放在创建的 VPC 下面;
- 创建三个路由,分别为私网,NAT,公网;
- 公网路由添加条目
0.0.0.0/0
路由到 IGW,然后关联两个公有子网,两个公有子网开启自动分配公网IP;
- 私网路由不需要添加路由条目,默认即可,关联到两个私有子网;
- 创建 NAT 网关,选择放置公有子网;
- NAT 路由添加路由条目
0.0.0.0/0
路由到刚刚创建的 NAT 设备,然后关联两个私有子网;
2.2、安全设置
可以设置 NACL,为每个子网设置防火墙,我们这里为了简便,不再进行设置,只设置实例的安全组完成。
- 为跳板机实例创建安全组 bastion-sg,只允许特定的 IP 访问 22 号端口;
- 为 ELB 实例创建安全组 elb-sg,只允许访问 80 端口;
- 为 Web 实例创建安全组 web-sg,所有流量只允许 bastion-sg,elb-sg 组内的实例访问;
- 为数据库实例创建安全组 db-sg,只允许 web-sg 组内的实例访问 3306 端口。
2.3、创建实例
- 创建跳板机实例,选择第一个公有子网,配置好设定的安全组;
- 分别创建 Web 实例,选择三,四两个私有子网,配置好设定的安全组;
- 创建 RDS 子网租,选择五,六两个私有子网,创建实例,选择刚创建的子网组。
视频教程:https://edu.51cto.com/course/18611.html
三、费用
3.1、NAT 网关费用
如果选择在 VPC 中创建 NAT 网关,您需要为 NAT 网关预置和可用的每个“NAT 网关小时”付费。通过 NAT 网关处理的每个 GB 都要收取数据处理费,与流量源或目的地无关。运行未满一小时的 NAT 网关小时将按一小时计费。通过 NAT 网关传输的所有数据也会产生标准的 AWS 数据传输费用。如果您不希望再支付 NAT 网关费用,只需使用 AWS 管理控制台、命令行界面或 API 删除 NAT 网关即可。
例如弗吉尼亚北部价格:
每 NAT 网关的价格(USD/小时) |
处理每 GB 数据的价格 (USD) |
0.045 USD |
0.045 USD |
欢迎大家扫码关注,获取更多信息