因此,我正在更新 cloudformation 模板,以便它使用针对 ECS 优化的 Amazon Linux 2 AMI [amzn2-ami-ecs-hvm-2.0.20190709-x86_64-ebs (ami-0fac5486e4cff37f4)]。以前我使用的是 ami-00129b193dc81bc31,它是一个 Amazon Linux 1 容器。
我最初发现,简单地更改 AMI 意味着 EC2 实例不再加入我的 ECS 集群。经过大量挖掘(确保权限、子网、VPC、IAM 都没有问题),我发现 docker 守护进程崩溃了。原因可以追溯到我对用户数据所做的事情。我把它贴在下面:
"UserData": { "Fn::Base64" : { "Fn::Join" : ["", [
"Content-Type: multipart/mixed; boundary=\"==BOUNDARY==\"\n",
"MIME-Version: 1.0\n",
"--==BOUNDARY==\n",
"Content-Type: text/cloud-boothook; charset=\"us-ascii\"\n",
"#!/bin/bash\n",
"# Set Docker daemon options\n",
"cloud-init-per once docker_debug echo 'OPTIONS=\"${OPTIONS} --storage-opt dm.basesize=10G\"' >> /etc/sysconfig/docker\n",
"--==BOUNDARY==\n",
"Content-Type: text/x-shellscript; charset=\"us-ascii\"\n",
"#!/bin/bash -xe\n",
"echo \"ECS_CLUSTER=",
{ "Ref" : "NovaProductionEcsCluster"},
"\" >> /etc/ecs/ecs.config\n",
"sudo mkdir /efs\n",
"sudo mkdir /efs/nova_files\n", …Run Code Online (Sandbox Code Playgroud)