Mise à jour :depuis décembre 2015, AWS propose la passerelle NAT EC2 gérée. Il n'est donc plus nécessaire de déployer et de gérer manuellement les NAT pour vos sous-réseaux privés. Si toutefois, pour une raison quelconque, vous devez déployer vos propres serveurs NAT, vous pouvez suivre les instructions ci-dessous.
Amazon Virtual Private Cloud (Amazon VPC) vous permet de provisionner une section privée et isolée du cloud Amazon Web Services (AWS) où vous pouvez lancer des ressources AWS dans un réseau virtuel que vous définir. Avec VPC, vous pouvez définir vos propres sous-réseaux et également contrôler les routes entre vos sous-réseaux. Vous pouvez également décider si vous souhaitez exposer vos sous-réseaux à Internet. Les sous-réseaux "privés" VPC sont des hôtes idéaux pour vos serveurs MongoDB. Avec un NAT configuré, vos machines sur le sous-réseau peuvent accéder à Internet, mais personne sur Internet ne peut accéder à vos serveurs. Vous pouvez également configurer une connexion VPN de site à site pour accéder à vos instances mongo depuis sur site.
ScaleGrid facilite le déploiement et la gestion des instances d'hébergement MongoDB dans un sous-réseau VPC. Toutes les fonctionnalités existantes de MongoDB sur AWS telles que les sauvegardes, les récupérations, la surveillance, les alertes, etc. sont entièrement fonctionnelles dans un environnement VPC.
Les sous-réseaux VPC privés utilisés pour les déploiements Mongo doivent avoir un accès sortant à Internet. Assurez-vous donc de configurer un NAT avant de déployer vos instances mongo. Si vous déployez un jeu de répliques, créez trois sous-réseaux chacun dans une zone de disponibilité distincte.
Voici un exemple de VPC (10.20.0.0/16) que j'ai configuré dans la région de l'UE avec quatre sous-réseaux :
- Sous-réseau 1 (10.20.0.0/24) :sous-réseau public
- Sous-réseau 2 (10.20.1.0/24) :sous-réseau privé mappé à la zone de disponibilité eu-west-1a
- Sous-réseau 3 (10.20.2.0/24) :sous-réseau privé mappé à la zone de disponibilité eu-west-1b
- Sous-réseau 4 (10.20.3.0/24) :sous-réseau privé mappé à la zone de disponibilité eu-west-1c
L'objectif de cet article est de déployer un ensemble de réplicas MongoDB à 3 nœuds avec un réplica dans chacun des sous-réseaux 2, 3 et 4.
Une instance NAT a été configurée dans le sous-réseau public pour permettre l'accès à Internet à partir des sous-réseaux privés 2, 3 et 4. J'ai également créé un groupe de sécurité :"MongoSecurityGroup" dans lequel les machines MongoDB les sous-réseaux 2, 3 et 4 seront associés. Voici les détails de la configuration du groupe de sécurité pour le NAT (la partie la plus délicate de la configuration du NAT consiste à s'assurer que les groupes de sécurité autorisent les communications entrantes et sortantes avec le NAT).
Groupe de sécurité NAT
Sortant : Tout autorisé (c'est la valeur par défaut)
Entrant : Autoriser 80 443 et 5671 du groupe MongoSecurity
Groupe MongoSecurity
Sortant : Tout autorisé (c'est la valeur par défaut)
Entrant : 27017 du groupe de sécurité Application et du groupe de sécurité Mongo, 27019 du groupe de sécurité Mongo (pour les fragments)
Dépannage
Une fois que vous avez configuré les règles de votre groupe de sécurité, veuillez vérifier que tout est correctement configuré. Le seul véritable moyen de vérifier si vos groupes de sécurité sont correctement configurés est de créer une instance :
- Créez une instance à partir de la console AWS et placez-la dans l'un des sous-réseaux configurés.
- SSH dans l'instance. Vérifiez la connectivité Internet en exécutant "wget cnn.com". Si cela échoue, votre accès Internet sortant n'est pas configuré correctement.
Étapes de vérification lorsque les connexions ne fonctionnent pas :
- SSH dans l'instance NAT et vérifiez qu'elle est connectée à Internet en exécutant une commande wget.
- Vérifiez que votre instance sur le sous-réseau privé est connectée à l'instance NAT sur les ports 80, 443 et 5671
Une fois que vous avez vérifié votre configuration, voici un processus détaillé étape par étape sur la façon de déployer vos instances Mongo dans un sous-réseau VPC.
Étape 1 :Créer un pool de machines par sous-réseau VPC
Accédez aux pools de machines ou à l'onglet Profil cloud et cliquez sur créer pour vous connecter à votre compte cloud AWS. Entrez votre clé API Amazon et votre clé secrète
Sélectionnez la région dans laquelle vous avez créé le VPC.
Sélectionnez la configuration de déploiement du VPC et choisissez votre VPC, vos sous-réseaux et vos groupes de sécurité. Si vous souhaitez distribuer votre jeu de répliques sur des sous-réseaux, vous devez créer un pool de machines par sous-réseau, puis dans l'assistant de création, choisissez le pool de machines approprié pour chaque instance.
Étape 2 :Déployez vos instances Mongo dans le pool de machines du sous-réseau VPC
Accédez à l'onglet Déploiements et cliquez sur Créer pour créer un nouveau cluster MongoDB. Dans l'assistant, sélectionnez le pool de machines que vous venez de créer comme cible de déploiement. Cela créera vos instances mongo dans le sous-réseau VPC particulier que vous avez sélectionné.
Si vous avez d'autres questions/commentaires ou demandes de fonctionnalités, nous aimerions avoir de vos nouvelles. Vous pouvez nous envoyer un e-mail à [email protected].