Estou configurando instâncias do Amazon EC2 para um próximo projeto. São todas micro instâncias, executando o Ubuntu Server 64bit. Aqui está o que eu configurei até agora:
- Servidor Web - Apache
- Servidor de Banco de Dados - MySQL
- Servidor de Desenvolvimento - Apache & MySQL
- Servidor de arquivos - SVN e Bacula (os backups são feitos nos buckets S3)
Atualmente, existe apenas um servidor Web, mas eventualmente haverá mais.
Minha primeira pergunta é: qual é a melhor e mais segura maneira de as instâncias do Amazon EC2 se comunicarem entre si? Atualmente estou usando SSH, esse é o melhor método?
Segundo a Amazon, as instâncias que se comunicarem entre si usando seus endereços IP Elastic serão cobradas taxas de transferência de dados. No entanto, as instâncias que se comunicam usando seus endereços IP privados podem fazê-lo gratuitamente. Infelizmente, parece que os IPs privados mudam se a instância for parada e reiniciada.
Portanto, essa é minha segunda pergunta: como você usa os IPs privados das instâncias da Amazon, se eles não são estáticos?
Eu sei que as instâncias provavelmente não serão interrompidas e iniciadas com muita frequência, mas ainda assim, se o endereço IP estiver em vários arquivos de configuração, seria uma pena ter que passar por todas elas e alterá-las.
Estou preocupado principalmente com os servidores Web, que precisarão acessar o servidor de banco de dados e o servidor de arquivos, que terão acesso a todas as instâncias ao executar backups.
Nota: Eu nunca usei o Bacula antes e ainda não o tenho configurado, mas estou assumindo que ele precisará dos endereços IP dos clientes para fazer backup deles.
Respostas:
Confira o artigo de Eric Hammond, explicando como usar endereços IP Elastic, mesmo de dentro do EC2. Esse método NÃO resulta em cobranças de largura de banda porque a resolução do endereço IP elástico (por nome) de dentro do EC2 retorna o endereço IP privado.
http://alestic.com/2009/06/ec2-elastic-ip-internal
Para mais opções, tenho um artigo examinando algumas alternativas:
http://shlomoswidler.com/2010/06/track-changes-to-your-dynamic-cloud-services-automatically.html
fonte
Implante sua instância do EC2 em uma AWS Virtual Private Cloud (VPC). Ao configurar sua VPC, você atribuirá o CIDR a todas as instâncias do EC2 na VPC e o IP interno será estático.
fonte
O SSH é um método muito bom para transferir dados entre diferentes servidores, mas se você estiver procurando algo como uma conexão permanente (para um banco de dados, por exemplo), poderá usar qualquer tipo de software de encapsulamento criptografado, como
stunnel
Como não há como ter IPs privados estáticos, você pode usar algum tipo de implantação automática de servidor para isso, existem várias ferramentas, como mcollective, capistrano ou func, que permitem registrar sua nova instância em um servidor central designado e gerar ações em vários máquinas com base nisso
fonte