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

Mic*_*hal 7 maintenance amazon-ami amazon-ec2

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

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

问题是:

(1) 有没有更简单的方法(即从 s3 提供一些静态页面,而不需要 EC2 实例)?[请注意,我不想要任何 dns 缓存延迟,我更喜欢像 ec2-associate-address 一样立即切换]

(2) 如果没有更简单的方法,从哪个 AMI 开始(以便它可以在微实例上运行,最好从 EBS 启动,以便可以轻松持久化)?


更新:

作为记录,这是我使用的解决方案:

  1. http://alestic.com/ 上找到的任何 ami 创建微实例
  2. 安装 nginx: sudo aptitude install nginx
  3. 现在您可以使用启动/停止/重新启动它 sudo /etc/init.d/nginx start/stop/restart
  4. 编辑 Nginx 配置文件 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;
    }
Run Code Online (Sandbox Code Playgroud)
  1. 创建页面(文件夹应该已经存在)/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。

Far*_*han 9

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