亚马逊AWS官方博客
使用 Amazon Lightsail 容器启动 WordPress 网站
这篇博文由担任 Partner Solutions Architect 的 Benjamin Gardiner 撰写。
Amazon Lightsail 是有助于用户熟悉 AWS 的好方法。Lightsail 简化了实例、数据库、负载均衡器、CDN 的部署,现在,它还简化了容器的部署。在这篇博文中,我将展示使用 Lightsail 容器和 Lightsail 数据库启动 WordPress 网站是多么容易。我将只使用 Lightsail 控制台,因此整个过程中都无需编写代码。
产品概述
与虚拟机相比,容器具有诸多优势。例如,容器需要的系统资源比虚拟机少,而且属于轻量型解决方案,可以快速部署和扩缩。它们还可以轻松部署在不同的操作系统上,从而简化了应用程序开发。
但容器仍然可能过于复杂,特别是对于那些云经验有限或只运行几个容器的用户而言。而且容器可能会带来大量开销。诸如 Amazon Elastic Container Service(Amazon ECS)和Amazon Elastic Kubernetes Service(Amazon EKS)之类的工具使容器的编排、管理和运维变得更加轻松。但是,如果您只运行几个容器,这些工具可能并不是您的最佳解决方案。
Lightsail 容器为这类用户提供了解决方案。Lightsail 的好处是易于使用。Lightsail 在后台由 Amazon Elastic Compute Cloud(EC2)、Amazon Relational Database Service(RDS)、应用程序负载均衡器和其他 AWS 服务提供支持。这使它具有与其他 AWS 服务相同级别的安全性、可靠性和可扩展性。因此,如果您正在寻找一种简单易用的容器服务,那么 Amazon Lightsail 容器是不错的选择。
Lightsail 的另一个优势是定价可预测且易于理解。运行容器和数据库的每月价格是固定的,具体取决于您选择的 vCPU/内存和存储。所有定价信息均可在 Lightsail 定价页面上找到。
如果随着您的发展,Lightsail 容器不再能够满足您的需求,您可以轻松将容器部署到 Amazon ECS 或 Amazon EKS。您在这两个服务上使用的容器与在 Lightsail 上运行的容器相同。
解决方案概览
只要完成以下步骤,就可以让您的 WordPress 网站启动并运行了。总的来说,您需要使用在 Lightsail 容器上运行的官方 WordPress Docker 容器映像启动一个 WordPress 网站,并且需要创建一个 Lightsail 数据库。您可以通过 Lightsail 控制台完成所有这些操作,无需任何编写代码的经验。
以下是我将在这篇博文中介绍的步骤:
- 在 Lightsail 控制台中创建数据库。WordPress 使用数据库来存储帖子、用户、电子邮件等。
- 使用 WordPress 官方容器启动 WordPress 网站
- 将容器服务部署到 Lightsail
- 为数据库配置容器服务
- 清理和后续步骤
下图表示按照本博文介绍的步骤操作后,将得到的最终环境。
现在,您已经了解了本博文接下来将详述的步骤,我们就开始吧。
创建 Amazon Lightsail 数据库
导航到 Lightsail 控制台,然后选择数据库选项卡。选择创建数据库。下图显示了 Lightsail 控制台中用于创建数据库的选项卡的屏幕截图。
接下来,对于数据库类型,选择 MySQL。WordPress 不支持 PostgreSQL,这就是您要使用 MySQL 的原因。设置数据库用户名和密码,并记下来,因为稍后在设置容器时需要用到。对于数据库类型,选择最新版本的 MySQL,因为它具有最新的安全功能和其他最新功能。
创建密码后,设置数据库名称。我将使用名称 dbwordpress。在稍后的设置中,您需要用到该数据库名称。
您可以自定义数据库计划,以确保它适合您的工作负载需求。您可以选择“标准”或“高可用性”,然后根据实例的处理能力(vCPU 和 RAM)选择实例。“高可用性”选项确保您的数据库在多个可用区中运行。如果其中一个可用区发生故障,您的数据库将在另一个可用区中保持可用。在这篇博文中,我创建的是一个简单的 WordPress 网站,不需要高可用性。因此,我选择“标准”,这可以降低成本。
对于处理能力,我选择 1 个 vCPU 和 1 GB RAM。我预计这个数据库的负载不会很高,而且以后我可以随时回来提高处理能力。处理能力和可用性选项会影响 AWS 的每月定价。当我选择不同可用性和处理能力时,每月定价会随之调整。
在创建数据库之前,要为数据库指定一个名称以对其进行标识。然后,选择创建数据库。
单击创建数据库后,等待其完成创建,然后再继续设置容器。数据库需要几分钟才能完成创建并可供使用。当数据库的颜色从灰色变为蓝色,并且正在创建消息消失时,就表明数据库已启动并且正在运行。
使用 Amazon Lightsail 容器部署容器
现在,您的 Lightsail 数据库已准备就绪,可供使用。下一步是使用 Lightsail 容器部署 WordPress 容器。在 Lightsail 控制台中,选择容器选项卡,然后选择创建容器服务。以下屏幕截图显示了控制台中的相应界面。
如以下屏幕截图所示,选择您希望应用程序使用的容器节点的大小(vCPU 和内存)。此外,您可以为了实现高可用性和/或可扩展性,选择要运行的容器节点数量。您以后可以随时回来,更改容器的数量或处理能力(vCPU 和 RAM),而不会中断您的服务。容器的数量和处理能力都会影响 AWS 每月定价。价格会根据您所做的选择调整。
对于这个应用程序,我选择了“微型”捆绑包和 1 个节点。我预计我的 WordPress 容器所需的资源不会超过 1 GB RAM 和 0.25 个 vCPU。此捆绑包也符合免费套餐资格。
在下图中,您可以看到容器服务容量选项。这些也是部署选项。我将在这里指定容器名称、容器映像、环境变量和端口。对于“容器名称”,我输入的是“wordpress”。对于“映像”,我使用的是 Docker Hub 上找到的官方 Docker WordPress 映像:wordpress:5.6.0。在 WordPress Docker Hub 页面上,还可以找到有关此映像的更多信息,例如将 WordPress 连接到我的数据库时必须使用的环境变量。然后,还要指定数据库主机名、数据库用户、数据库密码和数据库名称。此外,还要打开端口 80,这样才可以通过互联网访问我的 WordPress 网站。
数据库主机名、数据库用户、数据库密码和数据库名称可在 Lightsail 数据库的信息页面上找到。我也在上一步中记下了用户名和密码。
指定环境变量后,要确保有用于访问容器的公有终端节点。这样才可以通过互联网访问您的 WordPress 网站。最后,为我的服务命名,然后选择创建容器服务。
容器部署完成后,您可以使用 Web 浏览器访问公共域并查看您的 WordPress 网站。在网站上,您可以按照 WordPress 的设置说明来设置您的 WordPress 网站。现在,您让一个带有 Lightsail 数据库的容器化 WordPress 网站启动并运行起来了。
在下一部分中,我将清理资源,以免产生任何额外费用。
清理和后续步骤
现在,您应该清理 Lightsail 容器部署和 Lightsail 数据库,这样您的 AWS 账单上就不会产生任何额外的费用。 首先删除 Lightsail 容器部署。
在 Lightsail 控制台中,转到“容器”选项卡,然后选择您创建的容器部署。这将打开 Lightsail 容器部署信息页面。在这里,您可以通过选择三点图标来删除容器部署。选择删除。在两次确认要删除 Lightsail 容器部署后,该容器部署即会成功删除。
接下来,转到 Lightsail 的“数据库”选项卡以删除 Lightsail 数据库。选择您创建的 WordPress 数据库。在接下来的页面上,单击删除选项卡,选择删除数据库。确认您要删除数据库。您的 Lightsail 数据库现已删除。
现在,您之前创建的所有 Lightsail 资源都已删除。
结论
接下来,您可以做些什么呢?以下是我的一些建议。您可以探索其他 Lightsail 服务,例如 Amazon Lightsail 内容分发。使用 Lightsail 分配为您的 WordPress 网站设置内容分发网络。
您也可以使用 Amazon Route 53 注册域名并将其指向您的 Lightsail 容器的公共域。这将使其他人更容易浏览您的网站。如果您已经在第三方注册了域名,或者想使用像 GoDaddy 这样的第三方,则可以使用它们的域名来指向您的网站,而不必使用 Amazon Route 53。
您还可以尝试在 Lightsail 容器上运行其他公开可用的 Docker 容器映像,例如:Drupal、Joomla 和 Magento。
您也可以创建自己的容器并使用 Lightsail 启动它。博文《Lightsail Containers: An Easy Way to Run your Containers in the Cloud》介绍了如何在 Lightsail 容器上进行简单 Python Web 应用程序的创建和启动。
在本博文中,我展示了使用 Amazon Lightsail 容器和 Lightsail 数据库创建网站是多么容易。我在几分钟内创建了一个数据库并启动了一个容器。
希望我的介绍让您感受到了 Amazon Lightsail 容器的灵活性以及容器世界的精彩。