Bootstrap 使 EC2 易于重建的脚本与自定义 AMI

Bootstrap Scripts vs Custom AMI for making EC2 easy to rebuild

我有一个 EBS 支持的 EC2 Web 服务器。我正试图达到可以自动启动 相同 服务器(在软件和配置方面相同)的程度。

据我了解,有两种方法可以实现此目的:

  1. 安装所有必需的软件,更改配置,然后从 EBS 卷创建自定义 AMI。使用此 AMI 启动任何未来的实例。
  2. 使用原始 AMI 并使用 Bootstrap 脚本安装所有必需的软件并进行必要的配置更改。

对我来说,创建自定义 AMI 而不必编写脚本最初似乎容易得多。但我知道对服务器的任何修改都意味着创建一个新的 AMI。我还可以看到 bootstrap 脚本如何更加透明并允许人们轻松检查将要发生的内容 installed/configured.

我想知道是否有人可以再指出 advantages/disadvantages 这两种方法之间的区别。是否有一种被认为是最佳做法?

如果您创建自定义 AMI:

  • 配置新服务器会更快。
  • 维护环境的统一会很容易。
  • 如果有任何修改,将很难更新 AMI。

如果您使用 bootstrapping 脚本:

  • 如有改动,修改起来会更方便
  • 很难维护环境的统一(例如可能面临版本控制问题)。
  • 设置新服务器的速度很慢。

顺便说一句,如何将 AMI 用于不太可能更改的内容,然后使用 bootstrap 脚本,例如用户数据来做会随着时间而改变的事情。