我正在解决一个问题,我将用户数据作为EC2实例中启动配置的一部分,安装了aws cli和python软件包,有时未安装aws cli和python,并且EC2实例已启动并正在运行。
我的用户数据中的代码
pip install awscli
为解决这个问题,我查看了aws文档。我发现有两种方法可以使用带有cfn信号的Waitcondition和创建策略来解决此问题。
我想知道我的情况是哪种方法。
答案 0 :(得分:0)
第三种方法(可能是最简单的方法)是预先烘焙自定义AMI,您可以在其中手动安装aws cli
和上述python软件包,并调试可能发生的任何问题。
然后,不要运行带有user-data
脚本的新EC2实例,而只需运行具有上述配置的自定义AMI。这样,您的实例将启动得更快,并且您不必担心该脚本执行期间可能发生的任何错误,因为该脚本已经执行并经过了测试。
答案 1 :(得分:0)
AWS文档说:
对于Amazon EC2和Auto Scaling资源,我们建议您使用 CreationPolicy属性而不是等待条件。
向这些资源添加CreationPolicy属性,然后使用 cfn-signal帮助程序脚本,用于在实例创建过程中发出信号 已成功完成。
对于以下情况,您可以使用等待条件:
使用以下配置操作来协调堆栈资源的创建: 在堆栈创建外部。
由于您的EC2实例是cf堆栈的一部分,因此应使用CreationPolicy属性。 检查here了解更多信息。