美文网首页
实验2:构建高可用架构

实验2:构建高可用架构

作者: K1024 | 来源:发表于2018-05-14 12:41 被阅读48次

Making Your Environment Highly Avaiable

实验目标

目标分解说明

  1. 创建一个EC2镜像,并通过这个镜像创建一个新的实例
  2. 将VPC在同一个Region的多个AZ扩展使用
  3. 创建VPC子网和路由表
  4. 创建AWS的NAT Gateway
  5. 创建一个Load Banlance(负载均衡器)
  6. 创建一个扩展组

目标架构图如下

高可用目标架构图.png

操作步骤

识别初始化环境

  1. AWS的实验环境是通过CloudFormation自动构建的,这里假定按照实验1的操作内容,已经在单个AZ下构建了VPC,Subnet,IGW网关、路由表,安全组(出入站规则的配置),整个部署架构处于单点状态;
  • 一个VPC
  • 一个Public Subnet和Private Subnet在同一个AZ中
  • 一个Internet Gateway与Public Subnet关联
  • 一个 Nat Gateway在Public Subnet中
  • 一个EC2实例在Public Subnet中
  1. 相关初始化的架构图如下


    image.png

登录EC2实例

  1. 基于不同的操作系统远程登录EC2实例,EC2默认是不提供root账号远程SSH登录的,只提供一个ec2-user账号基于秘钥访问。
  2. 我的环境:mac
  • 登录准备:下载KEYPAIR.pem,同时在EC2控制台查看公网IP吗,替换下边代码中的 KEYPAIR.pem和EC2PublicIP的值;
  • 登录方式:打开MAC的终端控制台,找到KEYPAIR.pem的目录,执行如下命令
chmod 400 KEYPAIR.pem
ssh -i KEYPAIR.pem ec2-user@EC2PublicIP
  1. 如果是windows环境登录方式
  • 登录准备:下载KEYPAIR.pem或者KEYPAIR.ppk文件
  • 登录方式:基于我们使用的SSH工具来设置登录,如使用putty或者SCRT,将秘钥设置到Session的对应位置

安装Web applicaiton

  1. 操作步骤
#更新AMI系统
sudo yum -y update
#安装httpd服务器
sudo yum -y install httpd php
#设置开机启动httpd服务
sudo chkconfig httpd on
#下载一个包含PHP应用的程序包
wget https://us-west-2-tcprod.s3.amazonaws.com/courses/ILT-TF-100-ARCHIT/v5.4.0/lab-2-ha/scripts/phpapp.zip
#解压PHP程序到默认的apache目录中
sudo unzip phpapp.zip -d /var/www/html/
#启动httpd服务器
sudo service httpd start

基于现有的EC2实例,创建一个AMI镜像

  1. 就是基于现有的已经安装了PHP应用程序的EC2实例创建一个镜像
  2. 操作方式
  • 选择正在运行的EC2实例的操作菜单
  • 选择“映像”目录,选择创建的菜单
  • 设置 AMI镜像的名称,就可以自动完成镜像创建了

配置第二个AZ(可用区)

  1. 目标:创建另一个Public Subnet、另一个Private Subnet、另一个NAT Gateway、一个Private Route Table
  2. 目标示意图


    image.png
  3. 操作方式
  • 选择VPC菜单,查看Public Subnet1的AZ(Availability Zone),后边创建的Public Subnet 2一定不能选择相同的AZ
  • 创建新的Public Subnet 2,参考相关信息如下


    image.png
  • 修改Public Subnet 2的Route Table为Public Route Table,这样Public Subnet 2可以直接访问公网
  • 创建一个Private Subnet 2


    创建AZ的私有子网
  • 创建一个NAT Gateway,设置他的Subnet是Public Subnet 2,同时生成一个EIP。然后这个NAT Gateway就后台创建生成,并返回一个nat-id
  • 创建另外一个私有路由表“Private Route Table 2”,与Private Subnet 2关联。设置他的destination为0.0.0.0/0,target 就是刚才生成的nat-id

创建应用的Application Load Balancer(负载均衡器)

  1. 目标:用来做流量分发的。通过检测不同EC2实例的状态,将流量进行分发
  2. 目标架构如下图


    负载均衡器
  3. 操作步骤
  • 选择EC2菜单,在左侧导航栏选择负载均衡器菜单,点击创建
  • 选择可用区:在负载均衡器中设定AZ,因为我们在两个AZ都有 Public Subnet,这里我们一次指定 Public Subnet 1和Public Subnet 2两个可用区。这样流量就会被转发到这两个AZ中了
  • 设置安全组:就是设置整体的出入站规则
  • 设置路由:就是创建一个Group,供负载均衡器进行流量转入,可以设置健康检查的间隔(如10S),健康阈值(如2)

创建一个AS Group(自动扩展组)

  1. 创建一个自动扩展组
  2. 在自动扩展组下创建启动配置“Create Launch configuration”
  3. 选择我们的镜像、选择实例配置、存储、安全组等信息
  4. 扩展组信息如图所示


    自动扩展组

    设置了最小组为2个EC2实例,在Private Subnet 1和Private Subnet 2中部署,选择了我们的跨AZ的VPC网络

  5. 设置与负载均衡器的关联,在高级设置的详情中进行关联,选择负载均衡器的那个组

测试应用

  1. 检查目标组中的EC2实例状态是否正常,点击图标可以刷新出EC2实例的状态
  2. 在AWS左边的导航栏中查看LB的状态,获取LB提供的域名,类似“LB1-xxxx.elb.amazonaws.com”
  3. 直接通过LB提供的域名访问,应用的最终访问请求路径如下图


    image.png

测试高可用架构

  1. 选择EC2实例,这时候可以看到有两个EC2实例,选择其中一个,进行实例终止操作,从浏览器展示的详情页面,可以看到请求被转发到另外的一个实例上了。
  2. 因为我们配置了最小的实例数是2,那么会自动重新创建一个新的可用实例
  3. 这样我们的高可用架构就完成了。

相关文章

网友评论

      本文标题:实验2:构建高可用架构

      本文链接:https://www.haomeiwen.com/subject/icdddftx.html