VPC peering, configuração entre regiões, me enroscou de novo.
Ambiente:
- Requester: ap-northeast-3 (Osaka) / profile-requester
- Accepter: ap-northeast-1 (Tóquio) / profile-accepter
Conta diferente × região diferente. O padrão chato.
O que eu errei
Executei create-vpc-peering-connection. Pareceu ter funcionado, ID pcx-xxxxx gerado. Tentei aceitar do lado do accepter, erro NotFound.
An error occurred (InvalidVpcPeeringConnectionID.NotFound) when calling the AcceptVpcPeeringConnection operationVerifiquei o ID, estava em estado failed. Tentei deletar, InvalidStateTransition.
An error occurred (InvalidStateTransition) when calling the DeleteVpcPeeringConnection operationTransição impossível de failed para deleting. Travado.
Causa
Esqueci de especificar —peer-region. Obrigatório para cross-region. Sem isso, AWS trata como peering mesma-região, não encontra o VPC alvo, vai imediatamente para failed.
Recursos em estado failed não podem ser deletados manualmente. AWS limpa automaticamente depois de um tempo.
Comandos corretos
Criar do lado do requester (Osaka):
aws ec2 create-vpc-peering-connection \ --region ap-northeast-3 \ --profile profile-requester \ --vpc-id vpc-requester-id \ --peer-vpc-id vpc-accepter-id \ --peer-owner-id 123456789012 \ --peer-region ap-northeast-1Aceitar do lado do accepter (Tóquio):
aws ec2 accept-vpc-peering-connection \ --region ap-northeast-1 \ --profile profile-accepter \ --vpc-peering-connection-id pcx-new-idNão esquecer de especificar a região do accepter ao aceitar.
Configuração pós-conexão
Mesmo em estado active, tráfego ainda não passa.
- Tabelas de rotas dos dois VPCs: apontar CIDR parceiro para pcx
- Security groups dos dois VPCs: permitir inbound do CIDR parceiro
Cross-region não suporta referências de security group. Obrigatório usar CIDR.
Lição
—peer-region é fácil de esquecer. Se for para failed, só deixar quieto.
hsb.horse