Cartella condivisa file nell'ambiente Amazon Elastic Beanstalk

Sto lavorando ad un'applicazione Drupal, che è prevista per essere ospitata in ambiente Amazon Elastic Beanstalk. In linea di principio, l'Elastic Beanstalk consente all'applicazione di scalare automaticamente avviando istanze aggiuntive sul server Web in base a regole predefinite. Il database condiviso è in esecuzione su un'istanza RDS di Amazon, che tutte le istanze possono accedere correttamente. Il problema è la cartella dei file condivisi (siti / predefiniti / file).

Stiamo usando git come SCM e con esso possiamo distribuire nuove versioni eseguendo $ git aws.push . Sullo background Elastic Beanstalk elimina automaticamente ( $ rm -rf ) la base di codice corrente da tutti i server in esecuzione nell'ambiente e distribuisce la nuova versione.

Il progetto era quello di utilizzare S3 (s3fs) per i file condivisi nell'ambiente di gestione e NFS nell'ambiente di produzione. Siamo riusciti a configurare l'ambiente nella misura in cui la cartella dei file condivisi viene montata dopo un riavvio correttamente. Ma…

Il problema è che, in questa configuration, l'installazione di nuove versioni sulle istanze in esecuzione non riesce perché $ rm -rf non può rimuovere la directory montata e, di conseguenza, l'integer ambiente scende e abbiamo bisogno di riavviare l'ambiente, t davvero una soluzione elegante.

La prima domanda è che cosa sarebbe il modo giusto per gestire i file condivisi in questo tipo di distribuzione? Stai eseguendo un tale ambiente? Come hai risolto il problema?

Guardando al codice di Elastic Beanstalk Hostmanager (Ruby) sembra un modo per agganciare la nostra funzionalità (smontare se montato in pre-implementazione e montare in post-deploy) in Hostmanager (/ opt / hostmanager / srv / lib / elasticbeanstalk / hostmanager / applicazioni / phpapplication.rb), ma gli script definiti nel file (es. /tmp/php_post_deploy_app.sh) non sembrano funzionare. Questo potrebbe essere perché le nostre abilità Ruby sono inesistenti.

La domanda # 2 è che hai potuto colbind la tua funzionalità in Hostmanager in modo porttile (vale a dire non cambiando i file di Hostmanager core)?

  • BizTalk 2009 Visual Studio 2008 Deployment errore
  • Prelare le immagini del docker con un ISO per la ridistribuzione
  • Quando si utilizza eb CLI è ansible distribuire senza utilizzare git?
  • C'è un modo per accelerare AWS CodeDeploy
  • Distribuisce automaticamente Windows Server 2003 e 2008 in modo automatico
  • Come integrare il monitor nel process di distribuzione di applicazioni web
  • Utilizzo di GIT per tenere traccia delle modifiche in MDT 2012
  • Che cosa fa regsvr32 fare?
  • One Solution collect form web for “Cartella condivisa file nell'ambiente Amazon Elastic Beanstalk”

    Hai considerato di utilizzare sources tramite .ebextensions con i file condivisi memorizzati in S3?

    http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html

    Ho utilizzato le sources per distribuire file condivisi (sitemap) costruiti dal nostro server di applicazioni (e memorizzati in S3).

     sources: "c:/inetpub/sitemaps": http://[S3 bucket]/sitemaps.zip container_commands: 01-copy-sitemaps-to-www: command: copy c:\\inetpub\\sitemaps\\*.* c:\\inetpub\\wwwroot\\ > copy_sitemaps_to_www.log 2>&1 waitAfterCompletion: 5 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.