Ricerca nel sito web

Come creare un VPC utilizzando Python Boto3 su Ubuntu


Boto3 è l'SDK di Amazon Web Services (AWS) per Python. È la libreria Python che consente agli utenti o agli sviluppatori di creare, configurare e gestire servizi e risorse AWS. Boto3 fornisce un'API per i servizi AWS che può essere utilizzata per gestire servizi e 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

  1. Account AWS (crealo se non ne hai uno)
  2. Comprensione di base del VPC
  3. Comprensione di base di Python
  4. Python disponibile sul sistema

Cosa faremo

  1. Installa Boto3
  2. Conosci il metodo richiesto
  3. Crea un VPC utilizzando Python Boto3

Installa Boto3

Python viene fornito di default in Ubuntu 18.04 Server, quindi non è necessario installarlo.

Per controllare la versione di Python sul tuo sistema, usa il seguente comando.

which python
/usr/bin/python --version

O

python --versione

Se non hai pip e stai utilizzando Ubuntu 18.04, esegui il seguente comando per aggiornare prima il repository locale.

sudo apt aggiornamento

Per installare pip utilizzare il seguente comando

sudo apt install python-pip

Per verificare la versione di Pip installata, eseguire il seguente comando.

pip --versione

Una volta che hai python e pip, puoi installare Boto3.

Installare Boto3 è molto semplice e diretto. Per installare Boto3 utilizzare il seguente comando.

pip install boto3

Per verificare se Boto3 è installato e per verificarne la versione, eseguire il seguente comando.

pip mostra boto3


Conoscere i metodi richiesti

Per creare un VPC e i suoi componenti dipendenti utilizzeremo i seguenti metodi.

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

Ora, vediamo i metodi con il loro elenco di parametri accettabili. Non utilizzeremo tutti i parametri, ma puoi provare se vuoi.

Richiedi la 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'
)

  1. 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 la sintassi del metodo create_route_table 

route_table = ec2.create_route_table(
    DryRun=True|False,
    VpcId='string'
)

  1. VpcId: ID del VPC. Questo è un campo obbligatorio e viene utilizzato per creare una tabella di instradamento nel VPC specificato

Richiedi la sintassi del metodo create_internet_gateway 

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

Ogni VPC dispone di un singolo gateway Internet. Questo sarà collegato al VPC

Richiedi la sintassi del metodo create_subnet 

subnet = ec2.create_subnet(
    AvailabilityZone='string',
    AvailabilityZoneId='string',
    CidrBlock='string',
    Ipv6CidrBlock='string',
    OutpostArn='string',
    VpcId='string',
    DryRun=True|False
)

  1. CidrBlock: l'intervallo di rete IPv4 per la sottorete, nella notazione CIDR. Viene utilizzato per suddividere il VPC.
  2. VpcId: l'ID del VPC.

Sintassi della richiesta del metodo associate_with_subnet

route_table_association = route_table.associate_with_subnet(
    DryRun=True|False,
    SubnetId='string',
    GatewayId='string'
)

  1. SubnetId: l'ID della sottorete.
    Oppure
  2. GatewayId: l'ID del gateway Internet o del gateway virtuale privato.

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 i tuoi access_key_id e access_key_value. Cambia anche il valore di \region_name\.

Se vuoi puoi cambiare i valori di CidrBlock per \create_vpc\ e \create_subnet\ oppure puoi mantenerli così come sono.

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 seguente comando.

python vpc.py

Puoi verificare se il VPC è stato creato dalla console AWS.

Nello screenshot sopra, puoi vedere che il VPC con il CIDR e il nome specificati è stato creato. Puoi controllare componenti come sottorete, gateway Internet, tabella di instradamento.

Conclusione

In questo articolo abbiamo visto come creare un VPC con Public Subnet. Abbiamo creato una tabella di instradamento, un gateway Internet e una sottorete nel VPC. Abbiamo visto come è possibile associare una sottorete alla tabella di instradamento che ha un instradamento pubblico verso un gateway Internet. Ora puoi personalizzare questo codice e creare un VPC con più sottoreti, associarle alla tabella di instradamento e disporre di sottoreti pubbliche o private in base alle tue esigenze. Per creare una sottorete privata, è necessario creare un Nat Gateway e associarlo alla sottorete. Questa associazione renderà quindi la sottorete privata con una connessione in uscita a Internet.