Domanda

Ho trascorso 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.

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

È stato utile?

Soluzione

Quando dici i file delle tue applicazioni web, non sono sicuro di cosa ti riferisca esattamente.

Se ti riferisci al tuo codice distribuito, probabilmente non ha senso usare EBS. Quello che vuoi fare è creare un AMI con i tuoi prerequisiti, quindi avere uno script per creare un'istanza di tale AMI e distribuire il tuo codice più recente. Consiglio vivamente di automatizzare e testare questo processo in quanto è facile dimenticare alcune impostazioni che è necessario modificare manualmente da qualche parte.

Se si stanno archiviando file di dati, che vengono modificati dall'applicazione in esecuzione, EBS potrebbe avere senso. Se si tratta di immagini simili caricate dall'utente 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.

Altri suggerimenti

EBS ti 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.

Se i tuoi file cambieranno frequentemente (come fa un DB) e non vuoi continuare a sincronizzarli con S3 (o altrove), allora un EBS è una buona strada da percorrere. Se apporti modifiche poco frequenti e puoi sincronizzare manualmente (o tramite script) i file secondo necessità, memorizzali in S3. Se hai bisogno di chiudere o perdi l'istanza per qualsiasi motivo, puoi semplicemente tirarli giù quando avvii la nuova istanza. Questo presuppone anche che ti preoccupi dei costi. Se il costo non è un problema, l'utilizzo di EBS è meno complicato. Non sono sicuro se prevedi di avere un EBS separato per il tuo DB e i tuoi file web, ma se prevedi di avere un solo EBS e hai abbastanza spazio vuoto per i tuoi file web, poi di nuovo, l'EBS è meno complicato . Se sei preoccupato per le prestazioni, come detto, è meglio testare la tua app in particolare.

Il nostro approccio è quello di avere uno script pre-distribuito sul nostro AMI che recuperi la versione più recente e più grande del codice dal controllo del codice sorgente. Ciò rende molto semplice l'avvio rapido di nuove istanze o l'aggiornamento di tutte le istanze in esecuzione (le estraiamo dalla rotazione di bilanciamento del carico una alla volta, eseguiamo lo script e le rimettiamo in rotazione).

UPDATE:

Leggendo tra le righe sembra che tu stia montando un volume EBS separato su un'istanza supportata dal negozio di istanze. AWS ha recentemente introdotto istanze supportate da EBS che offrono molti vantaggi rispetto a quelle dei vecchi store di istanze. Tuttavia, continuo a montare i miei dati MySQL su una partizione EBS separata, in modo da poterli montare facilmente su un server diverso, se necessario.

Consiglio vivamente un'istanza supportata da EBS con un volume EBS separato per i dati MySQL.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top