Skip to main content
Un VPC est un réseau privé pour vos instances. Les instances rattachées au même VPC se joignent par des adresses privées, sans que leur trafic parte sur l’internet public. La raison la plus courante d’en vouloir un : une base de données qui ne doit être joignable que par votre serveur applicatif, et par rien d’autre. Plutôt que d’exposer le port 3306 publiquement et de le défendre, vous ne l’exposez pas du tout.
Prérequis
  • Un compte OnetSolutions avec un projet
  • Au moins une instance, ou l’intention d’en créer

Créer un VPC

1

Ouvrez la section VPC

Dans la console, allez dans Compute et ouvrez l’onglet VPC.
2

Lancez la création

Cliquez sur Créer un VPC.
3

Nommez le réseau

Renseignez Nom du réseau — quelque chose qui décrit son rôle, par exemple prod-backend.
4

Choisissez le bloc CIDR

Saisissez une plage d’adresses privées dans Bloc CIDR, par exemple 10.0.0.0/16. Elle définit les adresses que recevront les instances de ce réseau.
5

Créez

Confirmez. Le réseau apparaît dans la liste avec son statut.
Le bloc CIDR et l’emplacement ne peuvent pas être modifiés après la création. Les deux sont figés pour la durée de vie du VPC : se tromper impose de supprimer le réseau et de recommencer, donc de détacher au préalable toutes les instances qui y sont rattachées.

Choisir un bloc CIDR

Utilisez une plage réservée aux réseaux privés. Trois blocs existent pour cela : Un /16 offre 65 536 adresses, ce qui est généreux pour la plupart des projets et laisse de la marge. Il n’y a aucun intérêt à être à l’étroit ici.
Choisissez une plage qui n’entre pas en collision avec ce à quoi vous vous connectez par ailleurs : réseau de bureau, VPN, ou le pont Docker par défaut. Des plages qui se recouvrent provoquent des problèmes de routage pénibles à diagnostiquer après coup, et le CIDR n’est pas modifiable ensuite.

Rattacher une instance

1

Ouvrez l'instance

Dans Compute, ouvrez l’instance à rattacher.
2

Allez dans son onglet VPC

Sélectionnez la section VPC de cette instance.
3

Associez

Choisissez le réseau parmi les VPCs disponibles et cliquez sur Associer.
Un VPC appartient à un emplacement, et seules les instances de ce même emplacement peuvent le rejoindre. Si la liste est vide, l’instance se trouve dans un emplacement où vous n’avez pas encore de VPC.
Pour détacher ensuite, utilisez Dissocier sur le même écran. L’instance perd immédiatement l’accès aux autres instances de ce réseau privé : vérifiez d’abord que rien n’en dépend.

Utiliser le réseau privé

Une fois deux instances sur le même VPC, elles se joignent par leurs adresses privées. Repérez l’adresse privée sur l’instance :
Faites ensuite écouter vos services sur l’adresse privée plutôt que sur toutes les interfaces. Pour PostgreSQL :
Pour MySQL ou MariaDB :
C’est l’écoute sur l’adresse privée qui ferme réellement le service. Une base qui écoute sur 0.0.0.0 reste joignable depuis Internet, VPC ou pas — le VPC ajoute un chemin privé, il ne supprime pas le chemin public.
Vérifiez ce qui écoute, et où :
Tout ce qui affiche 0.0.0.0: est exposé sur l’interface publique.

VPC et pare-feu

Les deux répondent à des problèmes différents et se complètent. Le VPC fournit un chemin privé entre instances ; le pare-feu contrôle ce qui peut y circuler et ce qui peut atteindre l’instance publiquement. Un réseau privé n’est pas en soi un système de permissions : toutes les instances rattachées au même VPC peuvent se joindre mutuellement. Si c’est trop large, ce sont les règles de pare-feu qui resserrent.

Dépannage

L’instance se trouve dans un emplacement différent de celui de votre VPC. Un VPC n’accepte que les instances de son propre emplacement — créez-en un dans celui de l’instance.
Vérifiez que le service écoute sur l’adresse privée et non sur localhost, puis que le pare-feu autorise le trafic entre elles. ss -tlnp sur la cible répond à la première question.
Une instance fraîchement rattachée peut nécessiter une reconfiguration réseau ou un redémarrage avant que l’interface apparaisse. Contrôlez avec ip -4 addr show.
Il s’agit généralement d’un recouvrement entre la plage du VPC et un autre réseau utilisé par l’instance, le plus souvent le pont Docker par défaut en 172.17.0.0/16. Comparez avec ip route.
Le schéma à retenir : serveur applicatif avec une adresse publique, base de données sur le VPC uniquement. Cela supprime toute une classe d’exposition, et ne coûte qu’un plan d’adressage réfléchi une bonne fois.