terça-feira, 15 de outubro de 2024

Iniciando instâncias EC2 na AWS com Python(boto3) - Starting instances at AWS with Python

 




Infraestrutura como Código (IaC) é uma prática em que a infraestrutura de TI, como servidores, redes e armazenamento, é provisionada e gerenciada por meio de arquivos de configuração em vez de processos manuais. Com o IaC, toda a infraestrutura é descrita em código, permitindo que ela seja versionada, auditada e replicada de forma automatizada e consistente. Essa abordagem melhora a eficiência, a escalabilidade e a confiabilidade da gestão de infraestruturas complexas, principalmente em ambientes de nuvem.

Passos:

Criar um usuário no AWS IAM com Access Keys

  • Acesse o console da AWS.
  • Navegue até o serviço IAM (Identity and Access Management).
  • Crie um novo usuário com as permissões necessárias (no mínimo a política AmazonEC2FullAccess para o uso do EC2).
  • No processo de criação, selecione a opção para gerar Access Key e Secret Key.
Salve essas chaves em local seguro (você precisará delas para configurar o boto3).




Configurar boto3 com as Access Keys
  • Instale o boto3 se ainda não tiver instalado:
                    pip install boto3



Criar um código Python para iniciar instâncias EC2
  • A seguir está o código que usa o boto3 para iniciar uma instância EC2.

import boto3

# Definir as credenciais de acesso (access key e secret key)
ACCESS_KEY = 'sua_access_key_aqui'
SECRET_KEY = 'sua_secret_key_aqui'
REGION = 'us-east-1'  # Região em que você deseja iniciar a instância

# Criar uma sessão no boto3 com as credenciais e região configurada
ec2_client = boto3.client(
    'ec2',
    aws_access_key_id=ACCESS_KEY,
    aws_secret_access_key=SECRET_KEY,
    region_name=REGION
)

# Parâmetros para iniciar a instância
instance_params = {
    'ImageId': 'ami-0c55b159cbfafe1f0',  # AMI ID da instância (Ubuntu, Amazon Linux, etc.)
    'InstanceType': 't2.micro',           # Tipo da instância
    'MinCount': 1,                        # Número mínimo de instâncias
    'MaxCount': 1,                        # Número máximo de instâncias
    'KeyName': 'nome-da-sua-keypair',     # Nome do par de chaves (já criado no EC2)
    'TagSpecifications': [
        {
            'ResourceType': 'instance',
            'Tags': [
                {'Key': 'Name', 'Value': 'MinhaInstanciaEC2'}
            ]
        }
    ]
}

# Iniciar a instância EC2
response = ec2_client.run_instances(**instance_params)

# Obter o ID da instância criada
instance_id = response['Instances'][0]['InstanceId']
print(f'Instância {instance_id} foi iniciada com sucesso.')


Dica importante, você pode postar usar esse código no Google Colab e fazer toda a operação por lá, sem a necessidade de Python ser instalado na sua máquina local.

Até mais pessoal

Fonte : aws.com