Bagaimana cara meningkatkan ke AMI terbaru di AWS Elastic Beanstalk?

18

Saya menjalankan aplikasi pada AWS Elastic Beanstalk, dan sepertinya saya perlu membuat lingkungan baru jika saya ingin menggunakan AMI terbaru.

Jika saya tahu apa id AMI terbaru, saya bisa memperbaruinya dalam konfigurasi lingkungan.

Apakah ada tempat di mana saya dapat menemukan ID AMI Elastic Beanstalk terbaru, atau bahkan lebih baik, mungkinkah instans otomatis digantikan oleh versi baru setiap kali versi baru diluncurkan?

Benjamin
sumber
2
Jalankan lingkungan baru dan lihat apa ID AMI di server yang diluncurkannya?
ceejayoz
2
Itu agak menyebalkan, bukan?
Benjamin
Terakhir kali saya mengatur lingkungan EB butuh sekitar lima menit. AMI Amazon Linux keluar setiap tiga bulan sekali IIRC. 1,6 menit sebulan tidak membuat saya sakit terlalu banyak.
ceejayoz
Biarkan saya ulangi: rasanya harus ada cara yang lebih baik. Tapi Anda benar, ini bukan masalah besar.
Benjamin
2
Mereka benar-benar harus memposting ini dalam beberapa catatan rilis atau lengket di forum mereka daripada hanya meluncurkannya secara diam-diam.
Ken Liu

Jawaban:

2

Cara yang direkomendasikan dan didukung untuk memutakhirkan lingkungan AWS Beanstalk Anda didokumentasikan di sini dan pembaruan platform terkelola dibahas di sini , jujur ​​saya akan berpegang teguh pada hal itu jika Anda ingin segala sesuatunya mudah (dan itu semua tentang Beanstalk), Anda akan secara teori hanya dapatkan pembaruan tanpa gangguan dan AWS akan mengatur prosesnya sehingga tidak ada waktu henti.

Jadi saya hanya ingin menegaskan kembali bahwa pembaruan platform terkelola mungkin adalah apa yang Anda atau orang lain yang datang ke sini dari Google inginkan, tetapi jika Anda ingin mengetahui AWS terbaru yang disediakan AMI untuk lingkungan Beanstalk Anda, hal itu dapat dilakukan secara sepele dengan AWS CLI (terima kasih untuk waras konvensi penamaan dari Amazon pada AMI mereka).

Dimulai dengan instance dari lingkungan Anda, jelaskan instance untuk mendapatkan AMI saat ini (lewati jika Anda sudah tahu AMI saat ini).

aws ec2 describe-instances --instance-ids i-0909613f35ec0ffee --query 'Reservations[*].Instances[*].ImageId' --output text

ami-35290a56

Ambil ID AMI yang dihasilkan dan jelaskan.

aws ec2 describe-images --image-ids ami-35290a56 --query 'Images[*][Architecture, Hypervisor, Name, RootDeviceType, VirtualizationType]' --output json

[
    [
        "x86_64",
        "xen",
        "aws-elasticbeanstalk-amzn-2016.03.0.x86_64-python34-hvm-201603290718",
        "ebs",
        "hvm"
    ]
]

Kita dapat menggunakan output di atas sebagai input ke yang baru, diurutkan describe-imagestetapi kali ini kami mengganti cap waktu dengan *simbol wildcard, seperti:

aws ec2 describe-images --filters 'Name=architecture,Values=x86_64' 'Name=virtualization-type,Values=hvm' 'Name=owner-alias,Values=amazon' 'Name=name,Values=aws-elasticbeanstalk-amzn-*.x86_64-python34-hvm-*' --query 'sort_by(Images[*], &Name)[-1].ImageId' --output text

ami-1be5de78

Karena kekuatan penyortiran leksikal dan ISO 8601, kami berakhir dengan AMI terbaru, yang dalam contoh saya adalah ami-1be5de78.

aws ec2 describe-images --image-ids ami-1be5de78 --query 'Images[*].Name' --output text

aws-elasticbeanstalk-amzn-2016.09.0.x86_64-python34-hvm-201612200708

Sekali lagi, saya tidak akan merekomendasikan Anda mencoba untuk mengubah ke AMI ini dengan tangan, Beanstalk memiliki ketentuan untuk melakukan semua ini untuk Anda!

Nathan
sumber
0

Sepertinya bahkan jika Anda mengubah AMI, untuk menggunakan AMI ElasticBeanstalk yang tepat. Tampaknya tidak berfungsi dengan baik. Itu merindukan semua file. Itu tidak berfungsi dengan benar.

Saya pikir Anda harus memulai lingkungan Pohon Kacang Elastis baru yang memiliki AMI yang diperbarui. Jadikan semuanya berfungsi kemudian tukar url lingkungan.

Wesley Mahler
sumber
0

Anda dapat menggunakan fitur pembaruan terkelola yang datang dengan eb tetapi harus membayar untuk pelaporan kesehatan yang ditingkatkan untuk melakukan ini. Atau gunakan perintah 'eb platform show'; Dalam sebuah aplikasi pekerja memiliki cron yang menjalankan CURRENT = eb platform show your_env_name | sed -n '5p' | cut -d: -f2- | tr -d '[[:space:]]' TERBARU = eb platform show your_env_name | sed -n '6p' | cut -d: -f2- | tr -d '[[:space:]]' - Kemudian membandingkan mereka dan jika berbeda Anda dapat menggunakan eb clone (default ke versi baru) dan kemudian cname swap.

Iain Watt
sumber
0

Menavigasi ke dasbor aplikasi Anda cari 'Konfigurasi' dan klik 'Ubah'

Anda akan melihat daftar di mana Anda dapat memilih Platform. Versi terbaru ditunjukkan dalam daftar itu. Memilih platform

AWS EB menggunakan pengaturan khusus untuk berbagai bahasa pemrograman. Anda dapat menemukan daftar pengaturan di dokumentasi http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html

Ada tabel yang menunjukkan kepada Anda versi AMI yang digunakan oleh setiap platform.

Saya tidak menemukan cara untuk menjalankan pembaruan ini secara otomatis. Saya sebenarnya lebih suka meninjau perubahan platform dan mengujinya sebelum menggunakannya.

Martin Ro
sumber
0

Pilih layanan Anda di Elastic Beanstalk, Anda akan melihat ikhtisar di Dasbor, Di sisi kanan dasbor Anda dapat melihat konfigurasi AMI Anda, Pilih Ubah peningkatan atau turunkan AMI Anda. Pada titik ini Anda akan mengganti instance Anda. Jadi buat cadangan atau klon.

ankuj
sumber
-2

Saya dapat memperbarui aplikasi saya saat ini yang di-host di Beanstalk ke AMI Amazon Linux terbaru menggunakan langkah-langkah di bawah ini.

1- Masuk ke Konsol AWS dan navigasikan ke portal Beanstalk.

2- Arahkan ke halaman konfigurasi aplikasi Anda dan klik 'Instances'.

3 - Cari AMI id seharusnya seperti AMI-xxxxxx.

4- Ambil id AMI dan arahkan kembali ke konsol EC2 dan klik-pada AMI.

5- Ubah tampilan menjadi Gambar Publik dan cari id AMI yang diambil sebelumnya dari konfigurasi Beanstalk.

6- Luncurkan AMI itu sebagai contoh baru.

7- Setelah log yang diluncurkan ke instance dan menyesuaikan sesuai kebutuhan aplikasi Anda.

8- Setelah Anda puas semuanya di tempat seperti yang Anda inginkan untuk membuat gambar AMI dari contoh baru ini.

9- Ambil instance AMI id baru yang dibuat pada langkah 8 dan terapkan itu pada konfigurasi aplikasi Beanstalk Anda.

10- Ini tidak akan menghapus instance lama dan membuat instance baru dengan AMI kustomisasi Anda dan juga menggunakan aplikasi terbaru Anda ke instance baru.

pengguna2040074
sumber
1
Saya pikir Anda salah paham pertanyaannya. Saya tidak bertanya bagaimana cara membuat dan menggunakan AMI khusus, saya bertanya bagaimana cara mengetahui apa yang dimaksud dengan id AMI Elastic Beanstalk default terbaru yang diterapkan ketika Anda membuat lingkungan baru, dan jika mungkin, bagaimana cara otomatis menerapkan AMI baru ketika dirilis oleh AWS.
Benjamin