Amazon beberapa instans ELB menggunakan grup penskalaan otomatis yang sama

Saya memiliki 2 instans Amazon ELB yang menggunakan grup Auto scaling yang sama.

Saya mengatur jenis Pemeriksaan Kesehatan ke ELB untuk grup Penskalaan otomatis.

Pada setiap instance EC2 dari ASG saya memiliki 2 aplikasi web (mereka dihosting di IIS, tapi menurut saya itu tidak terlalu relevan).

Setelah semuanya berjalan dan berjalan, saya mematikan IIS pada salah satu instans tersebut sehingga pemeriksaan kesehatan dari kedua ELB gagal untuk instans EC2 spesifik tersebut. (ASG masih menganggap instance tersebut sehat, namun ELB menganggapnya tidak dapat digunakan).

ASG saya punya

Desired instances: 2
Min: 2
Max: 4

Saya mengharapkan instans EC2 dihentikan dan ASG membuat yang baru, tetapi ini tidak terjadi.

Ada ide? Terima kasih

PS: Ini berfungsi dengan baik untuk 1 instance ELB dan 1 ASG dengan hanya satu aplikasi web di bawah IIS.


person Mihai    schedule 23.04.2014    source sumber
comment
Sepertinya kotak sudut. Apakah ada alasan mengapa Anda menggunakan dua aplikasi web di server yang sama?   -  person Rico    schedule 23.04.2014


Jawaban (2)


Dari dokumentasi:

Jika ada beberapa penyeimbang beban yang terkait dengan grup Auto Scaling Anda, Auto Scaling akan memeriksa status kesehatan instans EC2 Anda dengan melakukan panggilan pemeriksaan kesehatan ke setiap penyeimbang beban. Untuk setiap panggilan, jika tindakan Elastic Load Balancing mengembalikan status apa pun selain InService, instans akan ditandai sebagai tidak sehat. Setelah Auto Scaling menandai sebuah instans sebagai tidak sehat, instans tersebut akan tetap berada dalam status tersebut, meskipun panggilan berikutnya dari penyeimbang beban lain mengembalikan status InService untuk instans yang sama.

Mereka tidak menyebutkan tindakan penghentian secara spesifik, namun dari apa yang saya pahami, hal ini akan menjadikan ELB tertentu tidak sehat jika gagal dalam pemeriksaan kesehatan - namun karena ELB lain menandainya sebagai InService, tidak ada alasan untuk penghentian.

Tentu saja, karena AWS, Anda selalu dapat menggunakan API untuk menulis beberapa kode guna mendeteksi hal ini, dan menghentikan (mengatur tidak sehat) instance bermasalah yang berfungsi untuk satu ELB dan bukan yang lain.

Atau pendekatan yang lebih bersih adalah dengan membaginya menjadi ASG terpisah yang masing-masing memiliki satu ELB.

person Tom Feiner    schedule 23.04.2014
comment
Terima kasih atas jawabannya. Saya sudah menyetel pemeriksaan kesehatan ke ELB pada grup penskalaan otomatis dan berfungsi dengan baik jika saya menggunakan ASG tersebut hanya dengan 1 instance ELB. Namun jika saya menggunakannya dengan 2 instans ELB dan 2 aplikasi web terpisah di setiap instans EC2, ASG tidak akan menghentikan mesin yang tidak merespons pemeriksaan kesehatan. - person Mihai; 24.04.2014

Jenis pemeriksaan kondisi ASG default adalah pemeriksaan status instans EC2. Coba saja atur sebagai ELB sehingga akan mempertimbangkan hasil health check ELB untuk scale out/in. Silakan merujuk ke: http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/as-add-elb-healthcheck.html

person ymchen    schedule 12.11.2014