Se chiudo l'istanza di Amazon EC2 e la riavvio, tutto andrà bene?


12

Ho un sito web che gira su un'istanza basata su Amazon EC2 Linux ed è mappato su un normale nome di dominio (x.com). Questo sito parla con un database su una seconda istanza EC2.

Ho bisogno di chiudere questa istanza e aumentare la potenza di calcolo dietro di essa ... se lo faccio, quanto tempo ci vorrà e quindi quando accenderò di nuovo la macchina, il mio sito tornerà online? L'indirizzo IP, le informazioni DNS ecc. Saranno tutti conservati in modo che il nome di dominio continui a funzionare e sarà ancora in grado di parlare con il database?

Cordiali saluti, questo è ciò che attualmente vedo per il web server nel pannello informativo di AWS EC2 (gli indirizzi IP esatti sono stati leggermente modificati ma si ottiene l'idea):

Public DNS: ec2-54-1-1-1.us-west-1.compute.amazonaws.com
Private DNS: ip-10-1-1-1.us-west-1.compute.internal
Private IPs: 10.1.1.1

Risposte:


13

L'arresto e l'avvio di un'istanza di avvio EBS è molto simile al semplice riavvio dell'istanza con alcune eccezioni, la più notevole delle quali è:

  1. All'istanza viene assegnato un nuovo indirizzo IP interno.

  2. All'istanza viene assegnato un nuovo indirizzo IP pubblico.

  3. Se l'istanza non si trova in un VPC, qualsiasi indirizzo IP elastico viene dissociato dall'istanza.

  4. Tutti i dati sulla memoria temporanea (spesso in / mnt) vengono persi

Ci sono anche alcune implicazioni sulla fatturazione e sulla disponibilità che ho descritto in questo articolo:

Riavvio vs. arresto / avvio dell'istanza Amazon EC2
http://alestic.com/2011/09/ec2-reboot-stop-start

Le istanze VPC hanno un comportamento leggermente diverso, incluso il mantenimento degli indirizzi IP elastici in stop / start.

Se si utilizza un'istanza come server di database e si desidera connettersi ad esso utilizzando l'indirizzo IP interno (più economico, più veloce) e non si desidera riconfigurare i client del database dopo un arresto / avvio, è possibile assegnare un indirizzo IP elastico all'istanza e utilizzare il nome DNS IP elastico esterno. Questo si risolverà nell'indirizzo IP interno corrente dopo aver riassociato l'indirizzo IP elastico all'istanza riavviata e i client riprenderanno da dove erano stati interrotti.

Vado più in dettaglio su questo approccio in questo articolo:

Utilizzo di IP elastico per identificare istanze interne su Amazon EC2
http://alestic.com/2009/06/ec2-elastic-ip-internal

Come sembra che tu abbia previsto, stop / start è un modo semplice per cambiare l'hardware che alimenta la tua istanza. Ho scritto su questo insieme ad alcune istruzioni e avvertenze in questo articolo:

Spostamento di un'istanza EC2 in un'istanza più grande (o più piccola) Tipo
http://alestic.com/2011/02/ec2-change-type

Per la tua situazione particolare, consiglierei di assegnare un indirizzo IP elastico all'istanza e di cambiare il tuo DNS in modo che punti all'indirizzo IP elastico usando un CNAME con il nome DNS esterno. Potresti farlo subito dopo lo stop / start, oppure potresti farlo in anticipo assicurandoti che tutto funzioni prima dello stop / start.


È ancora preciso? Stamattina ero in chat con il supporto AWS e mi hanno detto che l'IP elastico non è dissociato quando un'istanza viene interrotta. Inoltre, non ho mai visto i nostri indirizzi IP interni cambiare quando si interrompe e si avvia un'istanza.
bshacklett,

@bsacklett Questa risposta è stata un po 'datata. L'ho aggiornato per spiegare che solo le istanze non VPC perdono l'IP elastico. Oggi, la maggior parte dei casi sono in effetti VPC.
Eric Hammond,

4

Quindi, sembra che tu non stia usando Elastic IP, come posso vedere dalle tue informazioni.

Credo che tu debba usare CNAME nel DNS per indicare questa istanza. Se riavvii la macchina, questo ec2-54-1-1-1.us-west-1.compute.amazonaws.comnome DNS cambierà e il tuo sito smetterà di funzionare.

Per quanto riguarda l'IP interno, cambierà anche, a meno che tu non stia usando VPC, cosa che non sei.

Quindi, se fossi in te, starò molto attento a riavviare questa macchina.

Per quanto riguarda il tempo, non ci vorrà altro che un paio di minuti.

Inoltre, se si dispone di iptables in esecuzione nell'istanza DB, che consente a questo IP interno di connettersi al DB, non funzionerà, poiché l'IP interno cambierà.

Quindi, si prega di fare attenzione se si desidera riavviare questa istanza e riflettere attentamente su di essa.


2

Il tuo IP interno / nome host cambierà e il tuo IP elastico si staccherà (a meno che tu non sia in un VPC).

Ricollegare l'IP elastico dopo aver riavviato l'istanza. Lo faccio regolarmente per cambiare le dimensioni delle istanze e stai solo osservando un paio di minuti di downtime.

Verifica che Apache e tutti gli altri servizi siano impostati per l'avvio ( chkconfigse esegui amazon linux ami).


1

Per quanto posso ricordare, fermare il sistema cambiando il suo tipo e riavviarlo non dovrebbe richiedere più di 5-10 minuti (non si dice che sia un sistema supportato da EBS). Per avviare i servizi una volta che il sistema è tornato, assicurarsi di avere tutti i servizi abilitati per l'avvio al riavvio (come per Puppet sul mio Ubuntu 12.04 l'ho abilitato in / etc / default / puppet). Prendi nota dell'IP (l'ho fatto da molto tempo, quindi non ricordare chiaramente) e al massimo il tuo IP può staccarsi dal sistema ma sarebbe ancora presente nel tuo account, quindi vai nella sezione IP elastico e associalo di nuovo al riavviato il sistema e andrà tutto bene.


1

Come già accennato, se si dispone di un IP elastico, si ricollegherà all'istanza, quindi non è necessario toccare le impostazioni DNS. In un modo o nell'altro, tuttavia, il tuo IP privato cambierà. Questo probabilmente significa che dovrai aggiornare le tue impostazioni GRANT in mysql. Perché non hai solo GRANT ALL PRIVILEGES ON *.* to 'somedude'@'%'... giusto? ;)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.