实验2:构建高可用架构

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. 这样我们的高可用架构就完成了。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355

推荐阅读更多精彩内容

  • 前言:本系列题来自网络,出处应该是众多参加AWS认证的考生口口相传的。 AWS认证的行业平均年薪。 AWS SYS...
    辉耀辉耀阅读 2,093评论 0 1
  • VPC 定义 Virtual Private Cloud是AWS提供的一种从逻辑上分离且独立的网络单元(物理上不一...
    阿尔法二狗阅读 2,570评论 0 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,657评论 18 139
  • 互联网发展的智能时代,手机随时离不开手,工作中生活中都离不开手机,而学习是必不可少的,看书的时候,手机一响,书本一...
    有你有我爱你阅读 1,061评论 0 1
  • 重读黄仁宇的《万历十五年》,自序中他指出的王朝症结在于用道德代替法律,依然让我思考颇多。对相关知识了解并不多,因此...
    寻梵何阅读 155评论 0 0