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.
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.small
satu contoh.
Jika ini tidak memungkinkan saat meluncurkan, saya harus melepaskan IP Elastis dari instance menggunakan fungsi EC2.disassociateAddress .
Jawaban:
Saat menggunakan tipe lingkungan "Satu instance", Anda selalu mendapatkan EIP.
Dari panduan pengembang Beanstalk, Jenis Lingkungan :
Menonaktifkan opsi "Associate Public IP Address" tidak memiliki efek apa pun.
Beralih ke "Load-balancing, Autoscaling" Environment untuk bertahan tanpa EIP.
sumber
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 :
EIP yang ditetapkan secara otomatis yang datang dengan instance baru tidak memerlukan biaya apa pun, dan mereka secara otomatis hilang ketika instance dinonaktifkan.
sumber
aws:ec2:vpc:AssociatePublicIpAddress
dalam 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.aws:ec2:vpc:AssociatePublicIpAddress
hanya untuk instance EC2, jika Anda menetapkannya ke false makadisassociateAddress
instance tidak akan memiliki IP publik.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).
sumber
{ "OptionName": "AssociatePublicIpAddress", "ResourceName": "AWSEBAutoScalingLaunchConfiguration", "Namespace": "aws:ec2:vpc", "Value": "false" },
Meski begitu, IP Elastis menghubungkan ke instance itu. Ada petunjuk?Setelah Anda melepaskan alamat IP elastis, Anda memiliki sekitar 10 detik untuk 'melepaskannya'. Jika Anda melepaskannya, itu tidak akan kembali.
sumber