Avvia istanze tramite Elastic Beanstalk senza IP elastico configurato


10

Sto creando uno strumento per distribuire immagini Docker su EC2 tramite ElasticBeanstalk, in modo che il team di sviluppatori possa rapidamente dimostrare il proprio lavoro senza dover unire. Non voglio che Elastic IP sia abilitato per queste app in quanto di breve durata.

Il motivo per cui lo sto chiedendo è perché se il mio strumento crea più di 5 app (e ha abbastanza rapidamente) qualsiasi nuova app fallirà perché nessun IP elastico può essere assegnato alla nuova app. Questo perché un account AWS in genere ha un massimo di 5 IP elastici disponibili . Posso andare sulla console web aws e scegliere 'Disassociate Elastic IP Address' (vedi sotto) su un'istanza, dopo di che l'istanza ec2 riceverà un nuovo ip (dopo alcuni minuti). Questo è quello che voglio, ma voglio farlo a livello di codice e preferirei avviare l'app senza di essa invece di farlo una volta creata l'istanza.

disassociare l'opzione di menu

Esiste un'opzione di configurazione che posso usare per disabilitare Elastic IP per la nuova istanza?

Sto usando il nodo aws-sdk , ma tutti i suggerimenti in qualsiasi lingua lo faranno.

Sto creando m1.smallistanze singole.

Se ciò non è possibile all'avvio, dovrò dissociare l'IP elastico dall'istanza usando la funzione EC2.disassociateAddress .


Se si sta lanciando in una sottorete privata: stackoverflow.com/questions/39086022/...
lonewarrior556

Risposte:


10

Quando si utilizza il tipo di ambiente "Istanza singola", si ottiene sempre un EIP.

Dalla guida per sviluppatori di Beanstalk, Tipi di ambiente :

Un ambiente a istanza singola contiene un'istanza Amazon EC2 con un indirizzo IP elastico.

La disabilitazione dell'opzione "Associa indirizzo IP pubblico" non ha alcun effetto.

Passa all'ambiente "Bilanciamento del carico, scalabilità automatica" per cavartela senza un EIP.


A differenza delle altre risposte qui, questo in realtà ha risolto il mio problema, quindi grazie :) Per i viaggiatori futuri, nella nuova finestra di dialogo Creazione ambiente, scegli l'opzione "Bilanciamento del carico" sotto il pulsante "Configura più opzioni" alla fine della creazione dell'ambiente modulo.
Jacob Davis-Hansson,

1

Non voglio che Elastic IP sia abilitato per queste app in quanto di breve durata.

Se ti trovi in ​​una sottorete pubblica di VPC (che è probabile), è necessario che quell'istanza sia in grado di comunicare con Internet. Per http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html :

Per consentire a un'istanza nella tua sottorete pubblica di comunicare con Internet, deve disporre di un indirizzo IP pubblico o di un indirizzo IP elastico associato a un indirizzo IP privato sull'istanza . L'istanza è a conoscenza solo dello spazio degli indirizzi IP privati ​​(interni) definito all'interno del VPC e della sottorete. Il gateway Internet fornisce logicamente il NAT one-to-one per conto della tua istanza, in modo che quando il traffico lascia la tua sottorete VPC e va a Internet, il campo dell'indirizzo di risposta è impostato sull'indirizzo IP pubblico o sull'indirizzo IP elastico dell'istanza e non il suo indirizzo IP privato. Al contrario, il traffico destinato a un indirizzo IP pubblico o a un indirizzo IP elastico della propria istanza ha il suo indirizzo di destinazione tradotto nell'indirizzo IP privato dell'istanza prima che il traffico sia consegnato al VPC.

Gli EIP assegnati automaticamente forniti con una nuova istanza non costano nulla e scompaiono automaticamente quando l'istanza viene rimossa.


Grazie per la risposta, ho aggiunto ulteriori informazioni alla domanda che spiega il problema che vedo e come posso aggirarlo tramite la console Web. Potrei fraintendere il funzionamento di AWS, ma potresti consigliarti ulteriormente che ti sarei molto grato.
ed.

@ed. Non ho un'enorme familiarità con EB ma sembra dai documenti che vuoi impostare aws:ec2:vpc:AssociatePublicIpAddressnella tua configurazione EB (e che questo è peculiare di EB a istanza singola). In alternativa, chiedi ad AWS un aumento del tuo limite EIP - nella mia esperienza lo concederanno felicemente in questo tipo di situazione.
Ceejayoz,

evviva ci proverò.
ed.

Ho provato la bandiera sopra senza alcun risultato. Penso che chiamerò disassociateAddress tramite l'sdk.
ed.

1
Per la cronaca: aws:ec2:vpc:AssociatePublicIpAddressè solo per l'istanza ec2, se lo si imposta su false, disassociateAddressl'istanza non avrà un IP pubblico.
ed.

0

C'è un'opzione di ambiente beanstalk elastico che potrebbe essere quello che stai cercando.

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options-general.html#command-options-general-elbloadbalancer

Spazio dei nomi: aws: ec2: vpc AssociatePublicIpAddress: false

Se lo si imposta, tutti i nodi creati da questo ambiente non avranno un IP pubblico. Il traffico in entrata dovrà utilizzare un bilanciamento del carico. Il VPC e le sottoreti dovranno essere associati a un gateway NAT o un gateway Internet per ottenere l'accesso a Internet in uscita. Se non si dispone di accesso a Internet in uscita, la creazione di Elastic Beanstalk non riuscirà (non sarà in grado di raggiungere i servizi AWS).


Ho aggiunto questo alla configurazione EBS: { "OptionName": "AssociatePublicIpAddress", "ResourceName": "AWSEBAutoScalingLaunchConfiguration", "Namespace": "aws:ec2:vpc", "Value": "false" },anche così, Elastic IP si sta associando a quell'istanza. Qualche idea?
Kostanos,

1
questo non è vero, non ha alcun effetto su eip
A-Developer-Has-No-Name

0

Dopo aver dissociato l'indirizzo IP elastico, hai circa 10 secondi per "rilasciarlo". Se lo rilasci, non tornerà.

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.