写点什么

WordPress 基于亚马逊云的部署实践(二)

作者:王坤祥
  • 2023-11-19
    北京
  • 本文字数:2194 字

    阅读完需:约 7 分钟

WordPress 基于亚马逊云的部署实践(二)

上一篇介绍了 WordPress 基于 AWS 的部署实践的架构设计,从本节开始逐一介绍相关资源在 AWS 的申请部署。本文主要介绍云数据库的申请以及 EFS 的申请步骤。

云数据库申请

Amazon RDS for MySQL 是 AWS 提供的托管关系型数据库服务,专门为 MySQL 数据库引擎设计和优化。可用于构建可伸缩、高性能和高可用性的 MySQL 数据库解决方案,而不需要大量的数据库管理工作。它适用于各种应用程序,从小型 Web 应用程序到大规模企业级应用程序。


许多 WordPress 安装指南将用于 WordPress 的 MySQL 部署在与 WordPress 的同一台服务器上。虽然这可能足以满足初始需求,但出于以下几个原因,建议将 MySQL 数据库与 WordPress 安装到不同的服务器上:

MySQL 和 WordPress 将争用同一服务器上的计算资源,这可能会降低站点性能。

随着站点访问量突增或数据量增加,无法通过添加额外的 WordPress 服务器来横向扩展 WordPress。

需要自行负责执行所有数据库维护任务,包括数据库备份和安全升级。


在下面的步骤中,我们将使用亚马逊云科技管理控制台启动 MySQL 数据库资源。

在申请数据库之前,需要创建数据库子网组,以限定 MySQL 实例在私有子网中。数据库子网组是在 VPC 中创建并随后指定给数据库实例的子网集合。通过数据库子网组,可以在创建数据库实例时指定特定的 VPC。根据之前创建 VPC 时记录的子网信息,在添加子网区域中,选择子网所在的可用区。根据之前创建 VPC 时记录的子网信息,在选择子网下拉框中选择不同的可用区中的两个私有子网。检查相应信息,如果没有问题就可以进行资源创建,控制台可以看到创建的子网组为 wordpress-db-subnet-group。如下图所示:

数据库子网组信息


创建完子网组后,回到 RDS 控制台,开始创建和配置 RDS for MySQL 的实例。数据库实例名称定义为 wordpress-db-instance。主用户名设为 admin,密码根据复杂要求进行设定即可,建议选择安全程度高的密码以帮助保护数据库,并妥善保管并记录用户名和密码。存储选择默认配置,连接信息中指定之前设计好的 VPC 以及子网组(wordpress-db-subnet-group),安全组选择之前创建好的 default 以及 WordPress-Project (sg-04829f88acfacc055),禁止公开访问,可用区选为 cn-north-1a。数据库连接的认证方式选择密码认证。其他配置选用默认配置。检查相关信息正确,开始创建数据库实例,以下图片是相关的操作截图和配置信息。




按照架构设计,我们需要将数据库设计为读写分离。上述创建的 MySQL 实例位于 cn-north-1a 的可用区,我们已刚刚创建的实例为主节点,然后为该数据库实例创建只读副本。为减少故障对应用程序的影响,注意需要将副本放置于 cn-north-1b 可用区,其他配置信息与主节点一致。具体配置信息,参见下述截图中的内容。




最终配置完成的数据库实例信息如下:


可以看到,数据库实例的终端节点为 wordpress-db-instance.xxxxxxxxx.rds.cn-north-1.amazonaws.com.cn,该数据库后续将用于 WordPress 服务的数据库。

EFS 申请

Amazon Elastic File System(Amazon EFS)是 AWS 提供的一种云端文件存储服务。它旨在提供高可扩展性、可用性和持久性的共享文件存储解决方案,适用于多种应用程序和工作负载。EFS 提供了高度可用、高度可扩展的文件存储解决方案,使用户能够轻松地在多个 EC2 实例之间共享数据,同时确保数据的持久性和安全性。无论是处理大型数据集还是托管 Web 应用程序,EFS 都是一个强大的工具,可以满足各种不同工作负载的需求。


登录到 EFS 控制台,点击右上角的创建文件系统开始申请云存储资源。设置的名称为 wordpress-efs,其他选用默认配置,然后点击下一步进行网络配置。

VPC 选用之前创建好的 WordPress-vpc,子网按照架构图中的设计,选用 WordPress-subnet-private3-cn-north-1a 以及 WordPress-subnet-private4-cn-north-1b,安全组选用默认的 default 以及 WordPress-Project 安全组。下一步的文件系统策略使用默认配置,不做任何修改。最后检查配置信息,如果没有问题,可以进行 EFS 资源的创建,创建好的文件系统 ID 为 fs-07437cd010f664093。

资源创建完成后,可以在 EFS 控制台看到 EFS 的使用情况以及配置信息,点击右上角的连接按钮,就可以按照提示在 EC2 进行挂载配置。



EC2 服务器申请

为了方便,我们为项目中使用的实例都配置使用同样的密钥对进行远程登录,创建密钥对同样位于 EC2 控制台,见下图,我们创建的密钥对名称为 wordpress-ec2-rsa-key,注意要保存好创建后下载的 pem 文件,防止泄露。

密钥对申请

Amazon EC2 选择 T2.medium 实例类型(2 vCPU,4GB 内存),实例配置 EBS 卷大小为 40GB。其中,选用的 VPC 为 WordPress-vpc,子网为 WordPress-subnet-public1-cn-north-1a,AMI 类型选为 Amazon Linux 2023AMI。安全组选为之前创建好的 default 安全组和 WordPress-Project 安全组,密钥对使用已经创建好的 wordpress-ec2-rsa-key。确认信息无误后,点击确认创建。



当前该实例位于私有子网中,无法直接在本地通过 ssh 远程登录。为了后续方便远程登录上述两条实例进行一些操作,可以在公有子网中创建一台 EC2 Windows 实例或者 Linux 实例作为堡垒机。该堡垒机也可以用于挂在 EFS,用于访问挂载到私有子网中 EFS;如果不想通过堡垒机登录私有子网中的服务器,可以考虑使用

Session Manager 登录和管理 EC2 实例。关于这方面的内容,可以参考文档:

AWS Systems Manager Session Manager

忘记堡垒机,使用 Session Manager 登录和管理 EC2 主机


以上就是 WordPress 基于 AWS 的部署过程中云数据库、EFS 以及 EC2 的资源部署介绍。


用户头像

王坤祥

关注

日拱一卒,功不唐捐。 2017-10-17 加入

不懂热能的低温工程师不是好程序猿

评论

发布
暂无评论
WordPress 基于亚马逊云的部署实践(二)_Amazon EC2_王坤祥_InfoQ写作社区