GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo crear una VPC usando Python Boto3 en Ubuntu

Boto3 es el SDK de Amazon Web Services (AWS) para Python. Es la biblioteca de Python que permite a los usuarios o desarrolladores crear, configurar y administrar servicios y recursos de AWS. Boto3 proporciona una API para los servicios de AWS que se puede utilizar para administrar los servicios y recursos de AWS, como EC2, RDS, S3, etc.

Para obtener más información sobre Boto3, puede visitar su sitio oficial aquí.

Antes de continuar, asumo que está familiarizado con VPC. De lo contrario, puede hacer clic aquí para obtener información sobre cómo crear una VPC desde la consola de AWS.

En este artículo, veremos cómo instalar la biblioteca Boto3 y usarla para crear una VPC simple junto con sus componentes dependientes en AWS. Crearemos una subred pública en la VPC.

Requisitos previos

  1. Cuenta de AWS (cree si no tiene una)
  2. Comprensión básica de VPC
  3. Comprensión básica de Python
  4. Python disponible en el sistema

 Lo que haremos

  1. Instalar Boto3
  2. Conocer el método requerido
  3. Cree una VPC usando Python Boto3

Instalar Boto3

Python viene de forma predeterminada en Ubuntu 18.04 Server, por lo que no necesita instalarlo.

Para verificar la versión de Python en su sistema, use el siguiente comando.

qué python
/usr/bin/python --version

O

python --versión

Si no tiene pip y está usando Ubuntu 18.04, ejecute el siguiente comando para actualizar primero el repositorio local.

sudo apt actualizar

 Para instalar pip usa el siguiente comando

sudo apt install python-pip

Para verificar la versión de Pip instalada, ejecute el siguiente comando.

pip --versión

Una vez que tenga python y pip, puede instalar Boto3.

Instalar Boto3 es muy sencillo y directo. Para instalar Boto3 usa el siguiente comando.

pip instalar boto3

Para verificar si el Boto3 está instalado y verificar su versión, ejecute el siguiente comando.

pip muestra boto3


Conoce los métodos requeridos

Para crear una VPC y sus componentes dependientes utilizaremos los siguientes métodos.

  1. create_vpc
  2. crear_tabla_de_ruta
  3. crear_internet_gateway
  4. crear_subred
  5. asociar_con_subred

Ahora, veamos los métodos con su lista de parámetros aceptables. No utilizaremos todos los parámetros, pero puede intentarlo si lo desea.

Sintaxis de solicitud del método  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. Bloque Cidr: El rango de red IPv4 para la VPC, en notación CIDR. Este es un campo obligatorio y no se puede crear una VPC sin esto.

Sintaxis de solicitud del método create_route_table 

route_table = ec2.create_route_table(
    DryRun=True|False,
    VpcId='string'
)
  1. VpcId:  El ID de la VPC. Este es un campo obligatorio y se usa para crear una tabla de rutas en la VPC especificada

Sintaxis de solicitud del método create_internet_gateway 

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

Cada VPC tiene una única puerta de enlace a Internet. Esto se adjuntará con la VPC

Solicitud de sintaxis del método create_subnet 

subnet = ec2.create_subnet(
    AvailabilityZone='string',
    AvailabilityZoneId='string',
    CidrBlock='string',
    Ipv6CidrBlock='string',
    OutpostArn='string',
    VpcId='string',
    DryRun=True|False
)
  1. Cidr Block :el rango de red IPv4 para la subred, en notación CIDR. Esto se usa para subdividir la VPC.
  2. VpcId: El ID de la VPC.

Sintaxis de solicitud del método associate_with_subnet 

route_table_association = route_table.associate_with_subnet(
    DryRun=True|False,
    SubnetId='string',
    GatewayId='string'
)
  1. Id. de subred:  El ID de la subred.
    O
  2. Id. de puerta de enlace:  El ID de la puerta de enlace de Internet o la puerta de enlace privada virtual.

Cree una VPC usando Python Boto3

Para crear una VPC, cree "vpc.py" con el siguiente bloque de código.

Asegúrese de cambiar el valor de "aws_access_key_id_value" y "aws_secret_access_key_value" con su propio access_key_id y access_key_value respectivamente. También cambie el valor de "region_name".

Si lo desea, puede cambiar los valores de CidrBlock para "create_vpc" y "create_subnet" o puede mantenerlos como están.

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)

Ahora, para crear una VPC con la configuración especificada anteriormente, ejecute la secuencia de comandos de python con el siguiente comando.

python vpc.py

Puede verificar si la VPC se ha creado desde la consola de AWS.

En la captura de pantalla anterior, puede ver que se ha creado la VPC con el CIDR y el nombre especificados. Puede buscar componentes como subred, puerta de enlace de Internet, tabla de rutas.

Conclusión

En este artículo, vimos cómo crear una VPC con una subred pública. Creamos una tabla de rutas, una puerta de enlace de Internet y una subred en la VPC. Vimos cómo se puede asociar una subred con la tabla de rutas que tiene una ruta pública a una puerta de enlace de Internet. Ahora puede personalizar este código y crear una VPC con varias subredes, asociarlas con la tabla de rutas y tener subredes públicas o privadas según sus requisitos. Para crear una subred privada, debe crear una puerta de enlace Nat y asociarla con la subred. Esta asociación luego hará que la subred sea privada con una conexión saliente a Internet.


Ubuntu
  1. Cómo instalar Python 3.9 en Ubuntu 18.04

  2. ¿Cómo instalar Python 3.2 en Ubuntu 13.04?

  3. ¿Cómo actualizar a Python 2.7?

  4. Cómo crear un entorno virtual Python en Ubuntu 20.04

  5. Cómo crear arreglos RAID usando MDADM en Ubuntu

Cómo crear un depósito S3 usando Python Boto3 en AWS

Cómo crear un entorno virtual de Python 3 en Ubuntu 20.04

Cómo instalar Python 3.11 en Ubuntu 20.04

Cómo instalar Python 3.6 en Ubuntu 16.04, Ubuntu 16.10, 17.04

Cómo crear un USB de arranque usando Ventoy en Ubuntu 21

¿Cómo crear un enlace a una carpeta en Ubuntu 18.04 usando Gui?