使用 CloudFormation 提供 ECS 实例并安装自定义包

Provision ECS Instance with CloudFormation and install custom package

我正在尝试使用 CloudFormation 配置 ECS 集群。基本上下文是:

这有效,但由于某种原因它很慢。似乎 Amazon ECS 优化的 AMI 带有自己的脚本,可以使用 yum 安装软件,而我的 UserData 脚本中的 yum 被它阻止了,需要等到它可以安装其他包。

在使用 ECS-Enhanced AMI 时,是否有关于如何安装额外软件包的推荐方法?

我目前使用的是一个简单的脚本:

#!/bin/bash
yum update -y
yum install -y nfs-utils

我的设置几乎相同,但我使用 CloudInit 而不是简单的脚本作为 UserData。考虑到我在启动实例时没有遇到任何特别缓慢的情况,我建议您也这样做。

#cloud-config

repo_upgrade: all


write_files:
 - path: /root/init.sh
   owner: root:root
   permissions: '0755'
   content: |
     #!/bin/bash

     set -e

     # ECS optimized instances are bare bones and we need to install a few packages
     yum install -y aws-cli wget gettext python-pip

     ...


cloud_final_modules:
 - runcmd
 - scripts-user


runcmd:
 - /root/init.sh