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. mac电脑读写NTFS格式的移动硬盘命令

    diskutil info /Volumes/SAMSUNG | grep UUID echo "UUID=38EBE5E4-016F-44B7-9D55-BB4AF6DC3E1D none ...

  2. LG3187 [HNOI2007]最小矩形覆盖

    题意 题目描述 给定一些点的坐标,要求求能够覆盖所有点的最小面积的矩形,输出所求矩形的面积和四个顶点坐标 输入输出格式 输入格式: 第一行为一个整数n(3<=n<=50000),从第2至第 ...

  3. UVA10294 Arif in Dhaka (First Love Part 2)

    题意 PDF 分析 用n颗宝石串成项链和手镯, 每颗宝石的颜色可以t种颜色中的一种,当A类项链经过旋转得B类项链时,A和B属于一类项链, 而手镯不仅可以旋转还可以翻转,当A类手镯经过翻转得得到B类手镯 ...

  4. vue全家桶+Koa2开发笔记(2)--koa2

    1. 安装koa脚手架的时候 执行命令 koa2 -e koa-learn 注意要使用-e的方式,才会生成ejs的模板 2. async await的使用方法:存在的意义:提高promise的可读性 ...

  5. web.xml配置Servlet出错(DispatcherServlet)

    想当然的把servlet-mapping当成servlet的属性 后台也不报错,但是输入url,就是死活不执行那个servlet servlet和servlet-mapping是同一级的对象

  6. 系统限制和选项limit(一)

    从shell中获取系统限制和选项 终端输入getconf value [pathname] [root@bogon code]# getconf ARG_MAX 2097152 [root@bogon ...

  7. The Guardian’s Migration from MongoDB to PostgreSQL on Amazon RDS

    转载一片mongodb 迁移pg 数据库的文章 原文:https://www.infoq.com/news/2019/01/guardian-mongodb-postgresql The Guardi ...

  8. Using gcc stack debug skill

    The stack error is hard to debug, but we can debug it assisted by the tool provided by GCC. As we kn ...

  9. Spring事务传播属性和隔离

     1 事务的传播属性(Propagation)  1) REQUIRED ,这个是默认的属性 Support a current transaction, create a new one if no ...

  10. js 数字数组按大小排序

    var num = [7,8,6,5,2] //倒序排列 num.sort((a,b)=>{return b-a}) //正序排列 num.sort((a,b)=>{return a-b} ...