9

Per la scorsa settimana, ho giocato con la gemma di gomma e non riesco a farlo funzionare. Ho deciso che sarebbe stato più semplice impostare manualmente la mia istanza EC2. Il problema è che non so come. Neanche Google è stato di grande aiuto per una newb. Eventuali suggerimenti? È davvero apprezzato.Distribuisci applicazione Rails su EC2

+0

Che cosa non funziona? –

risposta

27

Sicuro.

  1. Creare un account AWS.

  2. Deciso in quale regione si desidera essere. Un sacco di cose vanno in questa decisione, ma ci si preoccupi più tardi e basta fare uno economico come l'Oregon o l'Oriente.

  3. Assicurarsi di essere nell'area corretta in alto a sinistra.

  4. Quindi fare clic su Avvia server.

  5. A questo punto devi scegliere un AMI. Un AMI è fondamentalmente il modello che si desidera utilizzare quando si avvia il server. Amazon ti dà un po ', ma ce ne sono un sacco nella sezione community. Sono un ragazzo di CentOS quindi di solito cerco un AMI di CentOS. RightScale ne fa alcuni buoni in modo da poter cercare uno di quelli. Assicurati di scegliere i386 o x64 a seconda delle dimensioni del server che desideri. Esistono due tipi distinti di AMI, EBS backed e S3 backed. In realtà dovresti rimanere con EBS perché hai qualche libertà in più, ma ci sono dei motivi per usare entrambi che vanno oltre lo scopo di questa risposta. Cerca EBS e probabilmente starai bene. EBS è la memoria di blocco. Fondamentalmente è harddrive attaccabili per le tue istanze. Dal momento che tutto nel cloud è "virtuale" e non si pensa a nulla in senso fisico, bisogna pensare anche a questo. Quindi, se vuoi più spazio di archiviazione, puoi allegare alcuni volumi EBS in seguito. Una cosa però, le istanze supportate da S3 vanno ciao quando le chiudi. Le EBS lo saranno anche se hai impostato il flag di cancellazione sulla terminazione, ma con EBS puoi "fermarle" e "terminarle".

  6. Selezionare la dimensione e la zona di disponibilità. La zona è importante se si sta impostando una sorta di ridondanza. Come se avessi una configurazione master slave con MySQL, metterei il master in una zona e lo slave in un'altra, nel caso in cui Amazon avesse problemi isolati in una zona. Ma per questo scopo generale, non ti preoccupare.

  7. Opzioni di istanza avanzate. Basta lasciare tutto questo da solo probabilmente molto bene. Alcune delle piccole cose qui che puoi impostare in un secondo momento, come la protezione dalla terminazione.

  8. Nome. Qualunque cosa.

  9. Creare una chiave SSH. Striaght in avanti. L'unico modo per accedere ad un server Amazon sarà con la chiave SSH assegnata. Non ci sono nomi utente o password.

  10. Gruppi di sicurezza. Questo è dove potresti essere inciampato, bene qui e # 5. Ma dovresti iniziare a creare una chiamata di gruppo di sicurezza generale o qualunque altra cosa aggiungendo le porte che vuoi aprire su di essa. Quindi, se vuoi inserire ssh in esso, cosa che presumo tu faccia, allora apri 22. Se vuoi usarlo per il web allora apri 80 e 8080 o qualsiasi altra cosa. Ma fa attenzione. Di solito cambio la mia porta SSH in seguito a qualcosa di casuale. E invece di mettere 0.0.0.0/0 su di esso, ho messo il mio ip personale. Ma se non ti interessa più di tanto basta mettere 0.0.0.0/0 e aprire quel ragazzaccio al mondo.

Quindi verrà avviato. Finché tutto è andato come doveva.

Ora puoi effettuare il login. Solo ssh -i thekey.pem thenwholehostname

Spero che questo aiuti.

C'è tutto questo livello gratuito che è possibile utilizzare. http://aws.amazon.com/free/

Verificare. Lo userei mentre giochi con esso.

Ho fatto tutto questo dalla memoria, così avrei potuto essere spento. ;)

1

chantheman ha fornito un ottimo tutorial se si desidera eseguire questa operazione manualmente. Se stai cercando alternative, ti consigliamo di utilizzare una soluzione di terze parti come le piattaforme di gestione del cloud, che semplificano la configurazione di un'istanza EC2 e l'implementazione di applicazioni. RightScale, che è stato menzionato prima come fornitore AMI nel tutorial di chantheman, è uno di questi, ma puoi dare un'occhiata anche a enStratus e Scalr (disclaimer: lavoro lì). Dovrai fornire loro le credenziali AWS per consentire loro di effettuare chiamate API per tuo conto.

I software di gestione cloud forniranno alcune AMI preconfigurate (in Scalr, li chiamiamo ruoli) e offriranno un framework di distribuzione delle applicazioni (abbiamo scritto un post di blog su questo http://scalr.net/blog/announcements/deployments/). Quindi eseguirai il passaggio 2-10 più rapidamente.

Se il budget è limitato, RightScale e enStratus dispongono di un account gratuito mentre Scalr è open-source e disponibile con la licenza Apache 2.

0

Si dovrebbe anche verificare le opzioni di installazione di Ubuntu Juju.

Configurazione per Amazon Web Services

https://juju.ubuntu.com/docs/getting-started.html

Utilizzando Juju per distribuire l'applicazione Rails

https://juju.ubuntu.com/docs/howto-rails.html

Utilizzo base di Ruby on Rails Charm

Creare un file YAML di configurazione con il nome dell'applicazione e la sua posizione git

sample-app.yaml 

sample-app: 
    repo: https://github.com/pavelpachkovskij/sample-rails 

Distribuire l'applicazione e un proxy:

juju deploy --config sample-app.yaml rails myapp 
juju deploy haproxy 
juju add-relation haproxy myapp 

Deploy e riguardano database:

juju deploy postgresql 
juju add-relation postgresql:db myapp 

Ora puoi eseguire le migrazioni:

juju ssh myapp/0 run rake db:migrate 
Seed database 

juju ssh myapp/0 run rake db:seed 

E finalmente esporre il proxy:

juju expose haproxy 
Find the instance's public URL from 

juju status haproxy 

Scala orizzontale con l'aggiunta e la rimozione di unità:

juju add-unit myapp 
juju remove-unit myapp 

O andare ancora più grande con juju aggiungere unità -n10 myapp per 10 nodi.