¿Cuál es la mejor práctica para la comunicación entre instancias de Amazon EC2?

41

He estado configurando instancias de Amazon EC2 para un próximo proyecto. Todos son micro instancias, ejecutando Ubuntu Server 64bit. Esto es lo que he configurado hasta ahora:

  • Servidor web - Apache
  • Servidor de bases de datos - MySQL
  • Servidor de desarrollo - Apache y MySQL
  • Servidor de archivos : SVN y Bacula (las copias de seguridad se realizan en cubos S3)

Actualmente, solo hay un servidor web, pero eventualmente habrá más.

Mi primera pregunta es, ¿cuál es la forma mejor y más segura para que las instancias de Amazon EC2 se comuniquen entre sí? Actualmente estoy usando SSH, ¿es ese el mejor método?

Según Amazon, a las instancias que se comunican entre sí utilizando sus direcciones IP elásticas se les cobrarán tarifas de transferencia de datos. Sin embargo, las instancias que se comunican utilizando sus direcciones IP privadas pueden hacerlo de forma gratuita. Desafortunadamente, parece que las IP privadas cambian si la instancia se detiene y se reinicia.

Entonces esa es mi segunda pregunta, ¿cómo utiliza las IP privadas de las instancias de Amazon si no son estáticas?

Sé que las instancias probablemente no se detendrán y comenzarán con mucha frecuencia, pero aún así, si la dirección IP está en varios archivos de configuración, sería difícil tener que revisarlos todos y cambiarlos.

Me preocupan principalmente los servidores web, que necesitarán acceso al servidor de base de datos y al servidor de archivos, que necesitarán acceso a todas las instancias al realizar copias de seguridad.

Nota: nunca he usado Bacula antes y todavía no lo tengo configurado, pero supongo que necesitará las direcciones IP de los clientes para hacer una copia de seguridad.

ks78
fuente
2
+1 - Me encantaría las IP privadas elásticas. También tenga en cuenta que creo que no puede comunicarse entre regiones a través de IP privadas.
Joel K
Creo que encontrará que un solo m1.small le dará un rendimiento mucho mejor que el t1.micro múltiple. Luego, actualice a c1.medium. Luego, comience a lanzar múltiples c1.medium o use un tipo de instancia aún más grande. Sin embargo, tenga en cuenta que m1.small y c1.medium solo admiten 32 bits, no 64 bits.
Eric Hammond

Respuestas:

29

Consulte el artículo de Eric Hammond que explica cómo usar las direcciones IP elásticas incluso desde EC2. Este método NO genera cargos por ancho de banda porque la resolución de la dirección IP elástica (por nombre) desde EC2 devuelve la dirección IP privada.

http://alestic.com/2009/06/ec2-elastic-ip-internal

Para más opciones, tengo un artículo que examina algunas alternativas:

http://shlomoswidler.com/2010/06/track-changes-to-your-dynamic-cloud-services-automatically.html

Shlomo Swidler
fuente
Gracias por su respuesta. Estoy pensando cada vez más que el DNS dinámico es el camino a seguir, aunque nunca antes configuré un DNS. ¿Conoces algún sitio que ofrezca un tutorial detallado sobre cómo hacerlo?
ks78
6

Implemente su instancia EC2 en una nube privada virtual (VPC) de AWS. Cuando configure su VPC, asignará CIDR a todas las instancias de EC2 en la VPC y la IP interna será estática.

usuario188724
fuente
Este es, con mucho, el mejor enfoque.
ceejayoz
2
  • El método de comunicación más seguro

SSH es un muy buen método para transferir datos entre diferentes servidores, pero si está buscando algo como una conexión permanente (a una base de datos, por ejemplo), puede usar cualquier tipo de software de túnel cifrado como stunnel

  • IP privadas no estáticas

Dado que no hay forma de tener IP privadas estáticas, puede usar algún tipo de implementación automática del servidor para esto, hay varias herramientas como mcollective, capistrano o func que le permitirán registrar su nueva instancia en un servidor central designado y generar acciones en múltiples máquinas basadas en eso

Lynxman
fuente
Originalmente había publicado la misma pregunta en StackOverflow. Allí alguien sugirió usar un servidor DNS, por lo que si las IP privadas cambian, no importaría porque estarían usando nombres proporcionados por DNS para comunicarse. ¿Cuál es tu opinión sobre esa solución?
ks78
1
No es una mala solución si puede mantener una zona DNS dinámica actualizada, aunque dado que necesitaría usar eso, así como un servidor DNS primario para todas sus instancias, también le daría un único punto de falla, es por eso que sugerí mcollective o capistrano en su lugar, ya que eso también le daría la ventaja de ejecutar operaciones complejas en sus nodos
lynxman
Gracias. Me preguntaba cuál sería su opinión sobre esa solución. Investigaré en colectivo y capistrano.
ks78
Lamento revivir un hilo antiguo, pero ¿las IP privadas aún no son estáticas en ec2? Eso no es lo que he presenciado en una nueva configuración de ec2: las interfaces de red se quedan después de que detuve los servidores y las direcciones IP privadas aún no han cambiado. También parece que puedo elegir direcciones IP privadas secundarias si es necesario.
icyitscold 05 de