logo hsb.horse
← Voltar para o índice do blog

Blog

Falha no VPC Peering AWS Cross-Region

Travado configurando VPC peering entre Osaka e Tóquio. Esqueci o --peer-region, ficou em estado failed, não consegui deletar.

Publicado: Atualizado:

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 operation

Verifiquei o ID, estava em estado failed. Tentei deletar, InvalidStateTransition.

An error occurred (InvalidStateTransition) when calling the DeleteVpcPeeringConnection operation

Transiçã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):

Terminal window
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-1

Aceitar do lado do accepter (Tóquio):

Terminal window
aws ec2 accept-vpc-peering-connection \
--region ap-northeast-1 \
--profile profile-accepter \
--vpc-peering-connection-id pcx-new-id

Nã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.