Redimensione automaticamente o AWS ec2 via script

2

Estou usando uma instância t2.micro no aws, que é suficiente para o uso diário da execução de um site e de um mongodb.

Mas às vezes eu quero usar um interpretador remoto para treinar uma rede neural, e para isso eu usaria uma máquina rápida por cerca de 1h.

Existe uma maneira rápida de alterar o tipo de instância em um script? Tudo o que precisa fazer é desligar o servidor, alterar o tipo de instância e reiniciá-lo. E, em seguida, no final, reverta para o tamanho da pequena instância novamente.

Qual seria a melhor maneira de lidar com isso em um script? Idealmente em python.

    
por Nickpick 06.12.2017 / 18:25

1 resposta

3

Esta resposta do Stack Overflow por @John Rotenstein fornece um script Python para alterar o tipo de instância.

No entanto, como você paga apenas pelas instâncias do EC2 quando elas estão em execução, além do custo de armazenamento durante o desligamento, eu criaria uma nova instância do tipo correto para o seu outro trabalho. Você pode então iniciar e parar essa instância conforme necessário. Não há risco, então, para o seu site ou o MongoDB.

Redimensionando uma instância do EC2 usando o boto3

import boto3

client = boto3.client('ec2')

# Insert your Instance ID here
my_instance = 'i-xxxxxxxx'

# Stop the instance
client.stop_instances(InstanceIds=[my_instance])
waiter=client.get_waiter('instance_stopped')
waiter.wait(InstanceIds=[my_instance])

# Change the instance type
client.modify_instance_attribute(InstanceId=my_instance, Attribute='instanceType', Value='m3.xlarge')

# Start the instance
client.start_instances(InstanceIds=[my_instance])
    
por 06.12.2017 / 19:19