我正在使用 Amazon Virtual Private Cloud(Amazon VPC)创建接口 VPC 端点。但是,我无法为可用区选择首选子网。为什么我无法为接口 VPC 端点选择该可用区?
简短描述
在创建接口 VPC 端点以连接 AWS PrivateLink 服务时:
- 您必须为启动弹性网络接口的相同可用区选择子网。
- 不同 AWS 账户的可用区映射可能不同。例如,子网在一个账户中映射为 us-east-1a,而在另一个账户中,它可能映射为 us-east-1c。
在您的账户中创建接口终端节点时:
- 您只能选择一个与提供商 VPC 的网络负载均衡器上启用的可用区对应的可用区。
- Amazon VPC 控制台会自动执行可用区映射。
- 如果某个可用区尚未为提供商 VPC 的网络负载均衡器启用,则会收到错误消息 Service not supported in this Availability Zone(服务在此可用区不受支持)。
解决方法
**注意:**如果您在运行 AWS 命令行界面(AWS CLI)命令时遇到错误,请确保您使用的是最新版本的 AWS CLI。
检查提供商 VPC 的网络负载均衡器上启用了哪些可用区。使用命令 describe-vpc-endpoint-services:
aws ec2 describe-vpc-endpoint-services --service-names SERVICE-NAME
例如,使用此命令来查看已启用的可用区:
aws ec2 describe-vpc-endpoint-services --service-names com.amazonaws.vpce.us-east-1.vpce-svc-xxxxxxxxxx
在此示例中,输出显示您可以选择 us-east-1b 子网:
{
"ServiceDetails": [
.............................
"ServiceName": " com.amazonaws.vpce.us-east-1.vpce-svc-xxxxxxxxxx ",
"VpcEndpointPolicySupported": false,
"Owner": "##########",
"AvailabilityZones": [
"us-east-1b"
],
..............................
}
此输出会映射到正在运行命令的 AWS 账户的值。因此,即使服务提供商账户和服务使用者账户位于不同的可用区,也都能运行上述命令。对于使用者账户,请确保允许将这些账户作为端点服务上的 AWS 主体。
相关信息
通过 AWS PrivateLink 共享您的服务