2017-10-10 8 views
0

J'ai plusieurs pré-prod VPC pour dev, qa, etc. Jusqu'à présent, tout est géré via CloudFormation + Lambda et est très propre.AWS: Accepter une demande de connexion peering VPC

Puisqu'aucun des VPC ne se parle, je peux lancer et démonter des environnements, tous à partir d'un seul ensemble de modèles et il est très idempotent.

Maintenant, j'ai besoin d'ajouter un VPC de gestion pour certaines choses communes entre les environnements. J'ai utilisé le peering VPC à travers l'interface utilisateur avant et il est facile à gérer.

Cependant, j'aime la flexibilité de démolir et de lancer de nouveaux environnements, d'autant plus que prod finira par être blue/green.

Donc, pour éviter d'avoir à utiliser l'interface utilisateur que je pensais d'ajouter deux fonctions Lambda:

1. on the mngmt VPC, list all VPC's and if there's not an existing VPC peering connection with one, request it 
2. on pre-prod VPC's poll for VPC connection peering requests and accept if from a trusted owner 

De cette façon, je peux déchirer la pile et les relancer sans aucune intervention manuelle.

Est-ce une conception inutile? Y a-t-il des problèmes que je ne prévois pas? Quelle est la meilleure façon d'accomplir cela?

Répondre

2

La documentation AWS indique que seul le propriétaire d'un compte peut accepter une connexion de peering VPC. Vous pouvez créer un Lambda pour chaque compte, puis utiliser DescribeVpcPeeringConnections pour détecter l'état d'acceptation en attente. Ensuite, appelez AcceptVpcPeeringConnection. Pour créer une connexion d'appairage VPC, appelez AcceptVpCPeeringConnection.

Notes: Je n'aime pas les conceptions d'interrogation. Dans votre cas, vous devrez constamment interroger pour détecter une nouvelle demande de connexion peering. Une meilleure solution serait d'appeler (ou de déclencher via SNS) les fonctions Lambda via un script (programme) après la création des VPC.

Ce lien concerne la référence de l'API. De là, vous pouvez sélectionner la langue que vous utiliserez en bas de la page.

AcceptVpcPeeringConnection