Qual é a melhor prática para comunicação entre instâncias do Amazon EC2?


41

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.


2
+1 - Eu adoraria IPs elásticos. Observe também que acho que você não pode se comunicar entre regiões por IPs privados.
Joel K

Acho que você descobrirá que um único m1.small oferecerá um desempenho muito melhor do que vários t1.micro. Em seguida, atualize para c1.medium. Em seguida, inicie o lançamento de vários c1.medium ou use um tipo de instância ainda maior. Observe, no entanto, que m1.small e c1.medium suportam apenas 32 bits, não 64 bits.
Eric Hammond

Respostas:


29

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


Obrigado pela sua resposta. Penso cada vez mais que o DNS dinâmico é o caminho a seguir, embora nunca tenha configurado um DNS antes. Você conhece algum site que oferece uma explicação detalhada de como fazer isso?
285

6

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.


Esta é de longe a melhor abordagem.
precisa

2
  • Método de comunicação mais seguro

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

  • IPs privados não estáticos

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


Originalmente, eu havia postado a mesma pergunta no StackOverflow. Alguém sugeriu o uso de um servidor DNS, portanto, se os IPs privados mudarem, isso não importaria, porque eles usariam nomes fornecidos pelo DNS para se comunicar. Qual a sua opinião sobre essa solução?
ks78

1
Não é uma solução ruim se você conseguir manter uma zona DNS dinâmica atualizada, embora, como seria necessário usá-lo e também um servidor DNS primário para todas as suas instâncias, isso também causaria um único ponto de falha, É por isso que eu sugeri mcollective ou Capistrano vez desde que também lhe daria a vantagem de executar operações complexas em seus nós
lynxman

Obrigado. Eu apenas me perguntei qual seria sua opinião sobre essa solução. Vou olhar para mcollective e capistrano.
precisa saber é

Desculpe reviver um segmento antigo, mas os IPs privados ainda não são estáticos no ec2? Não é isso que eu tenho testemunhado em uma nova configuração de ec2 - as interfaces de rede permanecem por aí depois que eu paro os servidores e os endereços IP privados ainda não mudaram em mim. Também pareço poder escolher endereços IP privados secundários, se necessário.
icyitscold
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.