AWS企业云平台实践: 创建一个高可用的WordPress 博客

  Seves

本文链接:AWS企业云平台实践: 创建一个高可用的WordPress 博客

高可用架构说明

参考aws官网的“Web 应用程序托管”参考架构进行的实验。

psb(12)

1)用户通过DNS(没有用aws的dns)解析Elastic Load Balancer的URL,ELB转发请求到其中任何一台Word Press的EC2实例,该Web Server通过3309端口访问远程的MySQL RDS实例;

2)MySQL通过Multiple-AZ实现高可用(由于收费原因本次实验没有用);

3)Web Server通过ELB实现高可用;

4)根据CPU或者其他负荷标准,ELB里面可以自动增加,删除EC2实例;

5)Auto Scaling 创建的服务器必须自动更新到最新版本;

6)Word press涉及的所有的图片和视频必须保存在S3 Bucket上面,并通过CloudFront实现CDN加速,word press的媒体资源URL自动重定向指向CDN的地址进行解析。

创建IAM的角色 ec2-s3及用户

创建角色ec2-s3

展开最上面的“Services”菜单,点“IAM”,如下图所示。

psb(13)

在“IAM”页面中点击左侧的“Roles”菜单,如下图所示。

psb(14)

点“Create New Role”按钮,如下图所示。

psb(15)

输入名字“EC2-S3”,点击“Next Step”,如下图所示。

psb(16)

选择 Amazon EC2,注意说明“允许EC2实例代表来访问其他服务”,如下图所示。

psb(17)

找到“AmazonS3FullAccess”,并勾选,如下图所示。

psb(18)

点击“Next Step”,如下图所示。

psb(19)

点击“Create Role”,创建好后,如下图所示。

psb(20)

创建用户ec2-s3

点左侧的“Users”,如下图所示。

psb(21)

点“Create New Users”按钮,输入名称“ec2-s3”如下图所示。

psb(22)

点“Create”按钮,完成创建,如下图所示。

psb(23)

点“Show User Security Credentials”可以查看安全信息,如下图所示。

psb(24)

点“Close”关闭该页面,点刚创建的用户,如下图所示。

psb(25)

点“Attach Policy”按钮,如下图所示。

psb(26)

选择第一个“AmazonS3FullAccess”,点“Attach Policy”按钮,如下图所示。

psb(27)

创建基本的网络(VPC)和防火墙(Security Group)

创建VPC

创建一个新的VPC网络 wordpressbeanxyz,展开最上面的“Services”菜单,点“VPC”,如下图所示。

psb(28)

在“VPC”页面中点击左侧的“Your VPCs”菜单,如下图所示。

psb(29)

点“Create VPC”按钮,如下图所示。

psb(30)

输入名称“wordpressbeanxyz”,地址“10.0.0.0/16”,如下图所示。

psb(31)

点“Yes, Create”,创建VPC网络,创建完成后如下图所示。

psb(32)

创建2个子网,分别位于不同的AZ,在“VPC”页面中点击左侧的“Subnets”菜单,如下图所示。

psb(33)

点“Create Subnet”按钮,如下图所示。

psb(34)

创建一个公网(DMZ)地址范围,这个网络是可以直接和互联网相连的,输入名称、选择区域、输入地址,如下图所示。

psb(35)

点“Yes, Create”,创建子网,创建完成后如下图所示。

psb(36)

按以上步骤,创建一个私网范围,这个网络通过NAT才能访问外网资源,但是外网无法直接访问它,创建完成后如下图所示。

psb(37)

创建Internet 网关,在“VPC”页面中点击左侧的“Internet Gateways”菜单,如下图所示。

psb(38)

点“Create Internet Gateway”按钮,如下图所示。

psb(39)

输入名称“wordpressbeanxyzInternetGateway”,点“Yes, Create”,创建网关,创建完成后如下图所示。

psb(40)

点“Attach to VPC”按钮,关联VPC网络,如下图所示。

psb(41)

点“Yes, Attach”按钮,关联完成后如下图所示。

psb(42)

配置路由表,在“VPC”页面中点击左侧的“Route Tables”菜单,在右侧的下方点“Routes”标签,如下图所示。

psb(43)

点“Edit”按钮,再多出的一行中鼠标点第二个输入框,会显示刚创建的网关,如下图所示。

psb(44)

选择刚创建的网关,第一个输入框的地址填“0.0.0.0/0”,如下图所示。

psb(45)

点“Save”按钮,保存路由,如下图所示。

psb(46)

配置Security Groups

配置允许访问的端口,在“VPC”页面中点击左侧的“Security Groups”菜单,如下图所示。

psb(47)

在上图中选择第三个,看对应的ip是刚创建的vpc网络的那个,在下方点“Inbound Rules”,默认为允许全部访问,如下图所示。

psb(48)

点“Edit”按钮,可以编辑,如下图所示。

psb(49)

配置SSH(22,linux远程控制)、http(80)、ICMP、RDP(3389,windows远程桌面),由于我用windows系统,所以我配置3389端口,如下图所示。

psb(50)

点“Save”按钮,保存配置,如下图所示。

psb(51)

创建高可用MySQL

创建一个mysql,展开最上面的“Services”菜单,点“RDS”,如下图所示。

psb(52)

打开后,如下图所示。

psb(53)

点“Get Started Now”按钮,如下图所示。

psb(54)

默认选择mysql,点“select”按钮,选择是否多区域部署,如果是付费用户可以选择多区域,我这选择免费的单一实例,如下图所示。

psb(55)

点“Next Step”按钮,配置mysql,如下图所示。

psb(56)

点“Next Step”按钮,配置高级设置,如下图所示。

psb(57)

psb(58)

上述配置完成后,点“Launch DB Instance”按钮,启动mysql,如下图所示。

psb(59)

点“View Your DB Instances”按钮,查看创建进度,如下图所示。

psb(60)

等待10分钟后,数据库创建完成,如下图所示。

psb(61)

修改访问地址,鼠标移到“authorized”右边的叹号,点击第一个default,如下图所示。

psb(62)

在打开的“SecurityGroups”列表中,选择第一个,选项,点击下面的“Inbound”标签。如下图所示。

psb(63)

点“Edit”按钮,编辑选项,来源可以有三个,任意ip,当前电脑ip,指定ip,如下图所示。

psb(64)

设置好以后点“save”按钮,保存,如下图所示。

psb(65)

创建一个windows实例

创建一个windows实例,展开最上面的“Services”菜单,点“ec2”,如下图所示。

psb(66)

打开后,如下图所示(我这里已经建过一个实例,所以是这个图)。

psb(67)

点“Launch Instance”按钮,如下图所示。

psb(68)

选中左侧的“Free tier only”来搜索免费选项,滚动右边的列表找到“Microsoft Windows Server 2008 R2 Base”,如下图所示。

psb(69)

点“Select”按钮,如下图所示。

psb(70)

默认选中免费的第一个选项,点“Rview and Launch”按钮,启动实例,启动成功后如下图所示。

psb(71)

点击“Connect”按钮,如下图所示。

psb(72)

点“Download Remote Desktop File”下载远程连接文件,如下图所示。

psb(73)

点“Get Password”按钮,如下图所示(我这里已经是创建好的,所以key name选项已填写)。

psb(74)

填写“Key Name”,选择刚下载的远程连接文件,点“Decrypt Password”按钮,即可获得连接密码。双击打开刚下载的远程连接文件,如下图所示(我这里已经连接过,所以记住了密码,我这个图是修改密码)。

psb(75)

输入密码,点“连接”或“确定”按钮,即可连接到远程桌面,如下图所示。

psb(76)

psb(77)

Windows安装WAMP

关闭ie安全选项

关闭ie安全选项,在远程桌面中点“Start”开始按钮,选择“Server Manager”,如下图所示。

psb(78)

打开后点击左侧列表第一项,如下图所示。

psb(79)

点右侧的“configure IE ESC”,如下图所示。

psb(80)

打开后如下图所示。

psb(81)

都选择“off”,点“ok”按钮,关闭ie安全选项,打开ie,如下图所示。

psb(82)

安装vc11运行库

先下载安装vc11运行库,下载地址:“http://pan.baidu.com/s/1gd0y1Qb”,下载64位的,如下图所示。

psb(83)

安装wamp

在浏览器中输入地址“http://www.wampserver.com/en/”,点“download”按钮,如下图所示。

psb(84)

点右边的下载64位软件,如下图所示。

psb(85)

点“download directly”,直接下载,下载完成直接一直下一步安装即可。安装完成后,运行,鼠标左键点任务栏的图标可以进行设置,打开http://loclahost,如下图所示,。

psb(86)

配置Virtual Host

添加域名和根目录,左键点任务栏的wamp图标,选择“Apache”—>“httpd.conf”,如下图所示。

psb(87)

打开后查找“#Include conf/extra/httpd-vhosts.conf”,去掉“#”号,保存。修改文件“C:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf”,内容如下:

psb(88)

重启apache服务,如下图所示。

psb(89)

配置防火墙,打开windows防火墙,如下图所示。

psb(90)

打开选择左侧第一子选项,如下图所示。

psb(91)

点击右侧的

psb(92)

按钮,打开后选择“port”,如下图所示。

psb(93)

点“Next”按钮,输入“80”,如下图所示。

psb(94)

点“Next”按钮,选择第一个允许链接,如下图所示。

psb(95)

点“Next”按钮,默认选中3个不变,如下图所示。

psb(96)

点“Next”按钮,输入名称,例如“80in”,如下图所示。

psb(97)

点“Finsh”按钮,完成创建,如下图所示。

psb(98)

同理在左侧第二个子选项,创建80out。

在aws控制面板中,新建ec2的80端口,如下图所示。

psb(99)

如果用自己的域名,需要在自己买的域名控制台设置CNAME记录,如下图所示。

psb(100)

配置S3

新建一个备份网站的s3,展开最上面的“Services”菜单,点“s3”,如下图所示。

psb(101)

打开后,如下图所示。

psb(102)

点“Create Bucket”按钮,输入名称,选择区域,如下图所示。

psb(103)

点“Create”按钮,如下图所示。

psb(104)

同理创建一个用于cdn的s3,创建完成后,如下图所示。

psb(105)

点开“permission”,选择第二个选项,如下图所示。

psb(106)

打开后,如下图所示。

psb(107)

点“AWS Policy Generator”,会新打开一个页面,如下图所示。

psb(108)

填写相关信息,如下图所示。

最后一项为:arn:aws:s3:::wordpressfccdn/* ,为刚创建的s3名称

psb(109)

点“Add Statement”按钮,如下图所示。

psb(110)

点“Generate Policy”按钮,如下图所示。

psb(111)

复制框里的内容,粘贴到s3的页面,如下图所示。

psb(112)

点“save”按钮保存。

在远程桌面中下载s3命令行客户端,下载地址:

https://s3.amazonaws.com/aws-cli/AWSCLI64.msi,下载完一直下一步安装即可。

安装完成后,打开dos窗口,输入“aws –version”回车,即可看到安装信息,如下图所示。

psb(113)

在dos窗口中输入“aws configure”,输入相应信息,如下图所示。

psb(114)

配置完成后,在目录“C:\Users\Administrator.aws”下会看到自动生成两个文件,如下图所示。

psb(115)

安装wordpress

打开浏览器,输入地址https://wordpress.org/download/,如下图所示。

psb(116)

点右侧的“Download WordPress 4.1.1”,下载,下载完成后打开,如下图所示。

psb(117)

拷贝“wordpress”目录到“C:\wamp\www”目录下,如下图所示。

psb(118)

外网安装,在自己的电脑打开浏览器,输入http://www.gy404fc.science/wordpress/wp-admin/setup-config.php或者使用ec2的public dns,如下图所示。

psb(119)

拖滚动条最后,选择“简体中文”,点“继续”按钮,如下图所示。

psb(120)

点“现在就开始!”按钮,如下图所示。

psb(121)

输入第三步创建的mysql信息,地址填写mysql实例页面的“End Point”地址,“:3306”不用填,就到“.com”截止,如下图所示。

psb(122)

填写完成后,点“提交”按钮,如下图所示。

psb(123)

点“进行安装”按钮,如下图所示。

psb(124)

输入相应信息,如下图所示。

psb(125)

点“安装WordPress”按钮,如下图所示。

psb(126)

点“登录”按钮,如下图所示。

psb(127)

输入用户名、密码,登录,如下图所示。

psb(128)

通过aws的命令把对应的wordpress文件夹和virtualhost的配置文件备份回S3保存。

备份wordpress命令:

aws s3 cp –recursive C:/wamp/www/wordpresss3://wordpressfc/wordpress

备份virtualhost的配置文件命令:

aws s3 cp C:/wamp/bin/apache/apache2.4.9/conf/extra/httpd-vhosts.confs3://wordpressfc/

在浏览器中打开s3控制台,如下图所示。

psb(129)

打开浏览器,能访问代表设置成功,如下图所示。

psb(130)


配置CloudFront CDN

新建一个CloudFront,展开最上面的“Services”菜单,点“CloudFront”,如下图所示。

psb(131)

打开后,如下图所示。

psb(132)

点“Create Distribution”按钮,如下图所示。

psb(133)

选择第一个web,点第一个“Get Started”按钮,只需填写下图中的画圈的两项,第一项内容为“s3.amazonaws.com/wordpressfccdn(为cdn建立的s3名称)”,如下图所示。

psb(134)

滚动滚动条到最下面,点“Create Distribution”按钮,创建完成后,如下图所示。

psb(135)

通过S3sync同步图片到S3Bucket里面,命令“awss3 sync C:/wamp/www/wordpress/wp-content/uploads s3://wordpressfccdn/uploads”,如下图所示。

psb(136)

修改vitual host文件,用CDN的地址来替换本地磁盘的访问地址,如下图所示。

psb(137)

修改s3的目录权限为public,如下图所示。

psb(138)

重新打开网站,可以看到网站的图片已改为cdn的地址,如下图所示。

psb(139)

创建AMI镜像

打开ec2控制面板,右键点ec2,选择“Image”—>“Create Image”,如下图所示。

psb(140)

打开后填写先关信息,如下图所示。

psb(141)

点“Create Image”按钮,如下图所示。

psb(142)

点“close”按钮,关闭该页面,点左侧的“AMIs”标签,可以看到刚创建的映像,如下图所示。

psb(143)

配置Elastic load balancer(ELB)

打开ec2控制面板,右左侧的“Load Balancers”,如下图所示。

psb(144)

点“Create Load Balancer”按钮,输入相关信息,如下图所示。

psb(145)

点“Continue”按钮,修改“Ping Path”为“/”,如下图所示。

psb(146)

点“Continue”按钮,如下图所示。

psb(147)

点“+”号,把两个子网都添加进去,如下图所示。

psb(148)

点“Continue”按钮,如下图所示。

psb(149)

点“Continue”按钮,如下图所示。

psb(150)

点“Continue”按钮,输入相关信息,如下图所示。

psb(151)

点“Continue”按钮,确认相关信息,如下图所示。

psb(152)

点“Create”按钮,创建,如下图所示。

psb(153)

点“close”按钮,如下图所示。

psb(154)

在域名管理面板中,加入elb地址,如下图所示。

psb(155)

配置Auto scaling

打开ec2控制面板,右左侧的“Auto ScalingGroups”,如下图所示。

psb(156)

点“Create Auto Scaling group”按钮,如下图所示。

psb(157)

点“Create launch configuration”按钮,点“MyAMIs”,如下图所示。

psb(158)

点“Select”按钮,如下图所示。

psb(159)

点“Next: Configure details”按钮,输入相关信息,如下图所示。

psb(160)

点“Next: Add Storage”按钮,如下图所示。

psb(161)

点“Next: Configure Security Group”按钮,选择已存在的,如下图所示。

psb(162)

点“Review”按钮,如下图所示。

psb(163)

点“Create launch configuration”按钮,如下图所示。

psb(164)

点“Create launch configuration”按钮,配置相关信息,如下图所示。

psb(165)

点“Next: Configure scaling policies”按钮,如下图所示。

psb(166)

点“Add new alarm”,创建一个Alarm,比如CPU平均利用率超过50%,那么就自动增加一个服务器,如下图所示。

psb(167)

同理创建第二个Alarm,CPU平均利用率低于20%,就自动删除一个服务器,如下图所示。

psb(168)

创建好以后如下图所示。

psb(169)

点“Next: Configure Notifications”按钮,点“Add notification”,如下图所示。

psb(170)

点“Next: Configure Tags”按钮,输入相关信息,如下图所示。

psb(171)

点“review”按钮,如下图所示。

psb(172)

点“Create Auto Scaling group”按钮,如下图所示。

psb(173)

点“Close”按钮,如下图所示。

psb(174)

配置完成后会默认启动2台实例,如下图所示。

psb(175)

暂停与恢复Auto Scaling

暂停

由于负载均衡创建完成后会自动启动ec2实例,会导致扣费,如下图所示。

psb(176)

所以免费测试账户还是要关闭负载均衡的。

在第一步创建的角色中增加权限,如下图所示。

psb(177)

在ec2中,打开dos,输入“aws –region us-east-1 autoscalingsuspend-processes –auto-scaling-group-name wordpressfcASG”,“wordpressfcASG”是你的“Auto Scaling”名称 ,如下图所示。

psb(178)

恢复

在ec2中,打开dos,输入“aws –region us-east-1 autoscaling resume-processes–auto-scaling-group-name wordpressfcASG”,如下图所示。

![psb(179)](https://www.fcblog.top/upload/awswordpressimage/psb(179).png

CloudWatch监控

AmazonCloudWatch 是一项针对 AWS 云资源和在 AWS 上运行的应用程序进行监控的服务。AmazonCloudWatch 可用于收集和追踪指标,收集和监控日志文件,以及设置警报。Amazon CloudWatch 能够监控 Amazon EC2 实例、Amazon DynamoDB 表和 Amazon RDS DB实例等各种 AWS 资源,同时也能够监控应用程序和服务生成的定制指标,以及应用程序生成的任何日志文件。借助 Amazon CloudWatch,您可以全面了解整个系统的资源使用率、应用程序性能和运行状况。使用这些分析结果,您可以及时做出反应,保证应用程序顺畅运行。

展开最上面的“Services”菜单,点“CloudWatch”,如下图所示。

![psb(180)](https://www.fcblog.top/upload/awswordpressimage/psb(180).png

Amazon Simple Notification Service (SNS)消息推送

展开最上面的“Services”菜单,点“SNS”,如下图所示。

psb(181)

点左侧的“Topics”可以看到刚在负载均衡中创建的邮件通知,如下图所示。

psb(182)

psb(183)

阿里云1000元代金券

淘宝优惠券

ecs70090jpg

本文链接:https://www.fcblog.top/articles/2018/09/12/1536731170759.html

fc
1,954