En este artículo, aprenderemos cómo se puede usar Python para crear y administrar Amazon Web Services (AWS) como Elastic Compute Cloud (EC2), Simple Storage Service (S3), Relational Database Service (RDS). Para este propósito, utilizaremos la biblioteca boto3 de python, Boto es un paquete de Python que proporciona interfaces a Amazon Web Services (AWS).
requisitos previos:
- Cuenta de AWS con privilegios
- Fundamentos de EC2
Para instalar boto3 en python:
default version : pip install boto3 specific version : python3 -m pip install boto3 (as python3 in this case)
Configuración de la consola de AWS EC2:
Para acceder a los servicios de AWS desde el código python, primero debemos crear un usuario y otorgarle acceso programático mediante la consola de Amazon.
- Inicie la consola de IAM
- Agregar usuario
- Luego proporcione un nombre de usuario y otorgue acceso programático y luego haga clic en Siguiente.
- Ahora proporcione el permiso necesario relacionado con el usuario, este usuario puede pertenecer a un grupo y sus políticas se pueden adjuntar directamente al usuario, o podemos copiar las políticas de un usuario existente, o podemos adjuntar directamente una política existente como estamos. va a proporcionar aquí.
- La etiqueta es opcional, podemos omitirla, revisar los permisos y finalmente crear el usuario. Descargue el CSV ya que esta es la última vez que está disponible para descargar, este archivo contiene el ID de la clave de acceso y la clave secreta que se usará a continuación en el código.
Ahora estamos listos para lanzar nuestra instancia EC2 usando el código python. Para realizar una conexión con la instancia EC2, utilizamos la API de cliente de boto3. La API del cliente toma los siguientes argumentos para establecer una conexión con el servicio de AWS.
- Nombre del servicio: el servicio al que se debe establecer la conexión.
- Región: Amazon EC2 está alojado en varias ubicaciones en todo el mundo. Según nuestra necesidad, podemos elegir nuestra región, hemos tomado Asia-Pacífico como nuestra región (‘ap-sur-1’).
- aws_access_key_id: credenciales de seguridad de AWS. Pegue el ID descargado en el espacio en blanco.
- aws_secret_access_key: credenciales de seguridad de AWS. Pegue la clave secreta descargada en el espacio en blanco.
Implementación:
Python3
#Python Program for creating a connection import boto3 ec2 = boto3.client('ec2', 'ap-south-1', aws_access_key_id='', aws_secret_access_key='') #This function will describe all the instances #with their current state response = ec2.describe_instances() print(response)
PRODUCCIÓN
Creando una instancia :
ec2.run_instances lanza la cantidad especificada de instancias mediante una AMI para la que tiene permisos. Proporciona una variedad de configuraciones de lanzamiento, pero podemos lanzar instancias con algunos de los siguientes argumentos.
- InstanceType: el tipo de instancia que especifique determina el hardware de la computadora host utilizada para su instancia. Cada tipo de instancia ofrece diferentes capacidades de cómputo, memoria y almacenamiento y se agrupan en familias de instancias según estas capacidades. Sin embargo, AWS proporciona «t2.micro» como gratuito en el límite de la capa gratuita.
- MaxCount: el número máximo de instancias para lanzar. Si MaxCount > instancias disponibles en la zona de disponibilidad de destino, lanza la cantidad máxima de instancias mayor que MinCount.
- MinCount: el número mínimo de instancias para lanzar. Si las instancias disponibles en la zona de disponibilidad de destino < MinCount, no se lanza ninguna instancia.
- ImageId: el ID de la AMI utilizada para lanzar la instancia. Para nuestro caso hemos elegido Ubuntu Server 18.04 LTS (HVM), SSD Volume Type (ami-02d55cb47e83a99a0).
Implementación:
Python3
#Python Program for creating a connection import boto3 #Function for connecting to EC2 ec2 = boto3.client('ec2', 'ap-south-1', aws_access_key_id='', aws_secret_access_key='') #Function for running instances conn = ec2.run_instances(InstanceType="t2.micro", MaxCount=1, MinCount=1, ImageId="ami-02d55cb47e83a99a0") print(conn)
PRODUCCIÓN
Publicación traducida automáticamente
Artículo escrito por Harshit-Agarwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA