我正在使用AWS CloudFormation来设置我的Web应用程序的网络基础架构(VPC、SecurityGroups、子网、自动缩放组等),希望整个过程都是自动化的。我想点击一个按钮,就能启动整个过程。
我已经成功创建了一个CloudFormation模板,它可以设置所有这些网络基础架构。但是EC2实例目前没有安装任何必要的软件。现在我正在尝试找出最佳方法来将该软件部署到它们上面。
为了做到这一点,我正在使用Packer.io创建AMI。但有些人建议我使用Cloud-Init。我应该使用什么启发式标准来决定将哪些内容包含在AMI中,或者通过Cloud-Init进行配置?
例如,我想预配置EC2实例以允许我(saqib
)从自己的笔记本电脑登录而无需密码。因此,EC2必须有一个用户,该用户必须有一个主目录,在该主目录中必须存在一个包含加密代码的文件.ssh/known_hosts
。我应该将这些目录包含在AMI中吗?还是应该使用cloud-init进行设置?在这种和其他类似情况下,我该如何决定?