Usei uma Amazon Virtual Private Cloud (Amazon VPC) para criar um endpoint de interface da VPC. Porém, não consigo selecionar minha sub-rede de preferência para a zona de disponibilidade.
Breve descrição
Ao criar um endpoint de interface da VPC para se conectar aos serviços do AWS PrivateLink, você pode receber este erro:
"Error: The VPC endpoint service com.amazonaws.vpce.us-east-1.vpce-svc-xxxx does not support the Availability Zone of the subnet: subnet-xxxx."
Esse erro pode ocorrer quando uma zona de disponibilidade não está ativada para o Network Load Balancer da VPC do provedor de serviços.
Ao criar um endpoint de interface da VPC, siga estas práticas recomendadas:
- Quando um consumidor de serviços cria e recupera informações de serviço de endpoint, ele pode ver somente as zonas de disponibilidade que são comuns ao provedor de serviços.
- Um ID de zona de disponibilidade (AZ) é um identificador exclusivo e consistente de uma zona de disponibilidade em todas as contas da AWS.
- O mapeamento de zonas de disponibilidade pode ser diferente entre contas da AWS. Por exemplo, a sub-rede mapeada como us-east-1a em uma conta pode ser mapeada como us-east-1c em outra conta.
- A AWS permite que você identifique a localização real dos seus recursos em relação às suas contas com o ID da AZ.
- Você só pode selecionar uma zona de disponibilidade quando ela corresponder às zonas de disponibilidade ativas no Network Load Balancer da VPC do provedor.
- O console da Amazon VPC executa automaticamente o mapeamento das zonas de disponibilidade.
Resolução
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solucionar erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Verifique quais zonas de disponibilidade estão habilitadas no Network Load Balancer da VPC do provedor. Execute o comando describe-vpc-endpoint-services da AWS CLI:
$aws ec2 describe-vpc-endpoint-services —service-names com.amazonaws.vpce.us-east-1.vpce-svc-xxxx
Observação: substitua service-names pelos nomes dos seus serviços.
Esta saída de exemplo mostra que você pode selecionar a sub-rede us-east-1b:
{
"ServiceDetails": [
.............................
"ServiceName": " com.amazonaws.vpce.us-east-1.vpce-svc-xxxxxxxxxx ",
"VpcEndpointPolicySupported": false,
"Owner": "##########",
"AvailabilityZones": [
"us-east-1b"
],
..............................
}
A saída anterior é mapeada para os valores da conta que executa o comando. Portanto, tanto as contas do provedor de serviços quanto as contas do consumidor de serviços podem executar o comando describe-vpc-endpoint-services, mesmo quando estão em zonas de disponibilidade diferentes. Para contas de consumidores, certifique-se de que as contas sejam permitidas como entidades principais da AWS no serviço de endpoint.
Informações relacionadas
Compartilhar serviços pelo AWS PrivateLink
Availability Zone IDs for your AWS resources