Comment créer un VPC avec Python Boto3 sur Ubuntu

Boto3 est le SDK Amazon Web Services (AWS) pour Python. Il s’agit d’une bibliothèque Python qui permet aux utilisateurs ou aux développeurs de créer, configurer et gérer les services et ressources AWS. Boto3 fournit une API pour les services AWS qui peut être utilisée pour gérer les services et ressources AWS tels que EC2, RDS, S3, etc.

Pour en savoir plus sur Boto3, tu peux visiter son site officiel ici.

Avant de continuer, je suppose que tu connais bien le concept de VPC. Si ce n’est pas le cas, tu peux cliquer ici pour apprendre comment créer un VPC à partir de la console AWS.

Dans cet article, nous allons voir comment installer la bibliothèque Boto3 et l’utiliser pour créer un VPC simple avec ses composants dépendants dans AWS. Nous allons créer un sous-réseau public dans le VPC.

Pré-requis

  1. Compte AWS (Créer si tu n’en as pas)
  2. Compréhension de base de VPC
  3. Compréhension de base de Python
  4. Python disponible sur le système

Ce que nous allons faire

  1. Installer Boto3
  2. Connaître la méthode requise
  3. Créer un VPC à l’aide de Python Boto3

Installer Boto3

Python est fourni par défaut dans Ubuntu 18.04 Server, tu n’as donc pas besoin de l’installer.

Pour vérifier la version de Python sur ton système, utilise la commande suivante.

qui python
/usr/bin/python
–version

OU

python –version

Vérifie la version de Python

Si tu n’as pas pip et que tu utilises Ubuntu 18.04, exécute la commande suivante pour mettre d’abord à jour le repo local.

sudo apt update

Mets à jour les paquets

Pour installer pip, exécute la commande suivante

sudo apt install python-pip

Installer le pip python

Pour vérifier la version de Pip installée, exécute la commande suivante.

pip –version

Vérifier la version PIP

Une fois que tu as installé python et pip, tu peux installer Boto3.

L’installation de Boto3 est très simple et directe. Pour installer Boto3, utilise la commande suivante.

pip install boto3

Installe Boto3 en utilisant pip

Pour vérifier si le Boto3 est installé et pour vérifier sa version, exécute la commande suivante.

pip show boto3

pip show boto3

Connaître les méthodes requises

Pour créer un VPC et ses composants dépendants, nous utiliserons les méthodes suivantes.

  1. create_vpc
  2. create_route_table
  3. create_internet_gateway
  4. create_subnet
  5. associate_with_subnet

Maintenant, voyons les méthodes avec leur liste de paramètres acceptables. Nous n’utiliserons pas tous les paramètres mais tu peux faire un essai si tu veux.

Syntaxe de la demande de la méthode create_vpc

response = client.create_vpc(
    CidrBlock='string',
    AmazonProvidedIpv6CidrBlock=True|False,
    Ipv6Pool='string',
    Ipv6CidrBlock='string',
    DryRun=True|False,
    InstanceTenancy='default'|'dedicated'|'host',
    Ipv6CidrBlockNetworkBorderGroup='string'
)
  1. CidrBlock : La plage de réseau IPv4 pour le VPC, en notation CIDR. C’est un champ obligatoire et un VPC ne peut pas être créé sans cela.

Syntaxe de la demande de la méthode create_route_table

route_table = ec2.create_route_table(
    DryRun=True|False,
    VpcId='string'
)
  1. VpcId :L’ID du VPC. Il s’agit d’un champ obligatoire et il est utilisé pour créer une table de routage dans le VPC spécifié.

Syntaxe de demande de la méthode create_internet_gateway

response = client.create_internet_gateway(
    DryRun=True|False
)

Chaque VPC possède une seule passerelle Internet. Celle-ci sera jointe au VPC

Syntaxe de demande de la méthode create_subnet

subnet = ec2.create_subnet(
    AvailabilityZone='string',
    AvailabilityZoneId='string',
    CidrBlock='string',
    Ipv6CidrBlock='string',
    OutpostArn='string',
    VpcId='string',
    DryRun=True|False
)
  1. CidrBlock: La plage de réseau IPv4 pour le sous-réseau, en notation CIDR. Ceci est utilisé pour subdiviser le VPC.
  2. VpcId : L’ID du VPC.

Syntaxe de la demande de la méthode associate_with_subnet

route_table_association = route_table.associate_with_subnet(
    DryRun=True|False,
    SubnetId='string',
    GatewayId='string'
)
  1. SubnetId :L’ID du sous-réseau.
    Ou
  2. GatewayId :L’ID de la passerelle Internet ou de la passerelle privée virtuelle.

Créer un VPC à l’aide de Python Boto3

Pour créer un VPC, crée « vpc.py » avec le bloc de code suivant.

Assure-toi de changer la valeur de « aws_access_key_id_value » et « aws_secret_access_key_value » par tes propres access_key_id et access_key_value respectivement. Change aussi la valeur de « region_name ».

Si tu veux, tu peux changer les valeurs de CidrBlock pour « create_vpc » et « create_subnet » ou tu peux les garder telles quelles.

vim vpc.py

import boto3

ec2 = boto3.resource('ec2', aws_access_key_id='ACCESS-KEY-OF-THE-AWS-ACCOUNT',
                     aws_secret_access_key='SECRETE-KEY-OF-THE-AWS-ACCOUNT',
                     region_name='AWS-Region')

vpc = ec2.create_vpc(CidrBlock='192.168.0.0/16')
# Assign a name to the VPC
vpc.create_tags(Tags=[{"Key": "Name", "Value": "my_vpc"}])
vpc.wait_until_available()
print(vpc.id)

# Create and Attach the Internet Gateway
ig = ec2.create_internet_gateway()
vpc.attach_internet_gateway(InternetGatewayId=ig.id)
print(ig.id)

# Create a route table and a public route to Internet Gateway
route_table = vpc.create_route_table()
route = route_table.create_route(
    DestinationCidrBlock='0.0.0.0/0',
    GatewayId=ig.id
)
print(route_table.id)

# Create a Subnet
subnet = ec2.create_subnet(CidrBlock='192.168.1.0/24', VpcId=vpc.id)
print(subnet.id)

# associate the route table with the subnet
route_table.associate_with_subnet(SubnetId=subnet.id)

Créer un VPS AWS en utilisant Boto3

Maintenant, pour créer un VPC avec la configuration indiquée ci-dessus, exécute le script python à l’aide de la commande suivante.

python vpc.py

Run Python script

Tu peux vérifier si le VPC a été créé à partir de la Console AWS.

VPC créé dans AWS à l'aide de Python

Dans la capture d’écran ci-dessus, tu peux voir que le VPC avec le CIDR et le nom spécifiés a été créé. Tu peux vérifier les composants comme Subnet, Internet Gateway, Route Table.

Conclusion

Dans cet article, nous avons vu comment créer un VPC avec un sous-réseau public. Nous avons créé une Table des routes, une passerelle Internet et un sous-réseau dans le VPC. Nous avons vu comment un sous-réseau peut être associé à la Table des routes qui a une route publique vers une passerelle Internet. Tu peux maintenant personnaliser ce code et créer un VPC avec plusieurs sous-réseaux, les associer à la Table des routes et avoir des sous-réseaux publics ou privés selon tes besoins. Pour créer un sous-réseau privé, tu dois créer une passerelle Nat et l’associer au sous-réseau. Cette association rendra alors le sous-réseau privé avec une connexion sortante vers Internet.

Vous aimerez aussi...