Boto3 è l'SDK Amazon Web Services (AWS) per Python. È la libreria Python che consente a utenti o sviluppatori di creare, configurare e gestire servizi e risorse AWS. Boto3 fornisce un'API per i servizi AWS che può essere utilizzata per gestire i servizi e le risorse AWS come EC2, RDS, S3, ecc.
Per saperne di più su Boto3, puoi visitare il suo sito ufficiale qui.
Prima di continuare, presumo che tu abbia familiarità con VPC. In caso contrario, puoi fare clic qui per scoprire come creare un VPC dalla console AWS.
In questo articolo vedremo come installare la libreria Boto3 e utilizzarla per creare un semplice VPC insieme ai suoi componenti dipendenti in AWS. Creeremo una sottorete pubblica nel VPC.
Prerequisiti
- Account AWS (crea se non ne hai uno)
- Comprensione di base del VPC
- Comprensione di base di Python
- Python disponibile sul sistema
Cosa faremo
- Installa Boto3
- Conosci il metodo richiesto
- Crea un VPC utilizzando Python Boto3
Installa Boto3
Python viene fornito per impostazione predefinita in Ubuntu 18.04 Server, quindi non è necessario installarlo.
Per verificare la versione di Python sul tuo sistema, usa il comando seguente.
quale python
/usr/bin/python --version
O
python --versione
Se non hai pip e stai utilizzando Ubuntu 18.04, esegui il comando seguente per aggiornare prima il repository locale.
sudo apt update
Per installare pip usa il comando seguente
sudo apt install python-pip
Per verificare la versione di Pip installata, esegui il comando seguente.
pip --versione
Una volta che hai python e pip, puoi installare Boto3.
L'installazione di Boto3 è molto semplice e diretta. Per installare Boto3 usa il seguente comando.
pip installa boto3
Per verificare se il Boto3 è installato e per verificarne la versione, eseguire il comando seguente.
pip mostra boto3
Conosci i metodi richiesti
Per creare un VPC e i suoi componenti dipendenti utilizzeremo i seguenti metodi.
- create_vpc
- create_route_table
- create_internet_gateway
- crea_sottorete
- associa_con_sottorete
Ora, vediamo i metodi con il loro elenco di parametri accettabili. Non utilizzeremo tutti i parametri, ma puoi provare se lo desideri.
Richiedi sintassi del metodo 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: L'intervallo di rete IPv4 per il VPC, nella notazione CIDR. Questo è un campo obbligatorio e senza questo non è possibile creare un VPC.
Richiedi sintassi del metodo create_route_table
route_table = ec2.create_route_table( DryRun=True|False, VpcId='string' )
- VpcId: L'ID del VPC. Questo è un campo obbligatorio e viene utilizzato per creare una tabella di instradamento nel VPC specificato
Richiedi sintassi del metodo create_internet_gateway
response = client.create_internet_gateway( DryRun=True|False )
Ogni VPC ha un unico gateway Internet. Questo sarà allegato al VPC
Richiedi sintassi del metodo create_subnet
subnet = ec2.create_subnet( AvailabilityZone='string', AvailabilityZoneId='string', CidrBlock='string', Ipv6CidrBlock='string', OutpostArn='string', VpcId='string', DryRun=True|False )
- CidrBlock :l'intervallo di rete IPv4 per la sottorete, nella notazione CIDR. Viene utilizzato per suddividere il VPC.
- VpcId: L'ID del VPC.
Richiedi sintassi del metodo associate_with_subnet
route_table_association = route_table.associate_with_subnet( DryRun=True|False, SubnetId='string', GatewayId='string' )
- SubnetId: L'ID della sottorete.
Oppure - ID gateway: L'ID del gateway Internet o del gateway virtuale privato.
Crea un VPC utilizzando Python Boto3
Per creare un VPC, crea "vpc.py" con il seguente blocco di codice.
Assicurati di modificare il valore di "aws_access_key_id_value" e "aws_secret_access_key_value" rispettivamente con il tuo access_key_id e access_key_value. Modificare anche il valore di "region_name".
Se vuoi puoi cambiare i valori di CidrBlock per "create_vpc" e "create_subnet" oppure puoi mantenerlo così com'è.
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)
Ora, per creare un VPC con la configurazione sopra specificata, esegui lo script python utilizzando il comando seguente.
python vpc.py
Puoi verificare se il VPC è stato creato dalla Console AWS.
Nella schermata sopra, puoi vedere che è stato creato il VPC con il CIDR e il nome specificati. Puoi controllare componenti come Subnet, Internet Gateway, Route Table.
Conclusione
In questo articolo abbiamo visto come creare un VPC con una sottorete pubblica. Abbiamo creato una tabella di instradamento, un gateway Internet, una sottorete nel VPC. Abbiamo visto come una sottorete può essere associata alla tabella di instradamento che ha un percorso pubblico verso un gateway Internet. Ora puoi personalizzare questo codice e creare un VPC con più sottoreti, associarli alla tabella di instradamento e avere sottoreti pubbliche o private secondo le tue esigenze. Per creare una sottorete privata, è necessario creare un gateway Nat e associarlo alla sottorete. Questa associazione renderà quindi la sottorete privata con una connessione in uscita a Internet.