Eu acredito que o seu problema aqui é a confusão em torno de que o cloud-init não é o mesmo que o cfn-init.
-
cloud-init é a ferramenta que começou como parte das AMIs do Ubuntu AWS que permitem a interpretação do usuário do EC2 -dados de dados dos metadados da instância. O Amazon Linux também adotou essa ferramenta e a incorporou à sua AMI.
-
cfn-init faz parte de um conjunto de ferramentas diferente chamado Scripts auxiliares do CloudFormation criados pela AWS para Amazon Linux que podem ler uma seção adicional chamada
Metadata
no seu modelo do CloudFormation.
Assim, as AMIs do Ubuntu e do Amazon Linux têm as ferramentas cloud-init pré-instaladas para acessar os dados do usuário, mas somente o Amazon Linux tem o Scripts auxiliares do CloudFormation pré-instalados, por exemplo cfn-init para acessar os metadados do CloudFormation.
No entanto, a AWS distribui pacotes que você pode use para ler os metadados do CloudFormation. Especificamente, veja este modelo para saber como você pode use um script de dados do usuário cloud-init para instalar o python-setuptools, faça o download dos Scripts Auxiliares do CloudFormation, instale-os usando easy_install e invoque o cfn-init.
Nota: Existem outras distribuições ou AMIs que podem suportar cloud-init ou cfn-init, mas estou apenas cobrindo os casos gerais aqui.