Amazon Lightsail 的容器服务 - Amazon Lightsail

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Lightsail 的容器服务

Amazon Lightsail 容器服务是一种高度可扩展的计算和联网资源,您可以在其中部署、运行和管理容器。容器是将代码和依赖关系打包在一起的软件标准单位,这样应用程序就可以从一个计算环境快速可靠地转到另一个计算环境运行。

您可以将 Lightsail 容器服务视为一种计算环境,通过使用您在本地计算机上创建并推送到服务的映像或来自线上存储库(如 Amazon ECR Public Gallery)的映像,从而能够在 AWS 基础设施上运行容器。

您还可以通过安装诸如 Docker 之类的软件,在本地计算机上本地运行容器。Amazon Elastic Container Service(Amazon ECS)和 Amazon Elastic Compute Cloud(Amazon EC2)是您可以在其上运行容器的 AWS 基础设施中的其他资源。有关更多信息,请参阅 Amazon ECS 开发人员指南

内容

容器

容器是将代码和依赖关系打包在一起的软件标准单位,这样应用程序就可以从一个计算环境快速可靠地转到另一个计算环境运行。您可以在开发环境中运行容器,将其部署到预生产环境中,然后将其部署到生产环境中。无论您的开发环境是本地机器、预生产环境是数据中心中的物理服务器,抑或您的生产环境是云端的虚拟私有服务器,您的容器都可以可靠地运行。

容器镜像是一种轻型、独立、可执行的软件包,其中包括运行应用程序所需的一切:代码、运行时、系统工具、系统库和设置。容器镜像在运行时成为容器。通过对应用程序及其依赖关系进行容器化,您不再需要担心软件是否在部署软件的操作系统和基础设施中正确运行 — 这样就可以腾出更多的时间来关注代码本身。

有关容器和容器镜像的更多信息,请参阅中的 Docker 文档中的什么是容器?

Lightsail 容器服务元素

下面是您在开始使用 Lightsail 容器服务前应了解的一些重要方面。

Lightsail 容器服务

容器服务是您可以在任何 AWS 区域(其中 Lightsail 可用)中创建的 Lightsail 计算资源。您可以随时创建和删除容器服务。有关更多信息,请参阅创建 Lightsail 容器服务删除 Lightsail 容器服务

Lightsail 容器服务图

容器服务容量(规模和功率)

首次创建容器服务时,必须选择以下容量参数:

  • 规模 — 要在其中运行容器工作负载的计算节点数。您的容器工作负载会在服务的计算节点间复制。最多可以为容器服务指定 20 个计算节点。可以根据您要为服务提供支持的节点数量来选择规模,以实现更高的可用性和更高的容量。容器的流量将在所有节点之间实现负载平衡。

  • 功率 — 容器服务中每个节点的内存和 vCPU。您可以选择的功率级别包括毫微 (Na)、微 (Mi)、小(Sm)、中(Md)、大 (Lg) 和加大 (Xl),内存和 vCPU 数量逐级上升。

如果将容器服务的规模指定为大于 1,则容器工作负载将在服务的多个计算节点间复制。例如,如果您的服务规模为 3,功率为 Na,则在三个计算资源上运行容器工作负载的三个副本,每个资源具有 512 MB RAM 和 0.25 vCPU。传入流量在三个资源之间进行负载平衡。您为容器服务指定的容量越大,它能够处理的流量就越多。

如果您发现容器服务配置不够,您可以随时动态增加容器服务的功率和规模,而无需任何停机时间;如果您发现容器服务过度配置,则可以减少容器服务的功率和规模。Lightsail 会根据您当前的部署自动管理容量变化。有关更多信息,请参阅更改容器服务的容量

定价

容器服务的每月价格是通过将其功率价格乘以其计算节点的数量(您的服务规模)来计算的。例如,中功率(价格为 40 美元)且规模为 3 个计算节点的服务每月的费用将为 120 美元。无论您的容器服务是否启用,以及是否有部署,您都需要为容器服务付费。必须删除您的容器服务才能停止向您收费。

每个容器服务(无论其配置的容量是多少)都包含 500 GB 的月度数据传输配额。无论为服务选择什么功率和规模,数据传输配额都不会改变。如果传输到互联网的数据超出配额,将导致超额费用,该费用因 AWS 区域 而异,起始价为每 GB 0.09 美元。从互联网传入的数据超出配额不会产生超额费用。有关更多信息,请参阅 Lightsail 价格页面

部署

您可以在您的 Lightsail 容器服务中创建部署。部署是您要在服务上启动的容器工作负载的一组规范。

您可以为部署中的每个容器条目指定以下参数:

  • 要启动的容器名称

  • 用于容器的源容器镜像

  • 启动容器时运行的命令

  • 应用于容器的环境变量

  • 要在容器上打开的网络端口

  • 部署中允许通过容器服务的默认域公开访问的容器

    注意

    对于每个容器服务,一个部署中只能有一个容器可以设为公开访问。

启动部署后,将会对部署的公有中断节点应用以下运行状况检查参数:

  • 执行运行状况检查的目录路径。

  • 高级运行状况检查设置,例如间隔(秒)、超时(秒)、成功代码、运行状况阈值和不正常阈值。

您的容器服务一次可以有一个活动部署,一个部署最多可以有 10 个容器条目。您可以在创建容器服务的同时创建部署,也可以在服务启动并运行后创建部署。有关更多信息,请参阅创建和管理容器服务的部署

部署版本

您在容器服务中创建的每个部署都会保存为一个部署版本。如果修改现有部署的参数,则会将容器重新部署到您的服务中,并且修改后的部署将生成一个新的部署版本。将保存每个容器服务最近的 50 个部署版本。您可以在同一容器服务中使用 50 个部署版本中的任何一个创建新部署。有关更多信息,请参阅创建和管理容器服务的部署

容器镜像源

创建部署时,必须为部署中的每个容器条目指定源容器镜像。创建部署后,容器服务将从指定的源中提取镜像,并使用它们来创建容器。

您指定的镜像可以来自以下源:

  • 公有注册表,如 Amazon ECR Public Gallery 或其他一些公有容器映像注册表。有关 Amazon ECR Public 的更多信息,请参阅《Amazon ECR Public User Guide》中的 What Is Amazon Elastic Container Registry Public?

  • 从本地机器推送到容器服务的镜像。如果您在本地计算机上创建容器镜像,则可以将它们推送到容器服务,以便在创建部署时使用它们。有关更多信息,请参阅创建容器服务映像推送和管理容器映像

Lightsail 容器服务支持 Linux 容器镜像。目前不支持基于 Windows 的容器映像,但您可以在 Windows 上运行 Docker、AWS Command Line Interface(AWS CLI)和 Lightsail 控制(lightsailctl)插件,以构建基于 Linux 的映像并将其推送到 Lightsail 容器服务。

公有端点和默认域

创建部署时,可以在部署中指定容器条目,该条目将用作容器服务的公有端点。公有端点容器上的应用程序可通过随机生成的容器服务默认域在互联网上公开访问。默认域的格式为 https://<ServiceName>.<RandomGUID>.<AWSRegion>.cs.amazonlightsail.com,其中 <ServiceName> 是容器服务的名称,<RandomGUID> 是您的 Lightsail 账户在 AWS 区域 中随机生成的容器服务的全局唯一标识符,<AWSRegion> 是创建容器服务的 AWS 区域。Lightsail 容器服务的公有端点仅支持 HTTPS,而不支持 TCP 或 UDP 流量。只有一个容器可作为服务的公有端点。因此,请确保选择托管应用程序前端的容器作为公有端点,而其余容器则可以内部访问。

您可以使用容器服务的默认域,也可以使用您自己的自定义域(已注册的域名)。有关将自定义域与容器服务结合使用的更多信息,请参阅启用和管理容器服务的自定义域

私有域

所有容器服务还有一个私有域,格式为 <ServiceName>.service.local, 其中 <ServiceName> 是容器服务的名称。使用私有域可以从与您的服务位于同一亚马逊云科技区域的另一个 Lightsail 资源访问您的容器服务。如果您没有在服务部署中指定公有端点,则私有域是访问您的容器服务的唯一方式。即使您没有指定公有端点,也会为您的容器服务生成默认域,但会在您尝试浏览它时显示 404 No Such Service 错误消息。

要使用容器服务的私有域访问特定容器,必须指定接受连接请求的容器开放端口。请求的域可以使用的格式为 <ServiceName>.service.local:<PortNumber>, 其中 <ServiceName> 是容器服务的名称,<PortNumber> 是要连接到的容器开放端口。例如,如果您在名为 container-service-1 的容器服务上创建一个部署,并指定具有开放端口 6379 的 Redis 容器,那么您请求的域应使用格式 container-service-1.service.local:6379

自定义域和 SSL/TLS 证书

您最多可以在容器服务中使用 4 个自定义域,而不使用默认域。例如,您可以将自定义域(例如 example.com)的流量引导到部署中标记为公有端点的容器。

要将自定义域与服务一起使用,必须先为要使用的域请求 SSL/TLS 证书。然后,您必须通过向域的 DNS 添加一组别名记录来验证 SSL/TLS 证书。验证 SSL/TLS 证书后,您可以通过将有效的 SSL/TLS 证书附加到您的服务,在您的容器服务中启用自定义域。有关更多信息,请参阅创建 Lightsail 容器服务的 SSL/TLS 证书验证 Lightsail 容器服务的 SSL/TLS 证书启用和管理 Lightsail 容器服务的自定义域

容器日志

容器服务中的每个容器都会生成一个日志,您可以访问该日志来诊断容器的操作。这些的日志信息包括在容器内运行的 stdoutstderr 进程流。有关更多信息,请参阅查看容器服务日志

指标

监控容器服务的指标,以诊断可能由于过度使用而导致的问题。您还可以对指标进行监控,来帮助您确定服务是配置不足还是过度配置。有关更多信息,请参阅查看容器服务指标

使用 Lightsail 容器服务

如果您计划将容器镜像从本地机器推送到您的服务并在部署中使用,则可以执行以下一般步骤来管理您的 Lightsail 容器服务:

  1. 在您的 Lightsail 账户中创建容器服务。有关更多信息,请参阅创建 Lightsail 容器服务

  2. 在本地机器上安装软件,您需要创建自己的容器镜像并将其推送到 Lightsail 容器服务。有关更多信息,请参阅以下指南:

  3. 在配置和启动容器的容器服务中创建部署。有关更多信息,请参阅创建和管理 Lightsail 容器服务的部署

  4. 查看之前的容器服务部署。您可以使用之前的部署版本来创建新的部署。有关更多信息,请参阅查看和管理 Lightsail 容器服务的部署版本

  5. 查看容器服务的容器日志。有关更多信息,请参阅查看 Lightsail 容器服务的容器日志

  6. 为要与容器搭配使用的域创建 SSL/TLS 证书。有关更多信息,请参阅创建 Lightsail 容器服务的 SSL/TLS 证书

  7. 通过向域的 DNS 添加记录来验证 SSL/TLS 证书。有关更多信息,请参阅验证 Lightsail 容器服务的 SSL/TLS 证书

  8. 通过将有效的 SSL/TLS 证书附加到容器服务启用自定义域。有关更多信息,请参阅启用和管理 Lightsail 容器服务的自定义域

  9. 监控容器服务的利用率指标。有关更多信息,请参阅查看容器服务指标

  10. (可选)通过提高容器服务的指定功率来纵向扩展容量,以及通过提高其指定的规模来横向扩展容量。有关更多信息,请参阅更改 Lightsail 容器服务的容量

  11. 如果未在使用容器服务,请将其删除,以免每月产生费用。有关更多信息,请参阅删除 Lightsail 容器服务

如果您计划在部署中使用公有注册表中的容器映像,请执行以下一般步骤来管理您的 Lightsail 容器服务:

  1. 在您的 Lightsail 账户中创建容器服务。有关更多信息,请参阅创建 Lightsail 容器服务

  2. 如果您计划使用来自公有注册表的容器映像,请从 Amazon ECR Public Gallery 等公有注册表中查找容器映像。有关 Amazon ECR Public 的更多信息,请参阅《Amazon ECR Public User Guide》中的 What Is Amazon Elastic Container Registry Public?

  3. 在配置和启动容器的容器服务中创建部署。有关更多信息,请参阅创建和管理 Lightsail 容器服务的部署

  4. 查看之前的容器服务部署。您可以使用之前的部署版本来创建新的部署。有关更多信息,请参阅查看和管理 Lightsail 容器服务的部署版本

  5. 查看容器服务的容器日志。有关更多信息,请参阅查看 Lightsail 容器服务的容器日志

  6. 为要与容器搭配使用的域创建 SSL/TLS 证书。有关更多信息,请参阅创建 Lightsail 容器服务的 SSL/TLS 证书

  7. 通过向域的 DNS 添加记录来验证 SSL/TLS 证书。有关更多信息,请参阅验证 Lightsail 容器服务的 SSL/TLS 证书

  8. 通过将有效的 SSL/TLS 证书附加到容器服务启用自定义域。有关更多信息,请参阅启用和管理 Lightsail 容器服务的自定义域

  9. 监控容器服务的利用率指标。有关更多信息,请参阅查看容器服务指标

  10. (可选)通过提高容器服务的指定功率来纵向扩展容量,以及通过提高其指定的规模来横向扩展容量。有关更多信息,请参阅更改 Lightsail 容器服务的容量

  11. 如果未在使用容器服务,请将其删除,以免每月产生费用。有关更多信息,请参阅删除 Lightsail 容器服务