利用 AWS Elastic Beanstalk 部署 Wordpress 环境

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 也不打算继续整了,还是转到容器比较实际一些。

原文地址:https://www.cnblogs.com/sammyliu/p/9025039.html

时间: 2024-08-01 03:53:44

利用 AWS Elastic Beanstalk 部署 Wordpress 环境的相关文章

创建应用程序源包AWS Elastic Beanstalk

使用 AWS Elastic Beanstalk 控制台部署新应用程序或应用程序版本时,需要上传源包.源包必须符合以下要求: 由单个 ZIP 文件或 WAR 文件组成 (您可以在 WAR 文件中包含多个 ZIP 文件) 不超过 512 MB 不包含父文件夹或顶级目录 (可包含子目录) 如果您要部署处理定期后台任务的工作线程应用程序,您的应用程序源包还必须包括一个 cron.yaml 文件. ~/myapp$ zip ../myapp.zip -r * .[^.]* adding: app.js

AWS Elastic Beanstalk + Tomcat

AWS - Amazon Web Services (AWS) - Cloud Computing Services EC2 - Amazon Elastic Compute Cloud (EC2) Create First Application in Elastic Beanstalk 1. Login AWS -> Services -> All AWS Services -> EC2 2. EC2 Dashboard -> Network & Security -&

将应用程序部署到 AWS Elastic Beanstalk 环境

部署方法 方法 部署失败带来的影响 部署时间 零停机时间 无 DNS 更改 回滚过程 代码部署到 一次部署全部 停机时间 ? ? 手动重新部署 现有实例 滚动 单个批次服务中断:任何在故障之前成功的批次将运行新应用程序版本 † ? ? 手动重新部署 现有实例 附加批次滚动部署 如果第一个批次失败,则影响最小:否则类似于滚动 † ? ? 手动重新部署 新实例和现有实例 不可变的 最低 ? ? 终止新实例 新实例 蓝/绿 最低 ? ? 交换 URL 新实例 † 根据批处理大小而变化. 原文地址:ht

Deploy war from S3 to AWS Elastic Beanstalk

http://stackoverflow.com/questions/25683649/deploy-war-from-s3-to-aws-elastic-beanstalk I have got the best answer in this post : it requires 3 simple steps using AWS CLI: Upload to S3 bucket: aws s3 cp /var/lib/tomcat7/webapps/ROOT.war s3://elasticb

向 Elastic Beanstalk 环境中添加数据库

lastic Beanstalk 提供了与 Amazon Relational Database Service (Amazon RDS) 的集成以帮助您将数据库实例添加到 Elastic Beanstalk 环境.您可以使用 Elastic Beanstalk 在创建环境期间或之后将 MySQL.PostgreSQL.Oracle 或 SQL Server 数据库添加到您的环境.当您将数据库实例添加到您的环境时,Elastic Beanstalk 会通过设置数据库主机名.端口.用户名.密码和数

DevOps on AWS之Elastic BeanStalk

Elastic BeanStalk相关概念 童话世界中存在着一种魔力beanstalk(豆荚),种在花盆里可以无限的向上生长,越长越高直达云端.AWS Elastic Beanstalk也采用类似概念,用户只需部署代码即可自动处理包括容量预置.负载均衡.自动扩展和应用程序运行状况监控在内的部署工作.同时能够完全控制为应用程序提供支持的 AWS 资源,并可随时访问基础资源.Elastic Beanstalk服务本身不收取任何费用,客户只需支付业务所需的服务器和存储资源所需的基础费用. 引用AWS官

Elastic Beanstalk设置配置选项

AWS Elastic Beanstalk 支持大量配置选项,这些选项使您可以修改应用于环境中的资源的设置.其中一些选项具有默认值,可以覆盖这些值以自定义环境.其他选项可以进行配置以启动附加功能. Elastic Beanstalk 支持两种用于保存配置选项设置的方法.YAML 或 JSON 格式的配置文件可以放在应用程序的源代码中 (位于一个名为 .ebextensions 的目录中),并作为应用程序源包的一部分进行部署.您可在本地创建和管理配置文件. 保存的配置是您通过正在运行的环境或 JS

配置应用程序版本生命周期设置Elastic Beanstalk Lifecycle

每次您使用 Elastic Beanstalk 控制台或 EB CLI 上传应用程序的新版本时,Elastic Beanstalk 都会创建一个应用程序版本.如果不删除不再使用的版本,您最终会达到应用程序版本限制,并且无法创建此应用程序的新版本. 通过向应用程序应用应用程序版本生命周期策略,您可以避免达到限制.生命周期策略可要求 Elastic Beanstalk 删除应用程序的旧版本,或当应用程序的版本总数超过指定数量时删除一些应用程序版本. Elastic Beanstalk 在您每次创建新

Elastic Beanstalk 环境的 Auto Scaling 组

您的 Elastic Beanstalk 包含一个 Auto Scaling 组,该组管理您环境中的 Amazon EC2 实例.在单实例环境中,Auto Scaling 组可确保始终有一个正在运行的实例.在负载均衡的环境中,您将为组配置一系列要运行的实例,Amazon EC2 Auto Scaling 将根据负载按需添加或删除实例. Auto Scaling 组还会为您的环境中的实例管理启动配置.您可以修改启动配置,以更改实例类型.密钥对.Amazon Elastic Block Store