Qual è la migliore pratica per la comunicazione tra istanze Amazon EC2?


41

Ho impostato istanze Amazon EC2 per un prossimo progetto. Sono tutte microistanze, con Ubuntu Server 64 bit. Ecco cosa ho impostato finora:

  • Server Web - Apache
  • Database Server - MySQL
  • Server di sviluppo - Apache e MySQL
  • File Server - SVN e Bacula (i backup vengono eseguiti su bucket S3)

Attualmente, esiste un solo server Web, ma alla fine ce ne saranno altri.

La mia prima domanda è: qual è il modo migliore e più sicuro per le istanze Amazon EC2 di comunicare tra loro? Attualmente sto usando SSH, è questo il metodo migliore?

Secondo Amazon, le spese di trasferimento dei dati verranno addebitate alle istanze che comunicano tra loro utilizzando i loro indirizzi IP elastici. Tuttavia, le istanze che comunicano utilizzando i loro indirizzi IP privati ​​possono farlo gratuitamente. Sfortunatamente, sembra che gli IP privati ​​cambino se l'istanza viene arrestata e riavviata.

Quindi questa è la mia seconda domanda, come usi gli IP privati ​​delle istanze di Amazon se non sono statici?

So che le istanze probabilmente non verranno arrestate e avviate molto frequentemente, ma comunque, se l'indirizzo IP si trova in vari file di configurazione, sarebbe un problema doverli esaminare tutti e cambiarlo.

Sono principalmente preoccupato per i server Web, che dovranno accedere al server Database e al file server, che dovranno accedere a tutte le istanze durante l'esecuzione dei backup.

Nota: non ho mai usato Bacula prima e non l'ho ancora configurato, ma suppongo che avrà bisogno degli indirizzi IP dei client per eseguirne il backup.


2
+1 - Vorrei IP privati ​​elastici. Inoltre, tieni presente che penso che non sia possibile comunicare tra regioni tramite IP privati.
Joel K,

Penso che scoprirai che un singolo m1.small ti darà prestazioni molto migliori rispetto a più t1.micro. Quindi, passa a c1.medium. Quindi, avvia l'avvio di più c1.medium o usa un tipo di istanza ancora più grande. Si noti, tuttavia, che m1.small e c1.medium supportano solo 32 bit, non 64 bit.
Eric Hammond,

Risposte:


29

Consulta l'articolo di Eric Hammond che spiega come utilizzare gli indirizzi IP elastici anche all'interno di EC2. Questo metodo NON comporta addebiti sulla larghezza di banda poiché la risoluzione dell'indirizzo IP elastico (per nome) dall'interno di EC2 restituisce l'indirizzo IP privato.

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

Per ulteriori opzioni, ho un articolo che esamina alcune alternative:

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


Grazie per la risposta. Penso sempre di più che il DNS dinamico sia la strada da percorrere, anche se non ho mai installato un DNS prima. Conosci siti che offrono una procedura dettagliata su come farlo?
ks78,

6

Distribuisci la tua istanza EC2 in un cloud privato virtuale AWS (VPC). Quando configuri il tuo VPC assegnerai il CIDR a tutte le istanze EC2 nel VPC e l'IP interno sarà statico.


Questo è di gran lunga l'approccio migliore.
Ceejayoz,

2
  • Metodo di comunicazione più sicuro

SSH è un ottimo metodo per trasferire dati tra server diversi ma se stai cercando qualcosa come una connessione permanente (ad esempio a un database) puoi usare qualsiasi tipo di software di tunneling crittografato come stunnel

  • IP privati ​​non statici

Poiché non è possibile avere IP privati ​​statici, è possibile utilizzare una sorta di distribuzione automatica del server per questo, ci sono diversi strumenti come mcollective, capistrano o func che ti permetteranno di registrare la tua nuova istanza su un server designato centrale e generare azioni su più macchine basate su quello


Inizialmente avevo pubblicato la stessa domanda su StackOverflow. Lì qualcuno ha suggerito di usare un server DNS, quindi se gli IP privati ​​cambiano non avrebbe importanza perché userebbero nomi forniti da DNS per comunicare. Qual è la tua opinione su quella soluzione?
ks78,

1
Non è una cattiva soluzione se sei in grado di mantenere aggiornata una zona DNS dinamica, anche se dal momento che dovresti utilizzare quel server DNS primario in tutte le tue istanze ti darebbe anche un singolo punto di errore, ecco perché ho suggerito mcollective o capistrano, dal momento che ciò ti darebbe anche il vantaggio di eseguire operazioni complesse su tutti i tuoi nodi
lynxman,

Grazie. Mi chiedevo solo quale sarebbe stata la tua opinione su quella soluzione. Esaminerò mcollective e capistrano.
ks78,

mi dispiace rivivere un vecchio thread ma gli IP privati ​​sono ancora non statici su ec2? Questo non è ciò a cui ho assistito in una nuova configurazione ec2: le interfacce di rete restano attive dopo che ho fermato i server e gli indirizzi IP privati ​​non mi sono ancora cambiati. Mi sembra anche di poter scegliere indirizzi IP privati ​​secondari, se necessario.
icyitscold,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.