Boto3 est le SDK d'Amazon Web Services (AWS) pour Python. C'est la 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, vous pouvez visiter son site officiel ici.
Avant de continuer, je suppose que vous connaissez VPC. Si ce n'est pas le cas, vous pouvez cliquer ici pour savoir comment créer un VPC à partir de la console AWS.
Dans cet article, nous verrons 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
- Compte AWS (créez-le si vous n'en avez pas)
- Compréhension de base du VPC
- Compréhension de base de Python
- Python disponible sur le système
Ce que nous allons faire
- Installer Boto3
- Connaître la méthode requise
- Créer un VPC à l'aide de Python Boto3
Installer Boto3
Python est fourni par défaut dans Ubuntu 18.04 Server, vous n'avez donc pas besoin de l'installer.
Pour vérifier la version de Python sur votre système, utilisez la commande suivante.
quel python
/usr/bin/python --version
OU
python --version
Si vous n'avez pas de pip et que vous utilisez Ubuntu 18.04, exécutez la commande suivante pour d'abord mettre à jour le dépôt local.
mise à jour sudo apt
Pour installer pip, utilisez la commande suivante
sudo apt install python-pip
Pour vérifier la version de Pip installée, exécutez la commande suivante.
pip --version
Une fois que vous avez python et pip, vous pouvez installer Boto3.
L'installation de Boto3 est très simple et directe. Pour installer Boto3, utilisez la commande suivante.
pip installer boto3
Pour vérifier si le Boto3 est installé et vérifier sa version, exécutez la commande suivante.
pip montrer boto3
Connaître les méthodes requises
Pour créer un VPC et ses composants dépendants, nous utiliserons les méthodes suivantes.
- create_vpc
- create_route_table
- create_internet_gateway
- create_subnet
- associate_with_subnet
Voyons maintenant les méthodes avec leur liste de paramètres acceptables. Nous n'utiliserons pas tous les paramètres, mais vous pouvez essayer si vous le souhaitez.
Demander la syntaxe 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' )
- CidrBlock : La plage de réseau IPv4 pour le VPC, en notation CIDR. Il s'agit d'un champ obligatoire et un VPC ne peut pas être créé sans celui-ci.
Demander la syntaxe de la méthode create_route_table
route_table = ec2.create_route_table( DryRun=True|False, VpcId='string' )
- VpcId : ID du VPC. Il s'agit d'un champ obligatoire et utilisé pour créer une table de routage dans le VPC spécifié
Demander la syntaxe de la méthode create_internet_gateway
response = client.create_internet_gateway( DryRun=True|False )
Chaque VPC a une seule passerelle Internet. Celui-ci sera rattaché au VPC
Demander la syntaxe 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 )
- CidrBlock :la plage de réseau IPv4 pour le sous-réseau, en notation CIDR. Ceci est utilisé pour subdiviser le VPC.
- VpcId : ID du VPC.
Demander la syntaxe de la méthode associate_with_subnet
route_table_association = route_table.associate_with_subnet( DryRun=True|False, SubnetId='string', GatewayId='string' )
- ID de sous-réseau : L'ID du sous-réseau.
Ou - Identifiant de la passerelle : ID de la passerelle Internet ou de la passerelle réseau privé virtuel.
Créer un VPC à l'aide de Python Boto3
Pour créer un VPC, créez "vpc.py" avec le bloc de code suivant.
Assurez-vous de modifier la valeur de "aws_access_key_id_value" et "aws_secret_access_key_value" avec vos propres access_key_id et access_key_value respectivement. Modifiez également la valeur de "nom_région".
Si vous le souhaitez, vous pouvez modifier les valeurs de CidrBlock pour "create_vpc" et "create_subnet" ou vous pouvez les conserver 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)
Maintenant, pour créer un VPC avec la configuration spécifiée ci-dessus, exécutez le script python à l'aide de la commande suivante.
python vpc.py
Vous pouvez vérifier si le VPC a été créé à partir de la console AWS.
Dans la capture d'écran ci-dessus, vous pouvez voir que le VPC avec le CIDR et le nom spécifiés a été créé. Vous pouvez rechercher des composants tels que le sous-réseau, la passerelle Internet, la table de routage.
Conclusion
Dans cet article, nous avons vu comment créer un VPC avec Public Subnet. Nous avons créé une table de routage, une passerelle Internet, un sous-réseau dans le VPC. Nous avons vu comment un sous-réseau peut être associé à la table de routage qui a une route publique vers une passerelle Internet. Vous pouvez maintenant personnaliser ce code et créer un VPC avec plusieurs sous-réseaux, les associer à la table de routage et avoir des sous-réseaux publics ou privés selon vos besoins. Pour créer un sous-réseau privé, vous devez 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 à Internet.