利用 AWS Elastic Beanstalk 部署 Wordpress 环境
1. 准备 wordpress 代码
- 从https://wordpress.org/download/ 将代码压缩包下载到本地,
- 解压,会有一个 wordpress 目录
- 复制 wp-config-sample.php 为 wp-config.php,修改。将下面的代码
define('DB_NAME', 'database_name_here');
define('DB_USER', 'username_here');
define('DB_PASSWORD', 'password_here');
define('DB_HOST', 'localhost');
修改为:
define('DB_NAME', $_SERVER["RDS_DB_NAME"]);
define('DB_USER', $_SERVER["RDS_USERNAME"]);
define('DB_PASSWORD', $_SERVER["RDS_PASSWORD"]);
define('DB_HOST', $_SERVER["RDS_HOSTNAME"]);
4. 将 wordpress 目录中的代码打包为一个新的 zip 文件 (注意不能直接打包 wordpress 目录)
2. AWS 操作
2.1 准备工作
- 创建一个 VPC,带至包括在两个AZ内的两个 subnet;创建一个 internet gateway 并绑定到VPC;设置默认 route table 中到 IGW 的 rule
- 创建一个 key pair
2.2 创建一个单实例 wordpress 测试环境
(1)进入 AWS Beanstalk 节点,点击 Create Application,输入

(2)点击 Create Now 创建 Environment

(3)选择 Web server environment

(4)配置 Environment
Platform 选择 PHP:

上传前面打包好的代码zip文件,该文件会被保存到S3中。
点击 Create Environment 按钮,开始创建 Environment。
经过几分钟,Environment 创建好以后,点击下图顶上的 URL 链接,

出现下面的页面:

这是因为没有配置数据库。
2.3 重新创建带RDS的Environment
在点击 Create Environment 之前,点击 Configure more options 按钮来进行更多配置。
点击 Database 下面的 Modify 按钮来修改 Database配置。下面的配置使用一个 RDS 实例:

点击 Security 下面的 Modify,设置 EC2 Key Pair,以便将来能够登录到虚机。
点击 Network Tab 下面的 Modify 按钮来修改 Network。选择 VPC 和 subnet:

回到 Network 配置,设置 RDS 实例的 subnet,需要设置在两个AZ中的至少两个subnet:

配置完成,点击 Create Environment,开始创建过程。从Events 能看出大概的过程包括
- 创建一个 RDS 实例
- 创建一个 EIP,会绑定到 EC2
- 创建一个 EC2 实例

2.4 更新代码
修改 wordpress 代码,打包成一个新的zip 文件。点击 Upload and Deploy:

上传文件,点击 Deploy:

新版本部署成功。

2.5 升级架构
在 Configuration 页面中,分别做下面的配置修改:
在 Capacity Modify 页面中,配置 ASG:

在 Load Banlancer 页面中配置 LB。
在 Security 页面中配置 EC2 Kay Pair,以便将来登录进虚机。
在 Network 页面中修改虚机所在的 subnet。
在 Software 页面中配置日志相关,将日志保存到 S3 和 导入到 CloudWatch:

点击 Apply Configuration 开始应用配置改动。
3. 一点心得
以上只是简单地从AWS界面上尝试使用了该功能的一些步骤。一点感受如下:
- 速度较慢。创建一个很小的环境就需要十几分钟。
- Configuration 中的部分配置互相有影响,修改了一处后往往需要在别的地方做修改,但是页面上没有提示。
- 预定义好的Platforms 的架构太简单,无法满足生产需求。
- 用户定制Platform 过程很复杂。
- Configuration 难以扩展。只支持 ec2,rds,elb,asg,vpc 等,但是一个应用往往还需要其它资源。可选途径包括 EBExtensions 和 CloudFormation,但使用似乎较难。
- ELB 还在使用快被淘汰的Classic类型,我估计基于虚机的PaaS 估计 AWS 也不打算继续整了,还是转到容器比较实际一些。
利用 AWS Elastic Beanstalk 部署 Wordpress 环境的更多相关文章
- DevOps on AWS之Elastic BeanStalk
Elastic BeanStalk相关概念 童话世界中存在着一种魔力beanstalk(豆荚),种在花盆里可以无限的向上生长,越长越高直达云端.AWS Elastic Beanstalk也采用类似概念 ...
- [转]基于AWS的自动化部署实践
作者 徐桂林 发布于 2014年1月22日 -------------------------------------------------------------------- 1. 背景 在过去 ...
- CentOS7下搭建基本LNMP环境,部署WordPress
系统环境:CentOS Linux release 7.4.1708 (Core) 3.10.0-693.el7.x86_64 软件版本:nginx-1.12.2.tar.gz php 7.1.11 ...
- AWS Add Key Pair to Elastic Beanstalk Instance 给EB实例加密钥
Go to Elastic Beanstalk -> Configuration -> Security -> Virtual machine permissions -> E ...
- 在 Amazon AWS 搭建及部署网站:(一)申请、设置 AWS 服务
亚马逊 AWS 介绍 简单来说,AWS (Amazon Web Service) 提供了一整套基础设施和服务,使"建站"这件事变得轻松愉快. 你可以利用AWS构建博客主机,云存储( ...
- How to force https on amazon elastic beanstalk
假设您已在负载平衡器安全组中启用https,将SSL证书添加到负载平衡器,将443添加到负载平衡器转发的端口,并使用Route 53将您的域名指向Elastic Beanstalk环境(或等效DNS服 ...
- AWS EC2中部署Apache服务器(LAMP)
关键词: 1.新建aws ec2实例 2.使用putty连接到aws ec2 实例(SSH协议) 3.使用filezilla连接到aws ec2实例(SFTP协议) 4.在aws ec2上部署apac ...
- 云中树莓派(5):利用 AWS IoT Greengrass 进行 IoT 边缘计算
云中树莓派(1):环境准备 云中树莓派(2):将传感器数据上传到AWS IoT 并利用Kibana进行展示 云中树莓派(3):通过 AWS IoT 控制树莓派上的Led 云中树莓派(4):利用声音传感 ...
- (转)Kubernetes部署WordPress+MySQL
转:http://www.showerlee.com/archives/2336 这部分我们结合之前的k8s知识点给大家展示如何使用kubernetes部署wordpress+MySQL, 并利用NF ...
随机推荐
- Python字符编码转换
编码回顾 在备编码相关的课件时,在知乎上看到一段关于Python编码的回答这哥们的这段话说的太对了,搞Python不把编码彻底搞明白,总有一天它会猝不及防坑你一把.不过感觉这哥们的答案并没把编码问题写 ...
- if else的使用以及如何从键盘获取数值
if-else的使用 顺序结构 顺序从上到下执行,中间没有判断和跳转 分支结构 根据条件,选择性地执行某段代码 有if-else和switch两种分支语句 循环结构 根据循环,重复性地执行某段代码 有 ...
- HTML中嵌套的子frame如何访问父页面中的函数?
我解决的办法,在父页面写了个函数,然后在frame页面调用父页面的函数,具体代码如下: 父:function a(){} 子frame:window.parent.a(); 问题迎刃而解 https: ...
- maven项目eclipse目录结构浅析
maven项目eclipse目录结构浅析 PS:Java Resources是为了方便我们编译,到最后都会编译到 WEB-INF/classes Maven项目的目录结构
- day3 反射与动态代理
import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Metho ...
- root用户登录mysql后新建用户提示1045错误
执行以下命令查看root权限 show grants for 'root'@'localhost'; 如果没有显示with grant option,说明是root没有拥有新建授权用户的权限(为什么会 ...
- expect脚本实例
#!/usr/bin/expect //必须写这句,表明使用expect,有些系统可能没有自带,使用yum install expect -y 安装 spawn ssh 192.168.2.128 / ...
- 数学 它的内容,方法和意义 第二卷 (A. D. 亚历山大洛夫 著)
第五章 常微分方程 1. 绪论 2. 常系数线性微分方程 3. 微分方程的解及应注意的几个方面 4. 微分方程积分问题的几何解释.问题的推广 5. 微分方程解的存在性与唯一性方程的近似解 6. 奇点 ...
- Where关键词的用法
where(泛型类型约束) where关键词一个最重要的用法就是在泛型的声明.定义中做出约束. 约束又分为接口约束.基类约束.构造函数约束.函数方法的约束,我们慢慢介绍. 接口约束 顾名思义,泛型参数 ...
- Web 单点登录(SSO) 实现模型
有网友问起, 前后端分离 架构下的 Web 单点验证 怎么做, 我画了个图 : Temp Token 就 相当于 短信验证码 . Web 单点登录 都可以用这个 模型, 不仅仅是 前后端分离 .