使用 CloudFormation 提供 ECS 实例并安装自定义包
Provision ECS Instance with CloudFormation and install custom package
我正在尝试使用 CloudFormation 配置 ECS 集群。基本上下文是:
- 我正在使用 Amazon ECS 优化的 AMI(例如 ami-8fcc32f6)。
- 我正在使用自动缩放组和启动配置
- 我正在为启动配置设置 UserData 以使用
yum
. 安装一些软件包
这有效,但由于某种原因它很慢。似乎 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
我正在尝试使用 CloudFormation 配置 ECS 集群。基本上下文是:
- 我正在使用 Amazon ECS 优化的 AMI(例如 ami-8fcc32f6)。
- 我正在使用自动缩放组和启动配置
- 我正在为启动配置设置 UserData 以使用
yum
. 安装一些软件包
这有效,但由于某种原因它很慢。似乎 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