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
- Cuenta de AWS (cree si no tiene una)
- Comprensión básica de VPC
- Comprensión básica de Python
- Python disponible en el sistema
Lo que haremos
- Instalar Boto3
- Conocer el método requerido
- 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.
- create_vpc
- crear_tabla_de_ruta
- crear_internet_gateway
- crear_subred
- 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' )
- 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' )
- 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 )
- Cidr Block :el rango de red IPv4 para la subred, en notación CIDR. Esto se usa para subdividir la VPC.
- 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' )
- Id. de subred: El ID de la subred.
O - 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.