使用 Amazon RDS 部署 WordPress
模块 3
模块 3:配置 Amazon RDS 数据库
配置 Amazon RDS 数据库,允许特定的实体访问数据库
概述
您已经创建了一个 Amazon RDS 数据库和一个 EC2 实例。在此模块中,我们将配置 Amazon RDS 数据库,允许特定的实体访问该数据库。
学习目标
在本模块中,您将学习如何配置 Amazon RDS 数据库,允许特定的实体访问数据库。
时长
15 分钟
使用的服务
数据库安全保护
为确保数据库的安全,防止未经授权的访问,您可以使用多种策略来提高数据库的安全性。在本模块中,您将学习到其中两种策略。数据库安全保护策略:
- 网络安全防控:拒绝来自非授权 IP 地址的流量,限制对数据库实例的访问
- 密码身份验证与授权:只允许使用了正确用户名和密码的访问请求,限制对数据库的访问。
下面我们将逐步介绍如何实现以上安全保护策略。
操作步骤
-
允许 EC2 实例访问 Amazon RDS 数据库
首先,修改 Amazon RDS 数据库设置,允许来自 EC2 实例的流量访问该数据库。
在上一模块中,您创建了安全组规则,允许 SSH 和 HTTP 流量进入您托管 WordPress 网站的 EC2 实例。这个方法对于数据库同样有效。这次,您要允许来自 EC2 实例的指定类型流量访问 Amazon RDS 数据库。
a. 前往 Amazon RDS 控制台的 databases(数据库)页面。单击在上个模块中创建的 MySQL 数据库的名称。
b. 滚动页面到 Connectivity & security(连接与安全)选项卡,单击 VPC security groups(VPC 安全组)下的安全组 ID。您将跳转到为数据库关联的安全组页面。
c. 选择 Inbound rules(入站规则)选项卡,然后点击 Edit inbound rules(编辑入站规则)按钮,更改安全组规则。
d. 默认安全组中有一条规则,允许来自该默认安全组中的其他实例的所有入站流量。但是,由于您托管 WordPress 网站的 EC2 实例目前还不在该安全组中,它将无法访问该 Amazon RDS 数据库。
将 Type(类型)属性更改为 MYSQL/Aurora。 Protocol(协议)和 Port range(端口范围)配置将随之自动更改。然后,删除Source(源)下的当前安全组配置。
e. 将Source(源)设置为 wordpress。控制台将显示已配置的可用安全组。选择用于 EC2 安全实例的 wordpress 安全组。
f. 选择 wordpress 安全组后,系统将填入安全组 ID。该规则允许任何关联了该安全组的 EC2 实例访问您的 MySQL 数据库。
完成后,点击 Save rules(保存规则)按钮,保存更改。
-
SSH 访问 EC2 实例
现在,您的 EC2 实例可以访问您的 Amazon RDS 数据库,您可以使用 SSH 连接 EC2 实例并运行一些配置命令。
a. 前往 EC2 控制台中的 Instances(实例)页面。您应该可以在实例列表中看到您用于托管 WordPress 网站的 EC2 实例。选择该实例。在实例信息中,您会看到该实例的公网 IPv4 地址和公网 IPv4 DNS 信息。
b. 找到下载的实例密钥对的 .pem 文件。它可能位于您的 Downloads(下载)文件夹中。
Mac 或 Linux 系统:
打开终端窗口。如果您用的是 Mac,可以使用默认安装的终端程序,也可以使用自己的终端。
在终端中运行以下命令,通过 SSH 连接到实例。将 "<path/to/pem/file>" 替换为您的文件路径,例如 "~/Downloads/wordpress.pem",并将 "<publicIpAddress>" 替换为您的 EC2 实例的公网 IP 地址。
chmod 400 <path/to/pem/file> ssh -i <path/to/pem/file> ec2-user@<public_IP_DNSAddress>
您应该在终端中看到以下信息,表明连接成功:
Windows 用户:
您需要使用 Windows 的 SSH 客户端 PuTTY 来连接 EC2 实例。有关操作说明,请参阅指南《使用 PuTTY 从 Windows 连接到 Linux 实例》。您需要使用已下载的 .pem 文件和 EC2 实例的公网 IP 地址。
在此步骤中,您已通过 SSH 连接到 EC2 实例。下一步,从 EC2 实例连接 Amazon RDS 数据库,并为 WordPress 应用程序创建一个数据库用户。
-
创建一个数据库用户
当前,终端应保持着连接 EC2 实例的 SSH 会话。现在,连接 MySQL 数据库。
首先,在终端上运行以下命令安装 MySQL 客户端,用于与数据库交互。
sudo yum install -y mysql
注意:如果此命令出现错误,请在模块 2 中确认您启动了正确的 EC2 实例。
接下来,在 AWS 控制台中找到 Amazon RDS 数据库的主机名。在 Amazon RDS 数据库的详细信息中,主机名即显示在 Connectivity & security(连接与安全)区域的 Endpoint(端点)。
a. 前往 Amazon RDS 控制台的 databases(数据库)页面。此时您应该可以看到为安装 WordPress 创建的 wordpress 数据库。选中它,查看 Amazon RDS 数据库的主机名。
b. 在 Amazon RDS 数据库的详细信息中,主机名即显示在 Connectivity & Security(连接与安全)区域的 Endpoint(端点)。
在终端中执行以下命令,为 MySQL 主机设置环境变量。请务必将 "" 替换为您的 RDS 实例的主机名。
export MYSQL_HOST=<your-endpoint>
然后,在终端上运行以下命令,连接 MySQL 数据库。用创建 Amazon RDS 数据库时配置的主用户名和密码替换 "<user>" 和 "<password>"。
mysql --user=<user> --password=<password> wordpress
最后,为 WordPress 应用程序创建一个数据库用户,并赋予该用户访问 wordpress 数据库的权限。
在终端中运行以下命令:
CREATE USER 'wordpress' IDENTIFIED BY 'wordpress-pass'; GRANT ALL PRIVILEGES ON wordpress.* TO wordpress; FLUSH PRIVILEGES; Exit
示例中,密码是 wordpress-pass。但我们强烈建议您使用更复杂的密码,以保护您的数据库。
记下您配置的用户名和密码,因为在下一个模块中 WordPress 设置时会用到它们。
在本模块中,您学习了如何为 Amazon RDS 数据库配置网络安全规则和密码,保护数据库安全。现在,您的 EC2 实例可以通过网络访问 Amazon RDS 数据库。此外,您还创建了一个供 WordPress 应用程序使用的数据库用户。
在下一个模块中,您将配置 EC2 实例,运行 WordPress 应用程序。