La gestion d'un VPC et d'autres ressources telles que le sous-réseau, la table de routage, la passerelle Internet à partir du terminal à l'aide d'aws-cli peut être un peu déroutante si vous n'êtes pas bon en VPC. Dans cet article, nous allons créer un VPC avec 2 sous-réseaux, table de routage et passerelle Internet, ces sous-réseaux seront des sous-réseaux publics. Une fois le VPC créé, nous essaierons de nous connecter à l'instance EC2 créée dans ce VPC. Le but de cet article est de vous présenter les commandes permettant de gérer VPC depuis le terminal.
Il est conseillé de bien comprendre d'abord le VPC, l'objectif de cet article n'est pas d'expliquer le VPC. Pour connaître les opérations pouvant être effectuées sur VPC, visitez la documentation officielle ici.
Pré-requis
- Compte AWS (créez-le si vous n'en avez pas).
- Compréhension de base du VPC (Cliquez ici pour apprendre à créer un VPC à partir de la console AWS).
- Utilisateur AWS IAM auquel est associée la stratégie AmazonVPCFullAccess, ainsi que ses clés d'accès et secrètes (Cliquez ici pour apprendre à créer un utilisateur IAM).
- AWS CLI installé sur votre ordinateur local.
- Compréhension de base de l'instance EC2 (Cliquez ici pour apprendre à créer une instance EC2 Ubuntu)
Qu'allons-nous faire ?
- Vérifiez aws cli et exportez l'accès AWS et la clé secrète sur votre ordinateur local.
- Gérer le VPC à l'aide d'aws cli
Vérifiez aws cli et exportez l'accès aws et la clé secrète sur votre machine locale.
Si l'utilitaire aws-cli n'est pas installé sur votre ordinateur, consultez la documentation officielle ici pour l'installer sur votre ordinateur local, puis vérifiez sa version à l'aide de la commande suivante.
aws --version
Si vous exécutez la commande suivante, vous obtiendrez une erreur car vous n'avez pas configuré l'accès à votre compte AWS dans le terminal.
aws sts get-caller-identity
Exportez l'accès utilisateur et les clés secrètes AWS IAM sur votre terminal à l'aide des commandes suivantes.
export AWS_ACCESS_KEY_ID=<aws-user-access-key>
export AWS_SECRET_ACCESS_KEY=<aws-user-secret-key>
Cette fois, vous pouvez vérifier votre identité en exécutant la commande suivante
aws sts get-caller-identity
Gérer le VPC à l'aide d'aws-cli
Créez un VPC à l'aide de la commande suivante, cela ne créera pas de VPC par défaut. 10.0.0.0/16 sera le CIDR du VPC qui sera créé. Vous pouvez spécifier un CIDR valide selon votre choix et vos besoins.
aws ec2 create-vpc --cidr-block 10.0.0.0/16
Notez le VpcId dans la capture d'écran ci-dessus. Vous verrez un VpcId différent dans votre sortie. Notez le VpcId, nous en aurons besoin dans les prochaines étapes.
Pour décrire tous les VPC de votre région actuelle, exécutez la commande suivante.
aws ec2 describe-vpcs
En spécifiant le VpcId, vous pouvez décrire le VPC spécifique
aws ec2 describe-vpcs --vpc-ids vpc-03c4278f3b75efd77
Maintenant, créons 2 sous-réseaux dans le VPC que nous avons créé. Ici, les deux sous-réseaux doivent avoir des blocs CIDR uniques dans le VPC.
aws ec2 create-subnet --vpc-id vpc-03c4278f3b75efd77 --cidr-block 10.0.1.0/24
aws ec2 create-subnet --vpc-id vpc-03c4278f3b75efd77 --cidr-block 10.0.2.0/24
Pour rendre les sous-réseaux publics, nous devons créer une passerelle Internet
aws ec2 create-internet-gateway
Attachez la passerelle Internet avec le VPC que nous avons créé précédemment.
aws ec2 attach-internet-gateway --internet-gateway-id igw-04f1e4f13f92599c3 --vpc-id vpc-03c4278f3b75efd77
Maintenant, créons une table de routage.
aws ec2 create-route-table --vpc-id vpc-03c4278f3b75efd77
Associez la table de routage aux deux sous-réseaux
aws ec2 associate-route-table --route-table-id rtb-0878d652f460dbf50 --subnet-id subnet-0748ef7a26aefc7cc
aws ec2 associate-route-table --route-table-id rtb-0878d652f460dbf50 --subnet-id subnet-0375b656eb64962e8
La création d'une route depuis la table de routage vers la passerelle Internet rendra publics les sous-réseaux associés à la table de routage
aws ec2 create-route --route-table-id rtb-0878d652f460dbf50 --destination-cidr-block 0.0.0.0/0 --gateway-id igw-04f1e4f13f92599c3
Nous avons maintenant un VPC avec 2 sous-réseaux, 1 table de routage et une route de la table de routage à la passerelle Internet.
Si nous créons une instance EC2 dans ce VPC et l'un des sous-réseaux, l'instance sera publiquement accessible depuis Internet. Reportez-vous au document mentionné dans le prérequis pour apprendre à créer une instance Ubuntu EC2. Lors de la création d'une instance, spécifiez le VPC que nous venons de créer.
aws ec2 describe-instances --instance-ids i-079acfea39b6ad2c9 | grep VpcId
aws ec2 describe-instances --instance-ids i-079acfea39b6ad2c9 | grep SubnetId
aws ec2 describe-instances --instance-ids i-079acfea39b6ad2c9 | grep PublicIpAddress
ssh -i ~/Downloads/aws-cli.pem [email protected]
Conclusion
Dans cet article, nous avons vu les étapes pour créer un VPC avec 2 sous-réseaux, 1 table de routage, une passerelle Internet et une route vers la passerelle Internet à partir de la table de routage. Nous avons également constaté que l'instance créée dans l'un des sous-réseaux rend l'instance publique disponible car les deux sous-réseaux sont des sous-réseaux publics.