本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为公共传入流量启用 IPv6
如果您希望您的服务接收来自 IPv6 地址或 IPv4 和 IPv6 地址的传入网络流量,请为公共终端节点选择双栈地址类型。创建新应用程序时,可以在配置服务 > 网络部分下找到此设置。有关如何使用 App Runner 控制台或 App Runner API 启用 IPv6 的更多信息,请参阅管理公共传入流量的双堆栈。
有关在上采用 IPv6 的更多信息 AWS,请参阅开启 IPv6 AWS。
App Runner 仅支持公共 App Runner 服务端点的双堆栈。对于所有 App Runner 私有服务,仅支持 IPv4。
注意
当您将 IP 地址类型设置为双堆栈并将网络配置从公共端点更改为私有端点时,App Runner 会自动将您的地址类型更改为 IPv4。这是因为 App Runner 仅支持公共端点的 IPv6。
了解有关 IPv4 与 IPv6 的背景信息
IPv4 网络层通常用于通过互联网路由网络流量,它使用 32 位地址方案。此地址空间有限,使用大量网络设备可能会耗尽。因此,网络地址转换 (NAT) 通常用于通过单个公共网络地址路由多个 IPv4 地址。
IPv6 是互联网协议的最新版本,它以 IPv4 为基础,采用 128 位寻址方案扩展了地址空间。使用 IPv6,您可以构建连接设备数量几乎不受限制的网络。由于网络地址数量庞大,IPv6 不需要 NAT。
IPv4 和 IPv6 端点彼此不兼容,因为 IPv4 端点无法接收传入的 IPv6 流量,反之亦然。双堆栈提供了一种便捷的解决方案,可以同时支持 IPv4 和 IPv6 网络流量。
管理公共传入流量的双堆栈
使用以下方法之一管理公共传入流量的双栈地址类型:
应用程序运行器控制台
当你使用 App Runner 控制台创建服务时,或者稍后更新服务配置时,你可以为传入的互联网流量选择双栈地址类型。
要启用双栈地址,请键入
注意
目前,App Runner 仅支持公共端点的 IPv6。托管在亚马逊虚拟私有云(亚马逊 VPC)中的 App Runner 服务不支持 IPv6 终端节点。如果您将使用双栈公共终端节点的服务更新为私有终端节点,则您的 App Runner 服务将默认仅支持来自 IPv4 端点的流量,并且无法接收来自 IPv6 端点的流量。
更改地址类型
-
按照步骤更新服务并导航到 “网络”。
-
导航到传入网络流量下的公共端点 IP 地址类型,然后选择所需的地址类型。
选择保存更改。您的服务已根据您的选择进行更新。
应用程序运行器 API 或 AWS CLI
当您调用CreateService或 UpdateServiceApp Runner API 操作时,请使用NetworkConfiguration
参数的IpAddressType
成员来指定地址类型。您可以指定的支持的值为IPv4
和DUAL_STACK
。指定DUAL_STACK
是否希望您的服务接收来自 IPv4 和 IPv6 端点的互联网流量。如果您未为指定任何值IpAddressType
,则默认情况下将应用 IPv4。
以下是创建以双堆栈作为 IP 地址的服务的示例。此示例调用一个input.json
文件。
例 请求创建支持双堆栈的服务
aws apprunner create-service \ --cli-input-json file://input.json
例 input.json
的内容
{ "ServiceName": "example-service", "SourceConfiguration": { "ImageRepository": { "ImageIdentifier": "public.ecr.aws/aws-containers/hello-app-runner:latest", "ImageConfiguration": { "Port": "8000" }, "ImageRepositoryType": "ECR_PUBLIC" }, "NetworkConfiguration": { "IpAddressType":
"DUAL_STACK"
} } }
例 响应
{ "Service": { "ServiceName": "example-service", "ServiceId": "
<service-id>
", "ServiceArn": "arn:aws:apprunner:us-east-2:123456789012:service/example-service/<service-id>
", "ServiceUrl": "1234567890.us-east-2.awsapprunner.com", "CreatedAt": "2023-10-16T12:30:51.724000-04:00", "UpdatedAt": "2023-10-16T12:30:51.724000-04:00", "Status": "OPERATION_IN_PROGRESS", "SourceConfiguration": { "ImageRepository": { "ImageIdentifier": "public.ecr.aws/aws-containers/hello-app-runner:latest", "ImageConfiguration": { "Port": "8000" }, "ImageRepositoryType": "ECR_PUBLIC" }, "AutoDeploymentsEnabled": false }, "InstanceConfiguration": { "Cpu": "1024", "Memory": "2048" }, "HealthCheckConfiguration": { "Protocol": "TCP", "Path": "/", "Interval": 5, "Timeout": 2, "HealthyThreshold": 1, "UnhealthyThreshold": 5 }, "AutoScalingConfigurationSummary": { "AutoScalingConfigurationArn": "arn:aws:apprunner:us-east-2:123456789012:autoscalingconfiguration/DefaultConfiguration/1/00000000000000000000000000000001", "AutoScalingConfigurationName": "DefaultConfiguration", "AutoScalingConfigurationRevision": 1 }, "NetworkConfiguration": { "IpAddressType": "DUAL_STACK", "EgressConfiguration": { "EgressType": "DEFAULT" }, "IngressConfiguration": { "IsPubliclyAccessible": true } } }, "OperationId": "24bd100b1e111ae1a1f0e1115c4f11de" }
注意
目前,App Runner 仅支持公共端点的 IPv6。托管在亚马逊虚拟私有云(亚马逊 VPC)中的 App Runner 服务不支持 IPv6 终端节点。如果您将使用双栈公共终端节点的服务更新为私有终端节点,则您的 App Runner 服务将默认仅支持来自 IPv4 端点的流量,并且无法接收来自 IPv6 端点的流量。
有关 API 参数的更多信息,请参阅NetworkConfiguration。