Eu preciso realizar alguma manutenção, o que envolve tempos de inatividade do meu servidor de produção do EC2. Eu gostaria de servir uma página de manutenção amigável, entretanto.
A solução mais fácil, eu consegui criar, é pegar uma AMI microinstância minimalista, configurar a página estática e associar nosso IP elástico público a essa instância durante a manutenção.
As perguntas são:
(1) Existe uma maneira mais fácil (ou seja, para servir alguma página estática de s3, sem necessidade de instância EC2)? [por favor, note que eu não quero nenhum atraso de caching de dns, eu prefiro trocar imediatamente como ec2-associate-address]
(2) Se não houver uma maneira mais fácil, com qual AMI começar (para que ele possa rodar em micro instância e, de preferência, inicializar a partir do EBS, de modo que possa ser facilmente persistido)?
Atualização:
Para o registro, aqui está a solução que usei:
- Crie micro instância de qualquer ami encontrada no link
- Instale o nginx:
sudo aptitude install nginx
- Agora você pode iniciar / interromper / reiniciar usando
sudo /etc/init.d/nginx start/stop/restart
- Editar o arquivo de configuração do Nginx
sudo pico /etc/nginx/nginx.conf
- Em vez da coluna
include /etc/...
, cole o seguinte:
server { root /var/www/nginx-default;
location / {
if (-f $document_root/error503.html) {
return 503;
} }
# error 503 redirect to error503.html
error_page 503 @maintenance;
location @maintenance {
rewrite ^(.*)$ /error503.html break;
}
- Crie a página (a pasta já deve existir)
/var/www/nginx-default/error503.html
e remova o /var/www/nginx-default/index.html
.
- Iniciar / Reiniciar Nginx
sudo /etc/init.d/nginx start
- Agora você terminou e pode usar
ec2-associate-address YOUR-IP -i YOUR-INSTANCE-ID
para mapear seu IP público entre o servidor de produção e essa instância de veiculação da página de manutenção.