前言
WordPress 是一种灵活的内容管理系统,用于构建博客、电子商务站点、讨论区等等。无论您创建何种网站,都要存储内容。对于博客而言,需要存储的内容是博客文章和评论。对于电子商务站点而言,需要存储的内容是产品和用户账户。
在本实验中,您将学习如何在亚马逊云科技中,使用 EC2 设置 WordPress 站点来运行博客。WordPress 需要一个 MySQL 数据库来存储其数据。对于本次实验,您还将使用 Amazon RDS for MySQL 来运行您的 MySQL 数据库。
关于本教程 | |
---|---|
预计部署时间 | 快速上手教程 – 5 分钟 ~10 分钟 |
费用 | 免费套餐 |
主题 | 通过部署 wordpress 快速建站 |
受众 | 全栈开发人员,开发运维工程师,系统管理员 |
级别 | 初级 |
相关产品 | Amazon EC2, Amazon RDS |
相关行业 | 通用 |
上次更新日期 | 2023 年 6 月 |
教程说明
-
第1步 – 创建VPC
在本模块中,您将通过 VPC 创建向导为 WordPress 站点创建一个包括有公有子网和私有子网的 VPC。通常来说,对必须连接互联网的资源放置在公有子网,对不会连接到互联网的资源放置在私有子网,以提升整体架构的安全性。因此在实验中,WordPress 的 Web 务器位于公有子网之内,数据库服务器则位于私有子网。
在下面的步骤中,您将使用亚马逊云科技管理控制台中的 VPC 启动向导创建一个包括有公有子网和私有子网的 VPC。
- 在页面顶部的搜索框搜索 VPC,并点击。
- 单击橙色的“启动 VPC 向导”按钮
- 在 VPC 创建向导中您可以对 VPC 进行一些配置。本次实验您需要填写 VPC 的名字,例如 WordPress。其他保持默认,在页面底部点击橙色 “创建 VPC” 按钮
- 您应会看到 VPC 启动向导创建的有关 VPC 资源。等待所有进程创建完毕后,您可以点击橙色 View VPC 按钮,查看创建后的 VPC。
- * 查阅创建后的子网名称、子网 ID、IPv4 CIDR 以及可用区。在左侧菜单栏选择 “子网”,在筛选输入栏中输入”wordpress”,打开记事本并记录相关子网名称、子网 ID 以及可用区信息。
在本模块中,您使用VPC启动向导创建了一个Amazon VPC用于将 Amazon 资源启动到您定义的虚拟网络中。在下一个模块中,您将创建 Amazon EC2 实例以运行 WordPress 站点。
-
第 2 步 – 创建 EC2 实例
在本模块中,您将创建一个 Amazon EC2 实例来运行您的 WordPress 网站。Amazon EC2 按需提供高度可配置的服务器实例。在 EC2 实例上,您可以运行可供各地用户访问的 WordPress 网站。
Amazon EC2 提供按需服务器预置。借助 Amazon EC2,您可以租用具有不同大小、CPU、RAM 和网络配置的服务器实例。这些服务器按使用时间计费,您可以使用它们来托管网站(例如 WordPress 网站)。使用 EC2 实例后,您的 WordPress 网站将能持续运行,并且任何人都可以通过互联网访问它。
在以下步骤中,您将启动一个 EC2 实例来托管您的 WordPress 网站。
- 在控制台搜索 EC2,并点击,进入 EC2 控制面板
- 点击橙色“启动实例”按钮,进入 EC2 创建向导
- 填写 EC2 实例名称,本实验填写 WordPress
- 选择 Amazon 系统映像(AMI)。AMI 将决定新 EC2 实例上安装的基本软件,其中包括操作系统(Amazon Linux、Red Hat Enterprise Linux、Ubuntu、Microsoft Server 等)以及计算机上安装的应用程序。
本次实验请在 AMI 选择视图中选择 Amazon Linux 2 AMI (HVM) - Kernel 5.10,架构选择 64 位 (ARM)。- 选择 EC2 实例类型。实例类型是 CPU、内存 (RAM)、存储和网络容量的特定配置。本次实验选择t4g.small,请您在搜索框中输入t4g.small,并选择t4g.small型号。
- 创建用于登陆 EC2 实例的密钥对,并保存。
您将使用密钥对通过 SSH 访问实例,从而使您能够在服务器上运行命令。
为您的实例创建新的密钥对,并为其命名。根据连接方式选择密钥类型(pem/ppk)然后,单击下载密钥对按钮,将 .pem/.ppk 文件下载到您的计算机上,妥善保管以便在后续实验中使用。
- 为实例配置网络详细信息。点击右上角编辑按钮,选择对应名为 WordPress 的 VPC,及一个公有子网(subnet-public),并启用自动分配公有 IP 选项。
- 为实例配置安全组,在这里为 WordPress 实例创建一个安全组。安全组名称填写 wordpress-sg,填写描述信息。亚马逊云科技中的安全组(Security Group)充当虚拟防火墙,描述了可以访问资源网络流量类型,这意味着您可以使用安全组控制到资源的流量。
- 为安全组添加规则。根据通常情况,需要允许两种类型的流量访问您的 WordPress 资源:
- 来自您当前 IP 地址的 SSH 流量,让您可以使用 SSH 协议登录到 EC2 实例并配置 WordPress;
- 在规则区域,其中已配置了 SSH 规则,但是它允许从任何 IP 地址进行 SSH 访问。在源类型下方单击列表,选择我的 IP。
- 来自所有 IP 地址的 HTTP 流量,让用户可以查看您的 WordPress 网站。
- 点击添加安全组规则,在新建的安全组规则中,单击类型列下方的下拉列表。选择 HTTP,在源类型下方单击列表,选择任何位置。
- 为实例设定存储大小,根据需求填写。本实验建议设定 20GB-30GB。
- 在高级详细信息的用户数据中,复制以下脚本,该脚本将安装并配置 Apache、PHP、MySQL 客户端服务。
- 检查实例创建信息,尤其是 VPC、子网信息,点击右侧橙色按钮“启动实例”。
- 点击实例 ID 查看启动状态。当实例状态成为“正在运行”以及“状态检查”通过,则实例成功启动。
您已成功启动 EC2 实例。在下一个模块中,您将使用 Amazon RDS 启动 MySQL 数据库实例用于存储WordPress的内容。
-
第 3 步 – 创建 Amazon RDS for MySQL 数据库
在本模块中,您将为 WordPress 站点创建 MySQL 数据库。在您创建数据库之前,让我们了解一下为何 Amazon RDS 能很好地满足您的数据库需求。
WordPress 的内容需要永久存储在某个地方。WordPress 使用 MySQL 数据库来存储这些内容。维护您的 WordPress 站点数据库至关重要。您的数据库实例中保存关于您的 WordPress 站点的所有重要数据。如果数据库发生故障,您的网站可能也会随之崩溃,您甚至可能会丢失数据。
许多 WordPress 安装指南将用于 WordPress 的 MySQL 部署在与 WordPress 的同一台服务器上。虽然这可能足以满足初始需求,但出于以下几个原因,您可能并不希望 MySQL 数据库与 WordPress 安装到相同服务器上:
- MySQL 和 WordPress 将争用同一服务器上的计算资源,这可能会降低站点性能。
- 随着您的站点变得越来越受欢迎,您无法通过添加额外的 WordPress 服务器来横向扩展 WordPress。
- 您要负责执行所有数据库维护任务,包括数据库备份和安全升级。
通过使用 Amazon RDS for MySQL,可以消除这些问题。数据库与 WordPress 部署在分别的实例中。因此,它们将不会争用资源。此外,您可以创建多个 WordPress 安装,并连接到 Amazon RDS for MySQL 的实例,从而实现横向扩展站点。最后,Amazon RDS for MySQL 能自动执行备份和安装安全补丁,有效帮助您管理数据库。
在下面的步骤中,您将使用亚马逊云科技管理控制台启动 MySQL 数据库。
- 在控制台搜索 RDS,并点击,进入 RDS 控制面板。
- 创建数据库子网组,以限定 MySQL 实例在私有子网中。
数据库子网组是您在 VPC 中创建并随后指定给数据库实例的子网集合。通过数据库子网组,您可以在创建数据库实例时指定特定的 VPC。
在左侧菜单栏选择子网组,单击橙色的 “创建数据库子网组” 按钮。填写子网组名称 wordpress-db-subnet-group、子网组描述,并选择名称为 WordPress 的 VPC
- 根据之前创建 VPC 时记录的子网信息,在添加子网区域中,选择子网所在的可用区。
- 根据之前创建 VPC 时记录的子网信息,在选择子网下拉框中选择不同可用区中的两个私有子网。检查相应信息,并点击橙色“创建”按钮
- 在左侧菜单栏选择控制面板,单击橙色的 “创建数据库” 按钮开始创建数据库
- 单击橙色的 “创建数据库” 按钮开始创建数据库,选择标准创建,选择要使用的数据库引擎。WordPress 使用 MySQL,因此选择 MySQL 引擎。
- 在创建向导的模板部分中,预置了生产,开发 / 测试和免费套餐三种模版。后面修改相关的功能配置:
- 更大的数据库实例类,用于提高性能;
- 多可用区部署,用于在发生基础设施问题时自动执行故障转移和恢复;
- 适用于磁盘存储的预置 IOPS,用于提高 I/O 性能。
本次实验使用免费套餐模版,并选择单可用区数据库实例- 随后您将为 MySQL 您将为 MySQL 部署指定身份验证设置,其中包括数据库名称、主用户名和密码。
在设置部分中,输入 wordpress-db-instance 作为数据库实例标识符,然后指定数据库的主用户名和密码。选择安全程度高的密码以帮助保护您的数据库。妥善保管并记录用户名和密码,以供后面的模块使用。- 接下来,您需要配置连接和网络配置。必须在 Amazon VPC 中创建 Amazon RDS 实例。请选择先前创建的名为 WordPress 的 VPC,并自动选择之前创建的子网组。
- 为该数据库实例新建一个安全组,命名为wordpress-db-sg
- 最后,RDS 还提供了许多其他配置选项,用于自定义您的部署。您需要在此区域中进行一项更改。单击其他配置行以展开选项。
将初始数据库名称设置为wordpress。这将确保 RDS 在初始化时在 MySQL 实例中创建数据库。在连接到数据库时,您将使用此数据库名称。- 在创建向导的底部,单击橙色的 “创建数据库” 按钮以创建数据库。您应会看到一条成功通知,提示正在创建数据库。创建时间可能需要花费若干分钟,等待创建的同时您可以进行下一模块的步骤。
在本模块中,您使用 Amazon RDS 创建了一个完全托管的 MySQL 数据库。在下一个模块中,您将学习如何连接 EC2 实例。
- 允许您的 EC2 实例访问 RDS 数据库
在之前创建 EC2 的模块,您创建了安全组规则,允许 SSH 和 HTTP 流量访问您的 WordPress EC2 实例。此处适用同样的原则。但是这一次您希望允许某些流量从 EC2 实例访问 RDS 数据库。
要进行配置,请在新的标签页打开 RDS 数据库控制台。单击您在本实验先前的模块中创建的 MySQL 数据库。在安全组规则区域点击安全组条目。
- 单击入站规则选项卡,然后单击编辑入站规则更改安全组规则。
- 单击入站规则选项卡,然后单击编辑入站规则更改安全组规则
默认安全组设有一个规则,该规则在建立 RDS 数据库时根据您的 IP 地址生成。但是,由于您的 WordPress EC2 实例不在该安全组中,因此它无权访问 RDS 数据库。删除自动创建的安全组规则。点击左下角 “添加规则” 按钮,创建一条新的规则,在类型中选择 MySQL/Aurora。在源后的输入栏中输入 “wordpress-sg”,并选择对应的安全组。点击右下角的 “保存规则” 按钮。 - MySQL 和 WordPress 将争用同一服务器上的计算资源,这可能会降低站点性能。
-
第 4 步 – 配置 WordPress
到目前为止,您已完成了许多配置设置。您创建了 RDS 实例和 EC2 实例。您已允许从 EC2 实例通过网络访问 RDS 实例。您还学习了如何通过 SSH 或者会话连接器 访问 EC2 实例。
在本模块中,您将完成剩余的工作,以将 WordPress 网站上线。本模块结束后,您可从世界各地通过浏览器访问您安装好的 WordPress 网站。
- 测试 WordPress 默认页面
转到 EC2 实例页面并找到您的实例。在下面的详细信息中,找到实例的公有 (IPv4) 地址。
复制 IP 地址,在 Web 浏览器中输入此值,然后,您会看到 WordPress 欢迎页面及安装过程。
- 使用 WordPress 安装界面添加数据库信息
点击现在开始,在数据库配置页面填写对应信息。
数据库名:之前创建数据库输入的数据库名
用户名及密码:之前创建的主用户名及密码
数据库主机:主机名为数据库实例的终端节点,在数据库实例的详细信息中查看。
填写完毕后,点击提交,连接数据库成功。您可以自行配置后续有关 WordPress 的设定。
注意:我们建议遵循最小权限原则,创建一个专用于 WordPress 的数据库用户,而不是使用 RDS 数据库的管理用户。详情可以参考 1.8 节【提升数据库的安全性】为 WordPress 数据库创建专属的用户,并在此步替换连接的数据库用户名和密码。
以上就是所有步骤。至此,您安装好了可公开访问的在线 WordPress 网站,它使用 Amazon RDS 上的完全托管的 MySQL 数据库。 -
小结
在本实验中,您已经学习了如何设置 WordPress 站点来运行网站。WordPress 需要一个 MySQL 数据库来存储其数据。对于此实验,您使用 Amazon RDS for MySQL 来运行您的 MySQL 数据库。
请确保您拥有所需服务的完全访问权限。如果您在账号创建方面存在问题,请联系您的销售顾问。如果您的账号缺少所需服务的权限,请联系您账号所属组织的管理员。