在EC2实例停机期间显示维护页面的最简单的方法

我需要执行一些维护,这涉及到我的EC2生产服务器的停机时间。 我想同时提供一些用户友好的维护页面。

我能够想到的最简单的解决scheme是获取一些简单的Micro实例AMI,在那里设置静态页面,并在维护期间将我们的公共弹性IP关联到该实例。

问题是:

(1)有没有更简单的方法(即从s3服务一些静态页面,而不需要EC2实例)? [请注意,我不希望任何DNScaching延迟,我喜欢立即开关,如ec2-associate-address]

(2)如果没有简单的方法,从哪个AMI开始(这样它可以在微型实例上运行,最好从EBS启动,这样可以很容易地坚持)?


更新:

为了logging,这里是我使用的解决scheme:

  1. 从http://alestic.com/上的任何ami创build微实例
  2. 安装nginx: sudo aptitude install nginx
  3. 现在你可以使用sudo /etc/init.d/nginx start/stop/restart来启动/停止/重新启动它
  4. 编辑Nginxconfiguration文件sudo pico /etc/nginx/nginx.conf
  5. 而不是include /etc/...行粘贴以下内容:
 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; } 
  1. 创build页面(该文件夹应该已经存在) /var/www/nginx-default/error503.html并删除/var/www/nginx-default/index.html
  2. 启动/重新启动Nginx sudo /etc/init.d/nginx start
  3. 现在您已经完成了,您可以使用ec2-associate-address YOUR-IP -i YOUR-INSTANCE-ID在生产服务器和此维护页面服务实例之间映射您的公共IP。

唯一最快的方法就是你已经提到过的,通过附加弹性的IP来做一个小型的ami,并在上面放置一个静态的维护页面。 在这种情况下应该使用哪种AMI没有硬性规定。 任何Debian / RHEL / Ubuntu的微型实例都可以正常工作。

我想如果你已经有了第二个Amazon EC2实例,那么你只需要将连接到目标实例的弹性IPredirect到第二个VM就可以了。 具有redirect规则的新虚拟主机可以捕获所有对此维护页面的请求。