2009-03-15 17 views
12

Ho passato la giornata a sperimentare con AWS per la prima volta. Ho un'istanza EC2 in esecuzione e ho montato un Elastic Block Store (EBS) per mantenere i database MySQL.EBS per la memorizzazione di database e file di siti Web

Ha senso inserire anche i miei file di applicazioni Web su EBS o devo semplicemente distribuirli nel normale file system EC2?

+0

Nessuno conosce le tue esigenze tranne te. Forse dovresti elborare ... –

+0

Votato come backup perché è una domanda perfettamente legittima. –

+0

Come Kevin Peterson fa notare nella sua risposta, sarebbe molto importante sapere se intendevi codice distribuito o file di dati. – Jonik

risposta

7

Quando dici i file dell'applicazione web, non sono sicuro di cosa ti riferisci esattamente.

Se si fa riferimento al proprio codice distribuito, probabilmente non ha senso utilizzare EBS. Quello che vuoi fare è creare un AMI con i tuoi prerequisiti, quindi avere uno script per creare un'istanza di quell'AMI e distribuire il tuo ultimo codice. Consiglio vivamente di automatizzare e testare questo processo in quanto è facile dimenticare alcune impostazioni da modificare manualmente da qualche parte.

Se si memorizzano file di dati, modificati dall'applicazione in esecuzione, EBS può avere senso. Se questo è qualcosa come immagini caricate dagli utenti o simili, è probabile che S3 ti dia un modello molto più semplice.

EBS andrebbe bene per: database, indici lucene, CMS basato su file, repository SVN o qualcosa di simile.

+1

+1, questa è la risposta più chiara qui.Inoltre, se OP si interroga sulla velocità di EBS rispetto all'archiviazione dell'istanza, deve controllare questo: http://serverfault.com/questions/111594/which-is-faster-for-read-access-on-ec2-local -drive-o-ebs – Jonik

2

EBS offre una memoria permanente, quindi se l'istanza EC2 fallisce i file esistono ancora. Apparentemente il loro è un aumento delle prestazioni IO, ma lo testerei per essere sicuro.

2

Se i tuoi file cambieranno frequentemente (come fa un DB) e non vuoi continuare a sincronizzarli con S3 (o da qualche altra parte), allora un EBS è un buon modo per andare. Se si apportano modifiche poco frequenti e si può manualmente (o con script) sincronizzare i file secondo necessità, quindi memorizzarli in S3. Se hai bisogno di spegnerti o perdi l'istanza per qualsiasi motivo, puoi semplicemente abbatterli quando avvii la nuova istanza. Questo presuppone anche che ti interessi dei costi. Se il costo non è un problema, l'uso dell'EBS è meno complicato. Non sono sicuro che prevedi di avere un EBS separato per il tuo DB e i tuoi file web, ma se pensi di avere solo un EBS e hai abbastanza spazio vuoto per i tuoi file web, allora di nuovo, l'EBS è meno complicato. Se le prestazioni sono preoccupate, come detto, è meglio testare la tua app particolare.

1

Il nostro approccio è quello di avere uno script pre-distribuito sulla nostra AMI che recupera la versione più recente e migliore del codice dal controllo del codice sorgente. Ciò rende molto semplice lanciare rapidamente nuove istanze o aggiornare tutte le istanze in esecuzione (le togliamo dalla rotazione del bilanciamento del carico una alla volta, eseguiamo lo script e li inseriamo nella rotazione).

UPDATE:

Leggendo tra le righe sembra che si sta montaggio di un volume EBS separata a un'istanza-store sostenuto esempio. AWS ha introdotto di recente le istanze supportate da EBS che hanno un sacco di vantaggi rispetto a quelli del vecchio archivio di istanze. Tuttavia, continuo a montare i miei dati MySQL su una partizione EBS separata, in modo da poterlo facilmente montare su un altro server, se necessario.

Suggerisco caldamente un'istanza supportata da EBS con un volume EBS separato per i dati MySQL.