App Runner 架构和概念 - AWS App Runner

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

App Runner 架构和概念

AWS App Runner 从存储库中获取源代码或源图像,并在中为您创建和维护正在运行的 Web 服务 AWS Cloud。通常,您只需要调用一个 App Runner 操作即可创建您的服务。CreateService

使用源映像存储库,您可以提供一个 ready-to-use 容器镜像,App Runner 可以部署该镜像来运行您的 Web 服务。使用源代码存储库,您可以提供用于构建和运行 Web 服务的代码和说明,并以特定的运行时环境为目标。App Runner 支持多个编程平台,每个平台都有一个或多个平台主要版本的托管运行时。

此时,App Runner 可以从 Bitbucket 或存储GitHub库中检索您的源代码,也可以从您的 Amazon Elastic Con tainer Registry (Amazon ECR) Re gistry 中检索您的源图像。 AWS 账户

下图显示了 App Runner 服务架构的概述。在图中,有两个示例服务:一种部署来自 Amazon ECR 的源代码 GitHub,另一种部署来自 Amazon ECR 的源映像。同样的流程也适用于 Bitbucket 存储库。

App Runner 架构

应用程序运行器概念

以下是与 App Runner 中运行的 Web 服务相关的关键概念:

  • App Runner 服务 — App Runner 用于根据源代码存储库或容器映像部署和管理应用程序的 AWS 资源。App Runner 服务是应用程序的运行版本。有关创建服务的更多信息,请参阅创建 App Runner 服务

  • 源类型-您为部署 App Runner 服务提供的源存储库类型:源代码源图像

  • 存储库提供商-包含您的应用程序源(例如 Bitbucket 或 Amazon ECR)的存储库服务。GitHub

  • App Runner 连接 — 一种 AWS 资源,允许 App Runner 访问存储库提供商帐户(例如, GitHub 账户或组织)。有关连接的更多信息,请参阅管理 App Runner 连接

  • 运行时 — 用于部署源代码存储库的基础镜像。App Runner 为不同的编程平台和版本提供了各种托管运行时。有关更多信息,请参阅 基于源代码的 App Runner 服务

  • 部署-将源存储库的某个版本(代码或图像)应用于 App Runner 服务的操作。服务的首次部署是在创建服务时进行的。以后的部署可以通过以下两种方式之一进行:

    • 自动部署 — CI/CD 功能。您可以将 App Runner 服务配置为按照存储库中显示的应用程序的每个版本自动构建(对于源代码)和部署。这可以是源代码存储库中的新提交,也可以是源图像存储库中的新图像版本。

    • 手动部署 — 您明确启动的 App Runner 服务部署。

  • 自定义域 — 您与 App Runner 服务关联的域名。您的 Web 应用程序的用户可以使用此域而不是默认的 App Runner 子域来访问您的 Web 服务。有关更多信息,请参阅 管理 App Runner 服务的自定义域名

    注意

    为了增强 App Runner 应用程序的安全性,*.awsapprunner.com 域已在公共后缀列表 (PSL) 中注册。为了进一步提高安全性,如果您需要在 App Runner 应用程序的默认域名中设置敏感 Cookie,我们建议您使用带__Host-前缀的 Cookie。这将有助于保护您的域,防范跨站点请求伪造 (CSRF) 攻击。要了解更多信息,请参阅 Mozilla 开发者网络中的 Set-Cookie 页面。

  • 维护 — App Runner 偶尔会在运行 App Runner 服务的基础架构上执行的活动。维护进行时,服务状态会暂时更改为OPERATION_IN_PROGRESS(控制台中正在进行操作),持续几分钟。在此期间,您的服务上的操作(例如部署、配置更新、暂停/恢复或删除)将被阻止。几分钟后,当服务状态恢复为时,请重试该操作RUNNING

    注意

    如果您的操作失败,并不意味着您的 App Runner 服务已关闭。您的应用程序处于活动状态,并且会继续处理请求。您的服务不太可能遇到任何停机时间。

    特别是,如果 App Runner 检测到托管服务的底层硬件存在问题,它就会迁移您的服务。为了防止任何服务停机,App Runner 会将您的服务部署到一组新的实例,并将流量转移到这些实例(蓝绿色部署)。您可能偶尔会看到费用略有暂时增加。

App Runner 支持的配置

配置 App Runner 服务时,需要指定要分配给服务的虚拟 CPU 和内存配置。您需要根据您选择的计算配置付费。有关定价的更多信息,请参阅 AWS Resource Groups 定价

下表提供了有关 App Runner 支持的 vCPU 和内存配置的信息:

CPU 内存

0.25 个 vCPU

0.5 GB

0.25 个 vCPU

1 GB

0.5 个 vCPU

1 GB

1 个 vCPU

2 GB

1 个 vCPU

3 GB

1 个 vCPU

4 GB

2 个 vCPU

4 GB

2 个 vCPU

6 GB

4 个 vCPU

8 GB

4 个 vCPU

10 GB

4 个 vCPU

12 GB

应用程序运行器资源

使用 App Runner 时,可以在中创建和管理几种类型的资源 AWS 账户。这些资源用于访问您的代码和管理您的服务。

下表概述了这些资源:

资源名称 描述

Service

表示应用程序的运行版本。本指南的其余大部分内容描述了服务类型、管理、配置和监控。

ARN:arn:aws:apprunner:region:account-id:service/service-name[/service-id]

Connection

为您的 App Runner 服务提供对存储在第三方提供商处的私有存储库的访问权限。作为单独的资源存在,用于在多个服务之间共享。有关连接的更多信息,请参阅管理 App Runner 连接

ARN:arn:aws:apprunner:region:account-id:connection/connection-name[/connection-id]

AutoScalingConfiguration

为您的 App Runner 服务提供用于控制应用程序自动缩放的设置。作为单独的资源存在,用于在多个服务之间共享。有关自动扩展的更多信息,请参阅管理 App Runner 自动缩放

ARN:arn:aws:apprunner:region:account-id:autoscalingconfiguration/config-name[/config-revision[/config-id]]

ObservabilityConfiguration

为您的 App Runner 服务配置其他应用程序可观察性功能。作为单独的资源存在,用于在多个服务之间共享。有关可观测性配置的更多信息,请参阅为您的服务配置可观测性

ARN:arn:aws:apprunner:region:account-id:observabilityconfiguration/config-name[/config-revision[/config-id]]

VpcConnector

为您的 App Runner 服务配置 VPC 设置。作为单独的资源存在,用于在多个服务之间共享。有关 VPC 功能的更多信息,请参阅为出站流量启用 VPC 访问权限

ARN:arn:aws:apprunner:region:account-id:vpcconnector/connector-name[/connector-revision[/connector-id]]

VpcIngressConnection

它是一种用于配置传入流量的 AWS App Runner 资源。它在 VPC 接口终端节点和 App Runner 服务之间建立连接,使您的 App Runner 服务只能从 Amazon VPC 中访问。有关 VPC 功能的更多信息IngressConnection,请参阅为传入流量启用私有端点

ARN:arn:aws:apprunner:region:account-id:vpcingressconnection/vpc-ingress-connection-name[/connector-id]]

应用程序运行器资源配额

AWS 对每个 AWS 区域账户中的 AWS 资源使用施加一些配额(也称为限制)。下表列出了与 App Runner 资源相关的配额。配额也列在AWS App Runner 终端节点中,配额列在中AWS 一般参考

资源配额 描述 默认值 可调节?

Services

您可以在账户中为每项服务创建的最大数量 AWS 区域。

30

Connections

您可以在账户中为每个连接创建的最大连接数 AWS 区域。您可以将单个连接用于多个服务。

10

Auto scaling configurations

名字

您在账户中为每个名称创建的 auto Scaling 配置中可以拥有的最大唯一名称数 AWS 区域。您可以将单个自动扩展配置用于多个服务。

10

每个名字的修订次数

您可以在账户中为每个 AWS 区域 唯一名称创建的 auto Scaling 配置修订的最大数量。您可以在多个服务中使用单个 auto Scaling 配置修订版。

5

Observability configurations

名字

在账户中为每个 AWS 区域可观测性配置创建的唯一名称的最大数量。您可以将单个可观察性配置用于多个服务。

10

每个名字的修订次数

您可以在账户中为每个 AWS 区域 唯一名称创建的可观测性配置修订的最大数量。您可以在多个服务中使用单个可观测性配置修订版。

10

VPC connectors

您可以在账户中为每个连接器创建的最大 VPC 连接器数量 AWS 区域。您可以将单个 VPC 连接器用于多个服务。

10

VPC Ingress Connection

您可以在账户中为每 AWS 区域个 VPC 入口连接创建的最大数量。您可以使用单个 VPC 入口连接来访问多个 App Runner 服务。

1

大多数配额都是可调整的,您可以申请增加配额。有关更多信息,请参阅《Service Quotas 用户指南》中的请求增加配额