0
点赞
收藏
分享

微信扫一扫

在aws上搭建经典3层架构

作为VPC网络篇的补充,本文通过动手搭建经典WEB三层架构来帮助大家强化VPC、公有子网和私有子网、路由表、安全组、NAT网关和互联网网关等概念和操作。

说明

  • 通过ELB(负载均衡器)对外提供网络服务。
  • 该VPC有六个子网,两个可用区HA。
  • 通过ELB(负载均衡器)对外提供网络服务。
  • 有四台EC2服务器: 堡垒机1台, web服务2台, 数据库服务器1台。
  • 通过堡垒机可以远程web服务器和数据库服务器。
  • 数据库服务器仅web服务器才能访问。

1、创建VPC

1、进入vpc控制台(通过搜索可快速进入)
2、点击右上角的创建vpc即可进入创建页面
4、填写名称标签:ipv4 添加192.168.0.0/16,其他的默认
5、点击创建vpc即可完成创建

2、创建子网

标题  名称  网段  区域
public_subnet_1 公有子网1 192.168.0.0/24 az-1
public_subnet_2 公有子网2 192.168.1.0/24 az-2
private_subnet_1 私有子网1 192.168.2.0/24 az-1
public_subnet_2 私有子网2 192.168.3.0/24 az-2
db_subnet_1 数据子网1 192.168.4.0/24 az-1
db_subnet_2 数据子网2 192.168.5.0/24 az-2

3、创建互联网网关(igw)和NAT网关

互联网能访问这个vpc里的设备,就需要互联网网关(igw), 同样vpc里的设备页面访问互联网,就需要到NAT网关。

创建互联网网关

1、在vpc控制台,点击左边的互联网网关->创建互联网网关
2、在新的页面中,填写标签名称, 然后点创建互联网网关
3、回到互联网网关页面后,点击右上角的操作->附加到vpc, vpc选自己创建的

创建NAT网关(一定要放到公有子网)

操作
1、在vpc控制台,点击左边的NAT网关->创建NAT网关
2、在创建页面中,填写名称,子网选public_subnet_2(每个公有子网都ok)
3、点击分配弹性IP, 最后点击创建NAT网关,完成创建

4、创建路由表

  • 需要创建两个路由表,公网路由表和私网路由表
  • 公网路由指向互联网网关(igw), 关联两个公有子网(public_subnet)
  • 私网路由指向NAT网关, 关联两个私有子网(private_subnet)

操作
1、在vpc控制台,点击路由表->创建路由表创建路由
2、填写标签,vpc选自己创建的,完成创建
3、回到路由表页面,勾中一个路由,下面就会出现详情
4、在详情的路由中, 点击编辑路由
5、在编辑页面添加一条0.0.0.0/0到互联网网关的路由(私网路由则是添加0.0.0.0/0到nat网关)
6、保存路由后,回到路由页面,在详情中,点击子网关联->编辑子网关联
7、在编辑子网关联页面中,勾选中两个公有子网(私网路由则是勾选两个私有子网)
8、保存,完成路由创建

5、创建安全组

  • 需要创建三个安全组,公网安全组, 私网完全组, 负载均衡安全组
  • 公网安全组允许互联网SSH,ICMP访问
  • 负载均衡组允许互联网的HTTP访问
  • 私网安全组允许来自公网安全组的SSH,ICMP来访问,也允许负载安全组的HTTP来访问

操作
1、在VPC控制台,点击安全组->创建安全组来创建
2、填写安全组名称, 描述, vpc勾选自己创建的
3、在入站规则中添加规则,根据上面的说明添加,
4、源的话, 公网安全组和负载均衡勾选任意位置, 而私网安全组勾选自定义,在后面的搜索中勾选来自安全组的对应选项
5、完成创建

6、创建服务器(EC2)

  • 需要创建三台服务器, 堡垒机(bastion),web服务器1,web服务器2
  • 堡垒机部署在公有子网1上,使用公网安全组,分配公网IP
  • web1,web2分别部署在私有子网1和私有子网2上,使用私网安全组,禁用公网IP
  • 上传web1和web2的秘钥到堡垒机上,用于利用堡垒机访问web1和web2

7、登录堡垒机和web服务器

ssh到堡垒机

ssh -i test.pem ec2-user@堡垒机IP

将两个web服务器的秘钥上传到堡垒机(可以使用相同的密钥)

scp -i ~/test.pem ~/test.pem ec2-user@堡垒机IP:~/tmp
scp -i 《密钥文件路径》空格 《本地文件路径》空格 用户名@服务器网址:/《临时文件夹》

利用堡垒机ssh到web服务器

ssh -i test.pem ec2-user@web服务器

在两台web服务上安装LAMP服务

对实例执行快速软件更新
sudo yum update -y

安装 lamp-mariadb10.2-php7.2 和 php7.2 Amazon LinuxExtras 存储库,以获取适用于 Amazon Linux 2 的 LAMP MariaDB 和 PHP 程序包的最新版本。

sudo amazon-linux-extras install -y lamp-mariadb10.2-php7.2 php7.2

安装 Apache Web 服务器、MariaDB 和 PHP 软件包
sudo yum install -y httpd mariadb-server

启动 Apache Web 服务器
sudo systemctl start httpd

使用 systemctl 命令配置 Apache Web 服务器,使其在每次系统启动时启动
sudo systemctl enable httpd

通过运行以下命令验证 httpd 是否已启用
sudo systemctl is-enabled httpd

查看web服务器上的nginx是否有在运行(判断是都有监听80端口)
netstat -napt | grep ::80

8、利用负载均衡器(ELB)访问web

实现原理 前面设置了负载均衡安全组和私网安全组,负载均衡安全组设置了可以接收来自互联网的http协议(80端口)的访问,私网安全组设置了可以接收来自负载均衡安全组的http协议(80端口)。这样,ELB会接收来自互联的http访问,然后分配转发给web服务器。

  • 负载均衡的类型为http/https, 模式为面向internet
  • 可用区选两个公有子网
  • 配置负载均衡安全组
  • 注册目标勾选那两台web服务器

9、访问负载均衡器进行测试

负载均衡器中的DNS名称就是网址,黏贴到浏览器,就可以访问web网页。

10、创建DB服务器

web服务器创建完后,需要数据库服务器,给web提供数据支持。根据上面的步骤,可以创建在数据子网(db_subnet)内创建db服务器,允许私网安全组的3306端口(mysql的端口)访问。

  • 创建数据库安全组,允许私网安全组的3306端口, 允许公网安全组的SSH, ICMP访问
  • 数据子网既不能被互联网访问,也不能访问互联网
  • 创建一台EC2服务器,安装mysql(需要临时配置NAT网关)
  • 在web服务器中,访问DB服务器,可以利用Mycli客户端访问

TODO

1.补充DB服务器的配置,以及测试命令。

2.补充数据库RDS/Aurora相关的配置和说明,以及备份策略等等。

3.有时间补充配置好的截图,方便大家理解。

举报

相关推荐

0 条评论