Como eu inicio automaticamente uma instância do EC2 somente quando o site está sendo acessado?

2

Eu tenho um aplicativo EC2 intensivo da CPU, mas ele só é acessado por algumas horas durante o dia por um único cliente. Eu prefiro não deixar uma instância de alta CPU em execução constantemente - há uma maneira de diminuir meu uso da instância?

Estou supondo que preciso ter uma instância (talvez uma pequena) em constante execução para ter algo para verificar o tráfego ... e, em seguida, configurar algo que inicie / interrompa a instância de alta CPU e encaminhe o tráfego.

Como isso é chamado? Onde encontro informações sobre como configurar isso? (Isso é algo que eu posso fazer com o apache no Ubuntu?)

    
por Adam Morris 02.12.2011 / 11:14

3 respostas

2

Se a sua instância tiver um "tempo de atividade" consistente, você poderá programá-la para ser executada em horários específicos e apenas desativá-la fora dessa janela.

Você pode usar uma ferramenta de programação caseira (por exemplo, executar algo em outra instância) ou usar algo como o Skeddly ( www.skeddly. com ) para fazer o trabalho pesado para você.

Divulgação : Sou o CEO da Eleven41 Software, a empresa por trás do Skeddly.

    
por 02.12.2011 / 14:33
8

O Elastic Load Balancing e o Auto Scaling da Amazon podem ser capazes de fazer isso como uma condição, mas o que pode ser mais robusto é apenas programe o tempo de atividade para essa instância em uma janela de tempo que faça sentido para seu cliente.

i.e. essa instância é de segunda a sexta-feira das 9h às 12h, a menos que seja solicitada de outra forma (o que pode ser um tíquete enviado a você ou você pode criar um front-end da Web em outra instância que controla o comportamento de início / término da instância).

    
por 02.12.2011 / 11:37
1

Se você tem uma instância micro executando um varietal linux, você pode facilmente usar as ferramentas Amazon Command Line para iniciar e parar a instância usando o crontab

para editar o arquivo crontab, execute o crontab -e para editá-lo e adicione uma linha como esta

(minute) (hour) (day of month) (month) (day of week) (command)

Então, por exemplo, se você quiser iniciar o servidor às 5h e parar o servidor às 22h todos os dias, você usaria

0 5 * * * ec2-start-instances [instance id]
0 22 * * * ec2-stop-instances [instance id]

onde você coloca o ID da instância que deseja iniciar e parar.

Você terá que instalar as ferramentas de linha de comando ec2. Você desejará atribuir um IP elástico às instâncias que deseja fazer, de modo que nenhuma configuração precise ser feita quando elas forem inicializadas, e qualquer aplicativo que esteja atingindo-as, ainda possa chegar lá.

Espero que isso ajude.

    
por 03.12.2011 / 04:13