Comprendre les groupes de sous réseaux de RDS et ElastiCache



Lors du lancement d'une instance Amazon Relational Database Service (RDS) ou Amazon ElastiCache, un des paramètres réseaux demandé est le "groupe de sous-réseaux", ou "subnet group" en anglais. Cette notion de groupes de sous-réseaux est singulière aux services RDS et ElastiCache.

Les subnet-groups avec Amazon RDS

Amazon RDS vous fournit un service de base de données managée : vous donnez à votre application un nom d'hôte fournit par le service, et Amazon s'occupe d'installer, configurer et sauvegarder votre base de données. Ce nom d'hôte résout vers une adresse IP derrière laquelle se trouve le service de base de données.

Dans le cas d'un déploiement dans une seule zone de disponibilité, Amazon RDS va s'attribuer une adresse IP. Cette adresse IP sera choisie parmi l'un des subnets du subnet-group, en respectant la contrainte de la zone de disponibilité.

... et donc ?

Par défaut, lors de la création du groupe de sous-réseaux, la console vous propose un gros bouton "Ajouter tous les subnets de ce VPC dans le groupe" :

Formulaire de création d'un groupe de sous-réseaux

Si vous avez plus d'un sous-réseau par zone de disponibilité dans votre VPC, par exemple un "public" et un "privé", alors ceux-ci se retrouvent dans votre groupe de sous-réseaux. Lors du démarrage de votre RDS, une adresse IP sera choisie dans un de ces sous-réseaux. Ainsi, votre RDS aura une adresse IP soit issue de votre sous-réseau public, soit de votre sous-réseau privé, sans que vous ne puissiez le contrôler.

Difficile de se rendre compte de cette erreur si vous routez entre vos subnets...

schema réseau d'un RDS


Si vous utilisez des ACL réseau, vous vous exposez à un comportement non déterminé lorsque votre RDS changera de sous réseau à l'occasion d'un redémarrage, d'une restauration depuis une sauvegarde, ou encore si vous créez des read-replicas... Dans le pire des cas votre instance RDS ne pourra pas être joignable.

Nous vous recommandons donc de vérifier que vos subnet-groups ne contiennent que les subnets dans lesquels sont censés se trouver vos RDS. La recommandation est la même pour ElastiCache. L'utilisation de CloudFormation pour décrire votre infrastructure peut aussi vous empêcher d'appuyer sur ce bouton malencontreux :)



Rejoignez vous aussi la conversation !

Questions, remarques, suggestions... Contactez-nous directement sur Twitter sur @osones !

Pour discuter avec nous de vos projets, nous restons disponibles directement via contact@osones.com !

Rejoignez VOTRE groupe LinkedIn dès maintenant : Utilisateurs Francophones d'Amazon Web Services (AWS).

AWS user group FR



La discussion continue !

Nous attendons vos questions, remarques & mots doux sur notre Twitter :