Eu descobri o problema. Tudo o que CloudFormation na pergunta é muito bem e faz o que é suposto. O problema foi com a minha execução do cfn-init na configuração de dados do usuário da instância na configuração de inicialização do ASG - que não estava funcionando, portanto, não estava executando o material do init. Graças a @ Rob-d, seus comentários me levaram ao caminho do nível executável.
A outra parte mágica que faz todo esse trabalho:
"UserData": {
"Fn::Base64": {
"Fn::Join": [
"",
[
"#!/bin/bash\n",
"cat > /etc/ecs/ecs.config <<EOF\n",
"ECS_CLUSTER=",
{
"Ref": "ECSCluster"
},
"\n",
"ECS_ENGINE_AUTH_TYPE=docker\n",
"ECS_ENGINE_AUTH_DATA={REDACTED}\n",
"EOF\n",
"yum -y install aws-cfn-bootstrap\n",
"# Install the files and packages from the metadata\n",
"/opt/aws/bin/cfn-init -v ",
" --stack ",
{
"Ref": "AWS::StackName"
},
" --resource ECSASGLaunchConfiguration ",
" --region ",
{
"Ref": "AWS::Region"
},
"\n",
"/opt/aws/bin/cfn-signal -e -0 ",
" --stack ",
{
"Ref": "AWS::StackName"
},
" --resource ECSAutoScalingGroup ",
" --region ",
{
"Ref": "AWS::Region"
},
"\n",
"\n"
]
]
}
}