我甚至不确定如何正确地表述这个问题,所以请耐心等待,因为我对 EC2 术语还不熟悉。如果必须的话,我希望能够配置一个模板,并且该模板将包括我经常使用的 LAMP 堆栈,并且所有配置都已到位。我需要做的就是进入并更改 IP。在 EC2 世界中如何做到这一点?是否可以从现有实例创建模板?是否需要启动一个新实例,并且仍然依赖 Puppet/Chef/CFEngine 等工具在实例上线后对其进行配置?如果我正在运行一个 Web 服务器集群,并且想要按需启动一个以减轻集群的负载,该怎么办?在 EC2 世界中,启动并运行该节点的最快方法是什么?
答案1
是的,可以这样做,您可以使用命令ec2-bundle-image
从现有配置的 AMI 创建 AMI。有关如何执行此操作的说明,请访问亚马逊网络服务网站
答案2
如果它是 EBS 存储实例(不是实例存储),您可以使用 ec2 管理控制台轻松创建映像。然后可以使用该映像创建新实例。
答案3
有两种方法可以解决这个问题
- 自己动手(为每个角色准备模板,或者运行一个小的“裸”图像,它将使用一些配置管理,并从你的角度来看成为一个功能实例)
- 使用专业人士来做这件事 - scalarium 或 rightscale
对于自己动手,有不同的方法可以做到,但本质上你需要将一个引导脚本捆绑到一个图像中,该脚本将设置与你的 cfengine 服务器的连接,或者将所有可能的“配方”捆绑在一起(难以维护),然后运行 cfagent。
如何管理 cfengine 可以很简单 - 如果文件放入某个位置,那么 cfagent 将执行某些操作(安装 Web 服务器、对其进行配置等)。cfengine 的问题之一是授权的密钥分发,但它可以很好地编写脚本。
另一种方法是,为每个角色在基础设施中预先制作一个包含其所需的所有软件的图像。