实验2:构建高可用架构

2018-05-14  本文已影响48人  K1024

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网关、路由表,安全组(出入站规则的配置),整个部署架构处于单点状态;
  1. 相关初始化的架构图如下


    image.png

登录EC2实例

  1. 基于不同的操作系统远程登录EC2实例,EC2默认是不提供root账号远程SSH登录的,只提供一个ec2-user账号基于秘钥访问。
  2. 我的环境:mac
chmod 400 KEYPAIR.pem
ssh -i KEYPAIR.pem ec2-user@EC2PublicIP
  1. 如果是windows环境登录方式

安装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. 操作方式

配置第二个AZ(可用区)

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


    image.png
  3. 操作方式

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

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


    负载均衡器
  3. 操作步骤

创建一个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. 这样我们的高可用架构就完成了。
上一篇下一篇

猜你喜欢

热点阅读