使用 Amazon RDS 部署 WordPress

模块 3

模块 3:配置 Amazon RDS 数据库

配置 Amazon RDS 数据库,允许特定的实体访问数据库

概述

您已经创建了一个 Amazon RDS 数据库和一个 EC2 实例。在此模块中,我们将配置 Amazon RDS 数据库,允许特定的实体访问该数据库。

学习目标

在本模块中,您将学习如何配置 Amazon RDS 数据库,允许特定的实体访问数据库。

 时长

15 分钟

 使用的服务

数据库安全保护

为确保数据库的安全,防止未经授权的访问,您可以使用多种策略来提高数据库的安全性。在本模块中,您将学习到其中两种策略。数据库安全保护策略:

  • 网络安全防控:拒绝来自非授权 IP 地址的流量,限制对数据库实例的访问
  • 密码身份验证与授权:只允许使用了正确用户名和密码的访问请求,限制对数据库的访问。

下面我们将逐步介绍如何实现以上安全保护策略。

操作步骤

  • 首先,修改 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(保存规则)按钮,保存更改。

  • 现在,您的 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 应用程序。

在 EC2 实例上部署 WordPress