Luncurkan instance melalui Elastic Beanstalk tanpa terkonfigurasi IP Elastis

10

Saya membuat alat untuk menyebarkan gambar Docker ke EC2 melalui ElasticBeanstalk, sehingga tim dev dapat dengan cepat melakukan demo pekerjaan mereka tanpa harus bergabung. Saya tidak ingin IP Elastis diaktifkan untuk aplikasi ini karena tidak berumur pendek.

Alasan saya menanyakan hal ini adalah karena jika alat saya membuat lebih dari 5 aplikasi (dan memiliki cukup cepat) aplikasi baru apa pun akan gagal karena tidak ada IP elastis yang dapat ditugaskan ke aplikasi baru. Ini karena akun AWS biasanya memiliki maksimal 5 IP Elastis yang tersedia . Saya dapat pergi ke konsol web aws dan memilih 'Disassociate Elastic IP Address' (lihat di bawah) pada contoh, setelah itu contoh EC2 akan mendapatkan ip baru (setelah beberapa menit). Inilah yang saya inginkan, tetapi saya ingin melakukannya secara terprogram, dan lebih memilih untuk mem-boot aplikasi tanpa melakukannya daripada melakukan instans begitu instance dibuat.

pilihan menu disassociate

Apakah ada opsi konfigurasi yang bisa saya gunakan untuk menonaktifkan Elastic IP untuk instance baru?

Saya menggunakan node aws-sdk , tetapi semua tips dalam bahasa apa pun bisa dilakukan.

Saya membuat m1.smallsatu contoh.

Jika ini tidak memungkinkan saat meluncurkan, saya harus melepaskan IP Elastis dari instance menggunakan fungsi EC2.disassociateAddress .

ed.
sumber
Jika Anda meluncurkan di subnet pribadi: stackoverflow.com/questions/39086022/...
lonewarrior556

Jawaban:

10

Saat menggunakan tipe lingkungan "Satu instance", Anda selalu mendapatkan EIP.

Dari panduan pengembang Beanstalk, Jenis Lingkungan :

Lingkungan instance tunggal berisi satu instance Amazon EC2 dengan alamat IP elastis.

Menonaktifkan opsi "Associate Public IP Address" tidak memiliki efek apa pun.

Beralih ke "Load-balancing, Autoscaling" Environment untuk bertahan tanpa EIP.

Jens Bannmann
sumber
Tidak seperti jawaban lain di sini, ini benar-benar menyelesaikan masalah saya, jadi terima kasih :) Untuk pelancong masa depan, dalam dialog Penciptaan Lingkungan yang baru, Anda memilih opsi "Muat Penyeimbang" di bawah tombol "Konfigurasikan Lebih Banyak Opsi" di akhir penciptaan lingkungan bentuk.
Jacob Davis-Hansson
1

Saya tidak ingin IP Elastis diaktifkan untuk aplikasi ini karena tidak berumur pendek.

Jika Anda berada di subnet publik VPC (yang kemungkinan), diperlukan satu contoh agar dapat berkomunikasi dengan Internet. Per http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html :

Untuk mengaktifkan instance di subnet publik Anda untuk berkomunikasi dengan Internet, ia harus memiliki alamat IP publik atau alamat IP elastis yang dikaitkan dengan alamat IP pribadi pada instance Anda . Mesin virtual Anda hanya mengetahui ruang alamat IP pribadi (internal) yang ditentukan dalam VPC dan subnet. Gateway Internet secara logis menyediakan NAT satu-ke-satu atas nama instance Anda, sehingga ketika lalu lintas meninggalkan subnet VPC Anda dan pergi ke Internet, bidang alamat balasan diatur ke alamat IP publik atau alamat IP elastis dari instance Anda , dan bukan alamat IP pribadinya. Sebaliknya, lalu lintas yang ditujukan untuk alamat IP publik atau alamat IP elastis dari instance Anda telah menerjemahkan alamat tujuannya ke alamat IP pribadi instance sebelum lalu lintas dikirim ke VPC.

EIP yang ditetapkan secara otomatis yang datang dengan instance baru tidak memerlukan biaya apa pun, dan mereka secara otomatis hilang ketika instance dinonaktifkan.

ceejayoz
sumber
Terima kasih atas jawaban Anda, saya telah menambahkan lebih banyak informasi ke pertanyaan yang menjelaskan masalah yang saya lihat dan bagaimana saya bisa mengatasinya melalui konsol web. Saya mungkin salah paham bagaimana AWS bekerja - tetapi Anda bisa memberi saran lebih lanjut, saya akan sangat berterima kasih.
ed.
@ed. Saya tidak terlalu akrab dengan EB tetapi sepertinya dari dokumen yang ingin Anda atur aws:ec2:vpc:AssociatePublicIpAddressdalam konfigurasi EB Anda (dan ini khusus untuk EB instance-tunggal). Atau, minta AWS untuk meningkatkan batas EIP Anda - dalam pengalaman saya mereka akan dengan senang hati memberikannya dalam situasi semacam ini.
ceejayoz
tepuk tangan, aku akan mencobanya.
ed.
Saya sudah mencoba bendera di atas tetapi tidak berhasil. Saya pikir saya hanya akan memanggil disassociateAddress melalui SDK.
ed.
1
Sebagai catatan: aws:ec2:vpc:AssociatePublicIpAddresshanya untuk instance EC2, jika Anda menetapkannya ke false maka disassociateAddressinstance tidak akan memiliki IP publik.
ed.
0

Ada opsi lingkungan beanstalk elastis yang mungkin Anda cari.

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

Namespace: aws: ec2: vpc AssociatePublicIpAddress: false

Jika Anda mengaturnya maka semua node yang dibuat oleh lingkungan ini tidak akan memiliki IP publik. Lalu lintas masuk harus menggunakan penyeimbang beban. VPC dan subnet perlu dihubungkan dengan gateway NAT atau gateway internet untuk mendapatkan akses internet keluar. Jika Anda tidak memiliki akses internet keluar maka pembangunan Pohon Kacang Elastis akan gagal (Tidak akan dapat menjangkau layanan AWS).

Sam
sumber
Saya menambahkan ini ke konfigurasi EBS: { "OptionName": "AssociatePublicIpAddress", "ResourceName": "AWSEBAutoScalingLaunchConfiguration", "Namespace": "aws:ec2:vpc", "Value": "false" },Meski begitu, IP Elastis menghubungkan ke instance itu. Ada petunjuk?
Kostanos
1
ini tidak benar, tidak berpengaruh pada eip
A-Developer-Has-No-Name
0

Setelah Anda melepaskan alamat IP elastis, Anda memiliki sekitar 10 detik untuk 'melepaskannya'. Jika Anda melepaskannya, itu tidak akan kembali.

lonewarrior556
sumber