Amazon cloudformation 为ECS实例提供CloudFormation并安装定制包

Amazon cloudformation 为ECS实例提供CloudFormation并安装定制包,amazon-cloudformation,Amazon Cloudformation,我正在尝试使用CloudFormation配置ECS群集。基本情况是: 我使用的是亚马逊ECS——优化的AMI(例如AMI-8fcc32f6) 我使用的是自动缩放组和启动配置 我正在为启动配置设置UserData,以便使用yum安装一些软件包 这是可行的,但由于某些原因,它相当缓慢。Amazon ECS–optimized AMI似乎自带了自己的脚本,可以通过yum安装软件,而yum from my UserData脚本被该脚本阻止,需要等待,直到可以安装其他软件包 在使用ECS增强型AMI

我正在尝试使用CloudFormation配置ECS群集。基本情况是:

  • 我使用的是亚马逊ECS——优化的AMI(例如AMI-8fcc32f6)
  • 我使用的是自动缩放组和启动配置
  • 我正在为启动配置设置UserData,以便使用
    yum
    安装一些软件包
这是可行的,但由于某些原因,它相当缓慢。Amazon ECS–optimized AMI似乎自带了自己的脚本,可以通过yum安装软件,而yum from my UserData脚本被该脚本阻止,需要等待,直到可以安装其他软件包

在使用ECS增强型AMI时,有没有建议如何安装其他软件包

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

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

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

#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

这正如预期的那样有效。但是,要安装其他软件包,您也可以使用
cloud init
packages
关键字,而不是从您自己的脚本执行
yum
。要将其嵌入到云形成模板中,以下链接对我很有帮助