2013-05-03 8 views
7

Possiedo un'applicazione di beanstalk elastico per binari con due ambienti, gestione e produzione. Durante la creazione dell'applicazione e dell'ambiente di gestione temporanea con eb init ho creato un'istanza di database. Ho usato la console eb per creare l'ambiente di produzione e creato una nuova istanza di database che, a quanto vedo, è chiaramente una mossa sbagliata.Come rendere due ambienti Elean Beanstalk condividere un'istanza di database

Come faccio a condividere i miei due ambienti con la stessa istanza di database? Se ciò accade, quando si aggiornano le migrazioni del database nella mia app e si esegue il deployment nella staging; significa che i miei utenti lo vedrebbero perché lo stesso database viene utilizzato dall'ambiente di staging.

Come gestire questo problema?

Ho anche notato che git aws.push non sovrascrive il mio database ma non rimuove le migrazioni di rollback. Mi sto perdendo qualcosa?

risposta

4

Si consiglia di seguire l'opzione seguente: Creare un'istanza rds al di fuori dell'ambiente di beanstalk elastico. Crea schemi separati per produzione e staging. Passa le stringhe di connessione alla tua applicazione EBS. istanza condivisa RDS tra ambienti EBS vi aiuterà a voi:

  1. Diminuzione dei costi del vostro ambiente, perché per avere diverse istanze in esecuzione RDS è costoso.

  2. Aiuta a isolare gli ambienti di produzione e di staging.

+0

Se voglio essere d'accordo con te, come posso spingere il mio database da localhost in modo indipendente alla nuova istanza RDS? Ricorda le sue guide e un git aws.push esegue la distribuzione ma con la tua soluzione non più. Così come? – Femi

+1

È possibile aggiungere alla cartella dell'applicazione .ebextentions con i file di configurazione che conterranno le impostazioni di configurazione come la stringa di connessione a db e gli script per eseguire le migrazioni. Vorrei suggerire di leggere l'articolo: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Ruby_custom_container.html –

+1

Cercherò di spiegare una volta ancora la mia idea: 1. È possibile creare manualmente un'istanza rds e schemi per produzione e messa in scena. 2. È possibile aggiungere all'applicazione i file di configurazione di beanstalk elastico, in cui è possibile definire la stringa di connessione per il database corrente relativo alla gestione temporanea o di produzione, inoltre è possibile definire qui i comandi per eseguire le migrazioni. 3. Per fare git aws.push :) –

Problemi correlati