Le Cloud Privé Virtuel
Introduction
Lors des chapitres précédents, nous avons passé en revue un grand nombre de sujets différents concernant les services qu’AWS met à notre disposition. En partant des services de base, comme les instances EC2 et leurs groupes de sécurité avec IAM, jusqu’à l’utilisation des services et volumes de stockage S3 et EBS, en passant par les adresses Elastic IP.
Ce chapitre sera, comme vous le verrez tout de suite, très différent des autres, mais tout aussi intéressant, puisque nous allons nous intéresser aux VPC (Virtual Private Cloud). On va discuter des concepts de base des VPC, de la terminologie consacrée, des stratégies de déploiement et de nombreux autres sujets.
Donc, demeurez à l’affut, et continuez de lire.
Bref aperçu des VPC
Jusqu’à présent, lors des opérations et des exercices présentés dans les chapitres précédents, nous avions mis l’accent sur les instances EC2 et nous avions montré comment déployer des architectures à haute disponibilité grâce aux ELB. Nous avions aussi abordé les quelques légères limitations des instances EC2, dont les principales sont :
-
l’impossibilité de contrôler les adresses IP de votre instance à moins de créer des adresses Elastic IP ;
-
les instances EC2 sont spécifiquement conçues de telle manière qu’une seule adresse IP privée et une seule adresse IP publique routable sur Internet peuvent être allouées. Il est important de prendre en compte ce paramètre d’autant qu’il n’est pas modifiable.
-
les groupes de sécurité EC2 ne peuvent définir de règles de routage que pour le trafic entrant, mais il n’y a aucun support pour le trafic sortant.
Toutes ces petites limitations font que, dans certaines situations, en dépit du fait que les EC2 constituent de très bonnes solutions pour héberger vos applications, elles n’offrent pas suffisamment de sécurité aux services et applications stratégiques pour lesquelles la sécurité avancée...
Concepts et terminologie VPC
Vous l’aurez compris, VPC n’est rien de plus qu’un service réseau fourni par AWS permettant de créer des environnements logiquement isolés et d’y inclure des instances EC2 et d’autres éléments d’infrastructure. Et comme tout service réseau, VPC possède aussi ses propres termes, concepts et terminologies, présentés ici.
1. Sous-réseaux
Les sous-réseaux représentent probablement les éléments les plus importants des VPC et ne sont rien de plus qu’une plage d’adresses IP. Il existe des sous-réseaux privés et publics dans un VPC et la différence entre les deux est l’accès à l’Internet. On peut créer des instances EC2 et d’autres éléments d’infrastructure dans les deux types de sous-réseaux, tout dépend si vous voulez que ces instances soient ou pas accessibles depuis Internet.
Alors, comment cela fonctionne-t-il ? C’est tout simple. Lors de la création d’un VPC, on doit spécifier un ensemble d’adresses IP au format CIDR (Classless Inter Domain Routing), par exemple 10.0.0.0/16, ou "/16" indique que ce VPC supporte 2 (32 - 16) = 2 x 16 = 65 536 adresses IP, c’est-à-dire, toutes les adresses IP de 10.0.0.0 à 10.0.255.255.
Et comme cela fait beaucoup d’adresses IP, on peut découper ce bloc de 65 536 adresses IP en plusieurs sous-réseaux. Par exemple :
-
un premier sous-réseau possédant le réseau IP 10.0.1.0/24, c’est-à-dire 256 adresses IP de 10.0.1.0 à 10.0.1.255, réservées à des serveurs web
-
un deuxième sous-réseau disposant de la plage d’adresses 10.0.5.0/24, c’est-à-dire 256 adresses IP de 10.0.5.0 à 10.0.5.255, réservées à des serveurs de base de données.
Le premier sous-réseau, celui dédié aux serveurs web, sera public, c’est-à-dire accessible depuis Internet, alors que le deuxième sera privé et, par conséquent, isolé du monde extérieur.
Il est important de préciser qu’un VPC est automatiquement créée avec chaque compte AWS et que ce VPC par défaut est préconfiguré...
Démarrer avec VPC
On vient de faire le tour complet des concepts de base et de la terminologie autour des VPC. Il est temps maintenant de passer à l’action.
1. Plusieurs scénarios de déploiement
VPC nous propose une interface conviviale, très facile à utiliser, permettant de démarrer en deux temps et trois clics, mais à condition que l’on choisisse un scénario de déploiement approprié et que l’on configure correctement deux ou trois paramètres comme, par exemple, les informations relatives aux sous-réseaux, zones de disponibilité, et ainsi de suite.
Mais voyons un peu ce qu’il en est exactement de ces scénarios de déploiement :
-
VPC à un seul sous-réseau public. C’est de loin le scénario le plus simple de déploiement d’un VPC. On provisionne un seul sous-réseau privé avec une passerelle Internet attachée. Le sous-réseau doit aussi avoir quelques tables de routage simples, quelques groupes de sécurité ainsi qu’un ACL. Ce type de déploiement est idéal pour des applications ou sites web de petite envergure.
-
VPC à sous-réseaux publics et privés. C’est probablement le scénario de déploiement le plus utilisé. Il est caractérisé par la présence de deux sous-réseaux, un public et un privé, le premier étant connecté à une passerelle Internet, alors que le dernier n’y est pas. Une instance EC2 de type NAT est également provisionnée dans le sous-réseau public et, par son intermédiaire, le sous-réseau privé peut avoir accès au monde extérieur, mais pas réciproquement. En plus, notre interface conviviale va créer pour nous une table de routage dans chacun des sous-réseaux publics et privés. Ce type de déploiement est idéal pour des applications ou sites web d’envergure.
-
VPC à sous-réseaux publics et privés, et avec accès VPN. Ce type de déploiement est assez similaire au précédent, à la différence près qu’un composant supplémentaire, un VPN, est provisionné dans l’environnement. Ce VPN est connecté à votre...
Lancer des instances EC2 à l’intérieur du VPC
On peut lancer des instances EC2 à l’intérieur de notre VPC soit directement depuis le tableau de bord VPC soit depuis la console EC2. Pour ma part, je préfère la seconde alternative.
1. Création des serveurs web
Dans la console EC2, cliquez sur le bouton Lancer une instance. L’assistant EC2 qui s’affiche ne vous est plus inconnu pour l’avoir pratiqué intensivement tout au long de cet ouvrage. Procédez comme vous l’aviez déjà fait précédemment pour créer des instances EC2 sur la base de l’AMI de votre choix. Une instance de type t1.micro devrait suffire pour les besoins de notre exercice.
Dans la page suivante, vous devez sélectionner le VPC dans lequel votre nouvelle instance sera exécutée. Lors des exercices précédents, lorsque vous aviez lancé des instances EC2, vous aviez sélectionné le VPC par défaut, celui qui est automatiquement créé avec chaque compte AWS. Cette fois-ci vous allez sélectionner votre nouveau VPC que nous avons nommé EU-WEST-TEST-01.
Ensuite, dans la liste déroulante Sous-réseau, sélectionnez le sous-réseau public associé aux serveurs web, qu’on a appelé EU-WEST-TEST-WEB-01. Vous pouvez aussi activer l’option...