Como conectar instâncias no CloudFormation

3

Gostaríamos de criar um modelo para uma pilha razoavelmente padrão na AWS. Precisamos de três camadas.

  1. Camada: Elastic Load Balancer

  2. Camada: vários servidores da web que são criados / destruídos de acordo com os alarmes acionados pela demanda no site

  3. Camada: um servidor de banco de dados

Instâncias na Camada 2 devem saber o nome do host da instância do banco de dados. Idealmente, gostaria de obter o IP privado da instância do banco de dados e passá-lo pelos dados do usuário para os servidores da Web.

Fn :: GetAtt não suporta o ip privado (apenas o público)

Suponho que uma alternativa seria construir a pilha e depois definir manualmente o ip do db private. Isso faz com que nossa configuração seja um pouco menos limpa. Idealmente, gostaríamos que tudo fosse descrito no modelo. (mesmo que isso envolva a execução de um script por meio de dados do usuário )

Alguma sugestão?

    
por Dimitris 30.03.2011 / 13:57

1 resposta

6

Eu faço isso agora para adicionar novos nós ao meu mestre de marionetes. Por exemplo, eu pego o IP privado da instância do mestre de marionetes na seção UserData do meu novo nó:

"echo ", { "Fn::GetAtt" : [ "MasterOfPuppets", "PrivateIp" ] }, " ", 
         { "Fn::GetAtt" : [ "MasterOfPuppets", "PrivateDnsName" ] } ," puppet 
    >> /etc/hosts\n","\n",

Consulte a página 119 do Guia do utilizador do CloudFormation .

Como alternativa, você pode usar os metadados da instância:

curl http://169.254.169.254/latest/meta-data/local-ipv4/
    
por 13.01.2012 / 20:26