Saya memiliki pengaturan aplikasi web dengan penyeimbang beban dan grup penskalaan otomatis untuk mengelola penskalaan. Kode sumber ada di repositori git jadi saya tidak perlu memperbarui gambar ketika kode berubah, tetapi kadang-kadang lingkungan berubah sehingga kami membuat gambar baru. Maka gambar itu perlu didaur ulang ke dalam grup penskalaan otomatis.
Apakah ada cara untuk menggilir gambar secara otomatis? Saat ini saya menjadwalkan tindakan peningkatan dan penurunan yang menghilangkan contoh lama.
amazon-ec2
amazon-web-services
autoscaling
platform
sumber
sumber
as-set-instance-health
), sehingga autoscaling hanya menggantinya dengan instance baru.Jawaban:
Saya ingin menyarankan "AWS-HA-Release" untuk melakukan ini - cara kerja AWS-HA-Release:
Dalam hal ini, Anda dapat mengirimkan kode baru atau versi AMI baru tanpa downtime dan mendapatkan manfaat dari instance yang sama sekali baru. Alat AWS-HA-Release tersedia di https://github.com/colinbjohnson/aws-missing-tools .
sumber
Cara yang lebih mudah adalah dengan menambah jumlah instance minimum di Auto-Scaling Group (ASG) untuk menggandakan jumlah Anda saat ini, tunggu ketika semuanya dimulai dan kemudian ubah jumlah minimum instance menjadi apa itu. ELB akan membunuh instance yang lebih lama dan akan meninggalkan instance yang lebih baru dengan kode. Untuk mencapai itu, kebijakan Pengakhiran harus diatur ke ' OldestInstance ' agar berfungsi sebagaimana dimaksud. Kebijakan penghentian standar mungkin memiliki efek samping yang tidak diinginkan.
Anda dapat melihat parameter dan contoh AWS CLI di sini: http://docs.aws.amazon.com/cli/latest/reference/autoscaling/update-auto-scaling-group.html
sumber
cara saya mengelola skenario ini adalah dengan menggunakan fitur UpdatePolicy dari objek AWS :: AutoScaling :: AutoScalingGroup dalam pembentukan cloud. ketika tumpukan formasi cloud diperbarui, ia akan mengelola siklus instance.
beberapa referensi. http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy .html
sumber
Lihat juga alat Netflix Asgard yang sekarang open source. Tidak hanya itu dapat mengatur Auto Scaling Groups, ia juga dapat melakukan rilis gambar AMI baru untuk sekelompok instance.
sumber
Sebenarnya tidak ada cara yang benar-benar baik untuk jujur. Cara terbaik yang saya temukan untuk melakukannya adalah dengan meletakkan versi dalam nama ASG. Setiap kali saya memperbarui AMI, saya membuat ASG + Launch Config baru dengan versi baru sehingga tidak bertentangan dengan grup lain. Kemudian saya mengakhiri semua instance dalam grup lama.
Jika penyebaran yang lebih toleran terhadap kesalahan diperlukan, saya sarankan untuk menambahkan langkah lain dengan melibatkan pembuatan loadbalancer baru juga. Ini memungkinkan Anda untuk memisahkan ASG dari satu sama lain. Ini juga memungkinkan Anda untuk memiliki area "Pementasan" untuk menguji perubahan Anda terakhir kali sebelum memperbarui. Kemudian ketika Anda siap untuk beralih, Anda memperbarui catatan DNS dan mengakhiri semua instance dalam grup lama.
sumber
Seperti yang saya posting di sini (pertanyaan serupa, hanya dengan Terraform), itu tidak dibangun ke ASG dengan cara apa pun, kecuali jika Anda menggunakan cloudformation. Saya berjuang dengan itu juga, jadi akhirnya menulis "roller" yang menonton beberapa ASG, memeriksa status dan pembaruan mereka. Selalu senang menerima umpan balik. http://github.com/deitch/aws-asg-roller
sumber