Quanto è efficace l’acquisizione dell’IP su Amazon EC2?

24 aprile 2008: Amazon sta costruendo una rivoluzionaria piattaforma di cloud computing con il servizio Electric Compute Cloud (EC2). La funzionalità di IP elastico recentemente annunciata espande notevolmente le possibilità di EC2 come vero ambiente di hosting.
Per i requisiti dei siti Web standard, l’attuale implementazione sembra adatta, ma per i progetti che richiedono un’elevata disponibilità esiste almeno una limitazione significativa.
Prevediamo un cluster con bilanciamento del carico interamente all’interno di EC2. Il front-end di questa configurazione sarebbe gestito da due piccole istanze EC2 che fungerebbero efficacemente da bilanciatori di carico o router. Le richieste arriverebbero al router primario e successivamente verrebbero indirizzate all’istanza meno caricata all’interno del cluster. Poiché un singolo router funge da singolo punto di errore, è necessario almeno un router aggiuntivo per un sistema veramente altamente disponibile. Un monitor potrebbe eseguire regolarmente il ping del router primario e, in caso di problemi, il router secondario dovrebbe riassegnare l’indirizzo IP a se stesso e assumere il ruolo di router principale.
In combinazione con le zone di disponibilità di Amazon, tale sistema non avrebbe alcun singolo punto di errore. Per testare la fattibilità di questo layout, abbiamo generato due piccole istanze EC2 e monitorato il tempo impiegato da una seconda istanza per acquisire l’indirizzo IP della prima. In tre test, ci sono voluti in media 3 minuti e mezzo e mai meno di 3 minuti perché ciò si verificasse.
Eseguiamo un cluster simile in un ambiente di hosting tradizionale e le acquisizioni IP richiedono circa 2 secondi.
Ovviamente il risultato è che in caso di guasto del router primario, ci sarebbe un tempo di inattività teorico fino a 3.5 minuti mentre il router secondario è in attesa della propagazione dell’IP. Presumiamo che il gran numero di router all’interno della rete di Amazon renda la propagazione IP più rapida un compito non banale.
Una soluzione sarebbe quella di spostare i router al di fuori di EC2. I tempi di ping e latenza aumentati rendono questa soluzione non ottimale.
Idealmente, Amazon offrirebbe una soluzione di bilanciamento del carico dedicata progettata specificamente per tali scopi. A meno che non venga offerta qualche altra soluzione, i cluster “ad alta disponibilità” interamente all’interno del servizio EC2 di Amazon non saranno veramente altamente disponibili.