2012-05-24 20 views
24

Amazon ti dà solo un certo numero di indirizzo IP statico e gli indirizzi IP locale (privato) di ogni istanza EC2 può cambiare quando il computer viene riavviato. Questo rende la creazione di una piattaforma stabile dove istanze EC2 dipendono l'uno dall'altro ridicolmente difficile da usare, per quanto posso dire.Soluzione per le modifiche IP locale del istanze EC2 AWS

Ho cercato molte soluzioni online e finora non ho trovato nulla di ragionevole al di fuori dell'assegnazione di un indirizzo IP elastico su sempre EC2 anche se non è rivolto al pubblico. Qualcuno ha altre buone idee che è in realtà facile da eseguire?

Grazie!

vedere la risposta della squadra AWS alla domanda Static local IP:

L'indirizzo IP interno di istanze EC2 è assegnato tramite DHCP. Su esempio l'arresto, o quando il lease DHCP scade, l'indirizzo IP è restituito al generale piscina EC2 DHCP di indirizzi disponibili per altri istanze.

Non v'è alcun modo per garantire che si ottiene lo stesso indirizzo DHCP dopo il riavvio.

Modifica: La risposta è utilizzare Amazon VPC. Non ci sono svantaggi tranne una quantità insignificante di setup extra perché ora controlli il router. È un mondo a parte la semplice vecchia istanza EC2 su AWS. È così necessario, infatti, che VPC sarà abilitato per tutte le future configurazioni AWS per impostazione predefinita. Vedere questo post per ulteriori informazioni: http://www.reddit.com/r/aws/comments/1a3n0r/ec2_update_virtual_private_clouds_for_everyone/

+1

C'è un tutorial su esattamente come configurare l'Amazon VPC? Non ne so nulla. – Miranda

+0

Miranda: leggi questi. http://blog.engineering.kiip.me/post/12288961849/ec2-to-vpc-transition-worth-doing http://nineofclouds.blogspot.com/2013/01/vpc-migration-planning.html https: //forums.aws.amazon.com/thread.jspa?threadID=126976 – Maziyar

+0

@Mauvis, quanto costa VPC? – Pacerier

risposta

16

lo stock risposte sono:

  1. Usa AWS VPC in modo da avere il controllo completo su esempio di indirizzamento
  2. Usa IP Elastic, che risolverà a indirizzo locale dell'istanza (non il pubblico, come si' d aspettarsi) quando usato per comunicare tra istanze EC2
+0

Grazie gabrtv. Solo una nota qui che AWS VPC non funziona con le micro istanze. Sto usando Kue per creare una coda pub/sub worker e acquistare tutte le piccole istanze (a 4 volte il costo) non è gestibile. Guardando le altre soluzioni. –

+0

Inoltre, si è limitato a quanti IP elastici è possibile avere. Il nostro limite sembra essere 10. –

+1

@MauvisLedford Credo che il limite inizi alle 5. Comunque puoi richiedere più IP Elastici qui: http: //aws.amazon.it/contact-us/eip_limit_request/ – gabrtv

1

Mi trovavo nella stessa situazione una volta. Non ho ancora le competenze per risolverlo correttamente. La mia brutta soluzione era usare l'elb non proprio per il bilanciamento del carico ma solo per l'endpoint.

Ma penso che una buona soluzione può essere ottenuto utilizzando aws vpc.

+0

Questo può sommarsi a $ 18,60 mese minimo + $ 0,008 per GB Dati elaborati. Grazie per aver discusso l'opzione però. Indagherà su Amazon Virtual Private Cloud. –

12

Mi sono imbattuto in terza opzione. C'è ec2-ssh dalla gente Instragram. È uno script di shell Python che si installa a livello globale e consente di interrogare i DNS pubblici delle istanze di ec2 tramite il nome del tag e anche ssh tramite il nome del tag.

La documentazione è praticamente inesistente. Ho scritto giù per le scale per l'installazione di seguito:

Per installare EC2-ssh:

  1. sudo yum install python-boto (involucro pitone per EC2 API)
  2. git clone
  3. Nel vostro ~ /.bash_profile impostare la chiave di accesso AWS e segreta in questo modo:

    export AWS_ACCESS_KEY_ID = XYZ123

    export AWS_SECRET_ACCESS_KEY = XYZ123

  4. cd nella cartella bin del pronti contro termine, ci saranno due file:

    ec2-host e ec2-ssh

copiali sul tuo /usr/bin o /usr/local/bin.

ora si può fare roba impressionante come:

$ ec2-host ZenWorker 
ec2-999-xy-999-99.compute-1.amazonaws.com 

e

$ ec2-ssh ZenWorker 
Connecting to ec2-999-xy-999-99.compute-1.amazonaws.com. 

Si noti che negli script di shell regolari è possibile utilizzare apici inversi per chiamare questi strumenti globali. Ho programmato queste chiamate e prendono tra 0,25 e 0,5 secondi utilizzando un'istanza EC2, quindi questo è davvero l'unico svantaggio. Forse puoi vivere con il ritardo, o usare il fatto che il DNS pubblico cambia solo per un'istanza al riavvio per elaborare una soluzione.

Si noti che questi due programmi sono script a riga di comando e non è necessaria alcuna conoscenza di Python per utilizzarli. Per i fan di PHP, o quelli che vogliono anche un modo semplice per i file scp senza conoscere il DNS pubblico che cambia, è possibile effettuare il checkout ec2dns.

0

è possibile modificare un indirizzo IP usando Elastic Ip: si può fare utilizzando C# Codice:

var associateRequest = new AssociateAddressRequest 
      { 
       PublicIp = your Elastic Ip, 
       InstanceId = Your Instance Id Which You Assign 
      };  
     amazonEc2Client.AssociateAddress(associateRequest); 

Dopo di che DeAssociate E.

 var disAssociateRequest = new isassociateAddressRequest(publicIp.ElasticIpAddress1); 
    AmazonEc2Client.DisassociateAddress(your Elastic Ip); 

tuo IP pubblico cambierà

Problemi correlati