1. 准备 wordpress 代码

  1. https://wordpress.org/download/ 将代码压缩包下载到本地,
  2. 解压,会有一个 wordpress 目录
  3. 复制 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 能看出大概的过程包括

  1. 创建一个 RDS 实例
  2. 创建一个 EIP,会绑定到 EC2
  3. 创建一个 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 环境的更多相关文章

  1. DevOps on AWS之Elastic BeanStalk

    Elastic BeanStalk相关概念 童话世界中存在着一种魔力beanstalk(豆荚),种在花盆里可以无限的向上生长,越长越高直达云端.AWS Elastic Beanstalk也采用类似概念 ...

  2. [转]基于AWS的自动化部署实践

    作者 徐桂林 发布于 2014年1月22日 -------------------------------------------------------------------- 1. 背景 在过去 ...

  3. 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 ...

  4. AWS Add Key Pair to Elastic Beanstalk Instance 给EB实例加密钥

    Go to Elastic Beanstalk -> Configuration -> Security -> Virtual machine permissions -> E ...

  5. 在 Amazon AWS 搭建及部署网站:(一)申请、设置 AWS 服务

    亚马逊 AWS 介绍 简单来说,AWS (Amazon Web Service) 提供了一整套基础设施和服务,使"建站"这件事变得轻松愉快. 你可以利用AWS构建博客主机,云存储( ...

  6. How to force https on amazon elastic beanstalk

    假设您已在负载平衡器安全组中启用https,将SSL证书添加到负载平衡器,将443添加到负载平衡器转发的端口,并使用Route 53将您的域名指向Elastic Beanstalk环境(或等效DNS服 ...

  7. AWS EC2中部署Apache服务器(LAMP)

    关键词: 1.新建aws ec2实例 2.使用putty连接到aws ec2 实例(SSH协议) 3.使用filezilla连接到aws ec2实例(SFTP协议) 4.在aws ec2上部署apac ...

  8. 云中树莓派(5):利用 AWS IoT Greengrass 进行 IoT 边缘计算

    云中树莓派(1):环境准备 云中树莓派(2):将传感器数据上传到AWS IoT 并利用Kibana进行展示 云中树莓派(3):通过 AWS IoT 控制树莓派上的Led 云中树莓派(4):利用声音传感 ...

  9. (转)Kubernetes部署WordPress+MySQL

    转:http://www.showerlee.com/archives/2336 这部分我们结合之前的k8s知识点给大家展示如何使用kubernetes部署wordpress+MySQL, 并利用NF ...

随机推荐

  1. PTA——类型转换

    PTA习题 7-6 厘米换算英尺英寸 (15 分) #include<stdio.h> int main(){ int a; int b,c; scanf("%d",& ...

  2. C++学习(三十)(C语言部分)之 栈和队列

    数据结构1.保存数据 2.处理数据数组+操作增查删改 栈和队列是一种操作受限的线性表 栈 是先进后出 是在一端进行插入删除的操作--->栈顶 另一端叫做栈底(栈和栈区是两个概念)(是一种数据结构 ...

  3. hdu2886 Lou 1 Zhuang 数学/快速幂

    All members of Hulafly love playing the famous network game called 'Lou 1 Zhuang' so much that Super ...

  4. selected标签判断默认选中

    <select name="suggestedType" style="width:280px" > <option value=" ...

  5. 【git】一台机器上使用不同的git账号

    1.生成一个新的自定义名称的公钥: ssh-keygen -t rsa -C "shangxiaofei3@163.com" -f ~/.ssh/sxfself 一直点击回车 执行 ...

  6. MySQL--InnoDB并发线程控制

    InnoDB并发线程控制 MySQL InnoDB存储引擎提供innodb_thread_concurrency来控制进入InnoDB 存储引擎的线程数,以限制InnoDB存储引擎层的并发量. 当in ...

  7. camunda 开源的bpm系统

    看到camunda 是在zeebe 的介绍中,实际上camunda 是一个很完整的bpm 平台,包含了很多在bpm 系统中需要的组件,以下为一张参考图 从上图可以看出,组件还是比较多的,对于完整的bp ...

  8. auto sudo password in shell

    here is the example how to implement the auto password in shell script. Echo yourpasswordhere | sudo ...

  9. OFIFG fault when using DCO in MSP430

    The OFIFG flag always set in my recent MSP430 smoke device project. In this A sample hardware, there ...

  10. Linux期末复习题

    版权声明: https://blog.csdn.net/u014483914/article/details/36622451 1.More和less命令的差别         More命令通经常使用 ...