Le VPC peering, configuration inter-régions, m’a de nouveau fait galérer.
Environnement :
- Requester : ap-northeast-3 (Osaka) / profile-requester
- Accepter : ap-northeast-1 (Tokyo) / profile-accepter
Compte différent × région différente. Le pattern relou.
Ce que j’ai foiré
Exécution de create-vpc-peering-connection. Semblait réussi, ID pcx-xxxxx généré. Tentative d’acceptation côté accepter, erreur NotFound.
An error occurred (InvalidVpcPeeringConnectionID.NotFound) when calling the AcceptVpcPeeringConnection operationVérification de l’ID, il était en état failed. Tentative de suppression, InvalidStateTransition.
An error occurred (InvalidStateTransition) when calling the DeleteVpcPeeringConnection operationTransition impossible de failed vers deleting. Bloqué.
Cause
Oubli de la spécification —peer-region. Obligatoire pour le cross-région. Sans ça, AWS traite ça comme un peering intra-région, ne trouve pas le VPC cible, passe immédiatement en failed.
Les ressources en état failed ne peuvent pas être supprimées manuellement. AWS les nettoie automatiquement après un moment.
Commandes correctes
Création côté 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-1Acceptation côté accepter (Tokyo) :
aws ec2 accept-vpc-peering-connection \ --region ap-northeast-1 \ --profile profile-accepter \ --vpc-peering-connection-id pcx-new-idNe pas oublier de spécifier la région de l’accepter lors de l’acceptation.
Configuration post-connexion
Même en état active, le trafic ne passe pas encore.
- Tables de routage des deux VPC : diriger le CIDR pair vers pcx
- Groupes de sécurité des deux VPC : autoriser l’inbound depuis le CIDR pair
Cross-région ne supporte pas les références de groupe de sécurité. Obligatoire d’utiliser le CIDR.
Leçon
—peer-region est facile à oublier. Si ça passe en failed, laisser traîner suffit.
hsb.horse