Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bagian ini menjelaskan fungsionalitas fitur Elastic Beanstalk Enhanced Health.
Pelaporan kesehatan yang disempurnakan adalah fitur yang dapat Anda aktifkan di lingkungan Anda AWS Elastic Beanstalk untuk memungkinkan mengumpulkan informasi tambahan tentang sumber daya di lingkungan Anda. Elastic Beanstalk menganalisis informasi yang dikumpulkan untuk memberikan gambaran yang lebih baik tentang kondisi lingkungan secara keseluruhan dan bantuan dalam identifikasi masalah yang dapat menyebabkan aplikasi Anda menjadi tidak tersedia.
Selain perubahan dalam cara kerja warna kondisi, kondisi yang ditingkatkan menambahkan deskriptor status yang menyediakan indikator kepelikan masalah yang diamati ketika lingkungan berwarna kuning atau merah. Ketika informasi lebih lanjut tersedia tentang status saat ini, Anda dapat memilih tombol Penyebab untuk melihat informasi kondisi yang detail pada halaman kondisi.
Untuk memberikan informasi kesehatan terperinci tentang EC2 instans Amazon yang berjalan di lingkungan Anda, Elastic Beanstalk menyertakan agen kesehatan di Amazon Machine AMI Image () untuk setiap versi platform yang mendukung peningkatan kesehatan. Agen kondisi memantau log server web dan metrik sistem dan menyampaikannya ke layanan Elastic Beanstalk. Elastic Beanstalk menganalisis metrik dan data ini dari Elastic Load Balancing dan EC2 Amazon Auto Scaling untuk memberikan gambaran keseluruhan tentang kesehatan lingkungan.
Selain mengumpulkan dan menyajikan informasi tentang sumber daya lingkungan Anda, Elastic Beanstalk memantau sumber daya di lingkungan Anda untuk beberapa kondisi kesalahan dan memberikan notifikasi untuk membantu Anda menghindari kegagalan dan menyelesaikan masalah konfigurasi. Faktor-faktor yang mempengaruhi kondisi lingkungan Anda mencakup hasil dari setiap permintaan yang disajikan oleh aplikasi Anda, metrik dari sistem operasi instans Anda, dan status deployment yang terbaru.
Anda dapat melihat status kesehatan secara real time dengan menggunakan halaman ikhtisar lingkungan dari konsol Elastic Beanstalk atau perintah eb health di antarmuka baris perintah Elastic Beanstalk (EB). CLI Untuk merekam dan melacak kesehatan lingkungan dan instans dari waktu ke waktu, Anda dapat mengonfigurasi lingkungan Anda untuk mempublikasikan informasi yang dikumpulkan oleh Elastic Beanstalk untuk pelaporan kesehatan yang ditingkatkan ke CloudWatch Amazon sebagai metrik khusus. CloudWatch biayaEnvironmentHealth
, yang gratis.
Catatan platform Windows
Saat Anda mengaktifkan pelaporan kesehatan yang disempurnakan di lingkungan Windows Server, jangan ubah konfigurasi IIS logging
Selain itu, jangan nonaktifkan atau hentikan layanan Windows agen kondisi Elastic Beanstalk pada salah satu instans lingkungan Anda. Untuk mengumpulkan dan melaporkan informasi kondisi yang ditingkatkan pada instans, layanan ini harus diaktifkan dan berjalan.
Pertama kali Anda membuat lingkungan Elastic Beanstalk meminta Anda untuk membuat peran yang diperlukan dan memungkinkan pelaporan kesehatan yang ditingkatkan secara default. Lanjutkan membaca untuk detail tentang cara kerja pelaporan kondisi yang ditingkatkan, atau lihat Mengaktifkan pelaporan kondisi yang ditingkatkan Elastic Beanstalk untuk mulai menggunakannya segera.
Topik
- Agen kondisi Elastic Beanstalk
- Faktor dalam menentukan kondisi instans dan lingkungan
- Penyesuaian aturan pemeriksaan kondisi
- Peran kondisi yang ditingkatkan
- Otorisasi kondisi yang ditingkatkan
- Peristiwa kondisi yang ditingkatkan
- Perilaku pelaporan kondisi yang ditingkatkan selama pembaruan, deployment, dan penskalaan
- Mengaktifkan pelaporan kondisi yang ditingkatkan Elastic Beanstalk
- Pemantauan kondisi yang ditingkatkan dengan konsol manajemen lingkungan
- Warna dan status kondisi
- Metrik instans
- Mengonfigurasi aturan kondisi yang ditingkatkan untuk lingkungan
- Menerbitkan metrik CloudWatch kustom Amazon untuk suatu lingkungan
- Menggunakan pelaporan kondisi yang ditingkatkan dengan API Elastic Beanstalk
- Format log kondisi yang ditingkatkan
- Pemberitahuan dan pemecahan masalah
Agen kondisi Elastic Beanstalk
Agen kesehatan Elastic Beanstalk adalah proses daemon (atau layanan, di lingkungan Windows) yang berjalan di setiap instans EC2 Amazon di lingkungan Anda, memantau sistem operasi dan metrik kesehatan tingkat aplikasi, serta melaporkan masalah ke Elastic Beanstalk. Agen kondisi termasuk dalam semua versi platform yang dimulai dengan versi 2.0 dari setiap platform.
Agen kesehatan melaporkan metrik serupa dengan yang diterbitkan CloudWatch oleh Amazon EC2 Auto Scaling dan Elastic Load Balancing sebagai bagian dari pelaporan kesehatan dasarCPU, termasuk HTTP beban, kode, dan latensi. Agen kondisi, bagaimanapun, melaporkan langsung ke Elastic Beanstalk, dengan granularitas yang lebih besar dan frekuensi dari pelaporan kondisi dasar.
Untuk kondisi dasar, metrik ini diterbitkan setiap lima menit dan dapat dipantau dengan grafik di konsol manajemen lingkungan. Dengan kondisi yang ditingkatkan, agen kondisi Elastic Beanstalk melaporkan metrik ke Elastic Beanstalk setiap 10 detik. Elastic Beanstalk menggunakan metrik yang disediakan oleh agen kondisi untuk menentukan status kondisi setiap instans di lingkungan dan, dikombinasikan dengan faktor, untuk menentukan kondisi lingkungan secara keseluruhan.
Kesehatan lingkungan secara keseluruhan dapat dilihat secara real time di halaman ikhtisar lingkungan konsol Elastic Beanstalk, dan diterbitkan CloudWatch oleh Elastic Beanstalk setiap 60 detik. Anda dapat melihat metrik terperinci yang dilaporkan oleh agen kesehatan secara real time dengan eb healthperintah di CLIEB.
Dengan biaya tambahan, Anda dapat memilih untuk mempublikasikan instans individual dan metrik tingkat lingkungan setiap 60 detik. CloudWatch Metrik yang diterbitkan untuk kemudian CloudWatch dapat digunakan untuk membuat grafik pemantauan di konsol manajemen lingkungan.
Pelaporan kesehatan yang ditingkatkan hanya dikenakan biaya jika Anda memilih untuk mempublikasikan metrik kesehatan yang disempurnakan. CloudWatch Bila Anda menggunakan kondisi yang ditingkatkan, Anda tetap mendapatkan metrik kondisi dasar yang diterbitkan secara gratis, meskipun Anda tidak memilih untuk menerbitkan metrik kondisi yang ditingkatkan.
Lihat Metrik instans untuk detail metrik yang dilaporkan oleh agen kondisi. Untuk detail tentang penerbitan metrik kesehatan yang disempurnakan CloudWatch, lihatMenerbitkan metrik CloudWatch kustom Amazon untuk suatu lingkungan.
Faktor dalam menentukan kondisi instans dan lingkungan
Selain pemeriksaan sistem pelaporan kondisi dasar, termasuk Pemeriksaan kondisi Elastic Load Balancing dan pemantauan sumber daya, pelaporan kondisi yang ditingkatkan Elastic Beanstalk mengumpulkan data tambahan tentang keadaan instans di lingkungan Anda. Ini termasuk metrik sistem operasi, log server, dan keadaan operasi lingkungan yang sedang berlangsung seperti deployment dan pembaruan. Layanan pelaporan kondisi Elastic Beanstalk menggabungkan informasi dari semua sumber yang tersedia dan menganalisanya untuk menentukan kondisi lingkungan secara keseluruhan.
Operasi dan perintah
Ketika Anda melakukan operasi pada lingkungan Anda, seperti men-deploy versi baru dari aplikasi, Elastic Beanstalk membuat beberapa perubahan yang mempengaruhi status kondisi lingkungan.
Misalnya, ketika Anda menerapkan versi baru aplikasi ke lingkungan yang menjalankan beberapa instance, Anda mungkin melihat pesan yang mirip dengan berikut ini saat Anda memantau kesehatan lingkungan dengan EB. CLI
id status cause
Overall Info Command is executing on 3 out of 5 instances
i-bb65c145 Pending 91 % of CPU is in use. 24 % in I/O wait
Performing application deployment (running for 31 seconds)
i-ba65c144 Pending Performing initialization (running for 12 seconds)
i-f6a2d525 Ok Application deployment completed 23 seconds ago and took 26 seconds
i-e8a2d53b Pending 94 % of CPU is in use. 52 % in I/O wait
Performing application deployment (running for 33 seconds)
i-e81cca40 Ok
Dalam contoh ini, status keseluruhan lingkungan adalah Ok
dan penyebab status ini adalah bahwa Perintah mengeksekusi 3 dari 5 instans. Tiga instans di lingkungan memiliki status Tertunda, menunjukkan bahwa operasi sedang berlangsung.
Saat operasi selesai, Elastic Beanstalk melaporkan informasi tambahan tentang operasi tersebut. Sebagai contoh, Elastic Beanstalk menampilkan informasi berikut tentang instans yang telah diperbarui dengan versi baru dari aplikasi:
i-f6a2d525 Ok Application deployment completed 23 seconds ago and took 26 seconds
Informasi kondisi instans juga mencakup detail tentang deployment terbaru untuk setiap instans di lingkungan Anda. Setiap instans melaporkan ID deployment dan status. ID deployment adalah integer yang meningkat satu setiap kali Anda men-deploy versi baru dari aplikasi Anda atau mengubah pengaturan untuk opsi konfigurasi pada instans, seperti variabel lingkungan. Anda dapat menggunakan informasi deployment untuk mengidentifikasi instans yang menjalankan versi yang salah dari aplikasi Anda setelah deployment bergulir yang gagal.
Di kolom penyebab, Elastic Beanstalk mencakup pesan informasi tentang keberhasilan operasi dan kondisi sehat lainnya di beberapa pemeriksaan kondisi, tetapi mereka tidak bertahan tanpa batas waktu. Penyebab status lingkungan yang tidak sehat bertahan sampai lingkungan kembali ke status yang sehat.
Waktu perintah habis
Elastic Beanstalk memberlakukan waktu perintah habis dari waktu operasi dimulai untuk mengizinkan sebuah instans melakukan transisi ke keadaan yang sehat. Waktu perintah habis ini diatur dalam pembaruan lingkungan Anda dan konfigurasi deployment (di namespace aws:elasticbeanstalk:command) dan secara default ke 10 menit.
Selama pembaruan bergulir, Elastic Beanstalk menerapkan batas waktu terpisah untuk setiap batch dalam operasi tersebut. Waktu habis ini ditetapkan sebagai bagian dari konfigurasi pembaruan bergulir lingkungan (di namespace aws:autoscaling:updatepolicy:rollingupdate). Jika semua instance dalam batch sehat dalam batas waktu pembaruan bergulir, operasi berlanjut ke batch berikutnya. Jika tidak, operasi gagal.
catatan
Jika aplikasi Anda tidak lolos pemeriksaan kondisi dengan status OK tetapi stabil pada tingkat yang berbeda, Anda dapat mengatur pilihan HealthCheckSuccessThreshold
pada pilihan aws:elasticbeanstalk:command namespace untuk mengubah tingkat di mana Elastic Beanstalk menganggap sebuah instans sehat.
Agar lingkungan web server dianggap sehat, setiap instans di lingkungan atau batch harus lolos 12 pemeriksaan kondisi berturut-turut selama dua menit. Untuk lingkungan tingkat pekerja, setiap instans harus lolos 18 pemeriksaan kondisi. Sebelum perintah berakhir, Elastic Beanstalk tidak menurunkan status kondisi lingkungan ketika pemeriksaan kondisi gagal. Jika instans di lingkungan menjadi sehat selama waktu perintah habis, operasi berhasil.
HTTPpermintaan
Ketika tidak ada operasi yang berlangsung pada lingkungan, sumber utama informasi tentang instans dan kondisi lingkungan adalah log web server untuk setiap instans. Untuk menentukan kondisi suatu instans dan kondisi lingkungan secara keseluruhan, Elastic Beanstalk mempertimbangkan jumlah permintaan, hasil dari setiap permintaan, dan kecepatan di mana setiap permintaan diselesaikan.
Pada platform berbasis Linux, Elastic Beanstalk membaca dan mem-parsing log server web untuk mendapatkan informasi tentang permintaan. HTTP Pada platform Windows Server, Elastic Beanstalk menerima informasi ini langsung dari server web. IIS
Lingkungan Anda mungkin tidak memiliki server web yang aktif. Sebagai contoh, platform Multicontainer Docker tidak memasukkan server web. Platform lain memasukkan server web, dan aplikasi Anda mungkin menonaktifkannya. Dalam kasus ini, lingkungan Anda memerlukan konfigurasi tambahan untuk menyediakan agen kondisi Elastic Beanstalk dengan log dalam format yang dibutuhkan untuk menyampaikan informasi kondisi ke layanan Elastic Beanstalk. Lihat Format log kondisi yang ditingkatkan untuk detail selengkapnya.
Metrik sistem operasi
Elastic Beanstalk memantau metrik sistem operasi yang dilaporkan oleh agen kondisi untuk mengidentifikasi instans yang secara konsisten rendah pada sumber daya sistem.
Lihat Metrik instans untuk detail metrik yang dilaporkan oleh agen kondisi.
Penyesuaian aturan pemeriksaan kondisi
Pelaporan kondisi yang ditingkatkan Elastic Beanstalk bergantung pada seperangkat aturan untuk menentukan kondisi lingkungan Anda. Beberapa aturan ini mungkin tidak sesuai untuk aplikasi tertentu Anda. Kasus umum adalah aplikasi yang sering mengembalikan kesalahan HTTP 4xx berdasarkan desain. Elastic Beanstalk, menggunakan salah satu aturan default, menyimpulkan bahwa ada sesuatu yang salah, dan mengubah status kondisi lingkungan Anda dari OK ke Peringatan, Terdegradasi, atau Pelik, tergantung pada tingkat kesalahan. Untuk menangani kasus ini dengan benar, Elastic Beanstalk memungkinkan Anda mengonfigurasi aturan ini dan mengabaikan kesalahan 4xx aplikasi. HTTP Untuk detailnya, lihat Mengonfigurasi aturan kondisi yang ditingkatkan untuk lingkungan.
Peran kondisi yang ditingkatkan
Pelaporan kondisi yang ditingkatkan memerlukan dua peran—peran layanan untuk Elastic Beanstalk dan profil instans untuk lingkungan. Peran layanan memungkinkan Elastic Beanstalk untuk berinteraksi AWS dengan layanan lain atas nama Anda untuk mengumpulkan informasi tentang sumber daya di lingkungan Anda. Profil instans mengizinkan instans di lingkungan Anda untuk menuliskan log ke Amazon S3 dan untuk mengomunikasikan informasi kondisi yang ditingkatkan ke layanan Elastic Beanstalk.
Saat Anda membuat lingkungan Elastic Beanstalk menggunakan konsol Elastic Beanstalk atau CLI EB, Elastic Beanstalk membuat peran layanan default dan melampirkan kebijakan terkelola yang diperlukan ke profil instance default untuk lingkungan Anda.
Jika Anda menggunakanAPI, anSDK, atau AWS CLI untuk menciptakan lingkungan, Anda harus membuat peran ini terlebih dahulu, dan menentukannya selama pembuatan lingkungan untuk menggunakan peningkatan kesehatan. Untuk petunjuk tentang cara membuat peran yang sesuai untuk lingkungan Anda, lihat Peran Elastic Beanstalk Service, profil instans, dan kebijakan pengguna.
Kami menyarankan agar Anda menggunakan kebijakan terkelola untuk profil instans dan peran layanan Anda. Kebijakan terkelola adalah AWS Identity and Access Management (IAM) kebijakan yang dipertahankan Elastic Beanstalk. Menggunakan kebijakan terkelola menjamin bahwa lingkungan Anda memiliki semua izin yang diperlukan untuk berfungsi dengan baik.
Untuk profil instans, Anda dapat menggunakan AWSElasticBeanstalkWebTier
atau kebijakan terkelola AWSElasticBeanstalkWorkerTier
, untuk lingkungan tingkat server web atau tingkat pekerja, masing-masing. Untuk detail tentang dua kebijakan profil instans terkelola ini, lihat Mengelola profil instans Elastic Beanstalk.
Otorisasi kondisi yang ditingkatkan
Kebijakan terkelola profil instans Elastic Beanstalk berisi izin untuk tindakan tersebut. elasticbeanstalk:PutInstanceStatistics
Tindakan ini bukan bagian dari Elastic BeanstalkAPI. Ini adalah bagian dari perbedaan API yang digunakan contoh lingkungan secara internal untuk mengkomunikasikan informasi kesehatan yang ditingkatkan ke layanan Elastic Beanstalk. Anda tidak menelepon ini API secara langsung.
Saat Anda membuat lingkungan baru, otorisasi untuk elasticbeanstalk:PutInstanceStatistics
tindakan diaktifkan secara default. Untuk meningkatkan keamanan lingkungan Anda dan membantu mencegah spoofing data kesehatan atas nama Anda, sebaiknya Anda tetap mengaktifkan otorisasi untuk tindakan ini. Jika Anda menggunakan kebijakan terkelola untuk profil instans, fitur ini tersedia untuk lingkungan baru Anda tanpa konfigurasi lebih lanjut. Namun, Jika Anda menggunakan profil instans kustom alih-alih kebijakan terkelola, lingkungan Anda mungkin menampilkan status kesehatan Tanpa Data. Hal ini terjadi karena instans tidak diizinkan untuk tindakan yang mengomunikasikan data kondisi yang ditingkatkan ke layanan.
Untuk mengotorisasi tindakan, sertakan pernyataan berikut dalam profil instans Anda.
{
"Sid": "ElasticBeanstalkHealthAccess",
"Action": [
"elasticbeanstalk:PutInstanceStatistics"
],
"Effect": "Allow",
"Resource": [
"arn:aws:elasticbeanstalk:*:*:application/*",
"arn:aws:elasticbeanstalk:*:*:environment/*"
]
}
Jika Anda tidak ingin menggunakan otorisasi kesehatan yang ditingkatkan saat ini, nonaktifkan dengan menyetel setel EnhancedHealthAuthEnabled
opsi di aws:elasticbeanstalk:healthreporting:system namespace ke. false
Jika opsi ini dinonaktifkan, izin yang dijelaskan sebelumnya tidak diperlukan. Anda dapat menghapusnya dari profil instans untuk akses hak istimewa paling sedikit ke aplikasi dan lingkungan Anda.
catatan
Sebelumnya pengaturan default untuk EnhancedHealthAuthEnabled
adalahfalse
, yang mengakibatkan otorisasi untuk elasticbeanstalk:PutInstanceStatistics
tindakan juga dinonaktifkan secara default. Untuk mengaktifkan tindakan ini untuk lingkungan yang ada, setel EnhancedHealthAuthEnabled
opsi di aws:elasticbeanstalk:healthreporting:system namespace ke. true
Anda dapat mengonfigurasi pilihan ini dengan menggunakan pengaturan pilihan dalam file konfigurasi.
Peristiwa kondisi yang ditingkatkan
Sistem kondisi yang ditingkatkan menghasilkan peristiwa ketika lingkungan melakukan transisi antara statusnya. Contoh berikut menunjukkan peristiwa output oleh transisi lingkungan antara status Info, OK, dan Pelik.
Ketika terjadi transisi ke keadaan yang lebih buruk, peristiwa kondisi yang ditingkatkan mencakup pesan yang menunjukkan penyebab transisi.
Tidak semua perubahan status pada tingkat instans menyebabkan Elastic Beanstalk memancarkan sebuah peristiwa. Untuk mencegah alarm palsu, Elastic Beanstalk menghasilkan peristiwa yang berhubungan dengan kondisi hanya jika masalah berlanjut di beberapa pemeriksaan.
Informasi kesehatan tingkat lingkungan waktu nyata, termasuk status, warna, dan penyebab, tersedia di halaman ikhtisar lingkungan konsol Elastic Beanstalk dan EB. CLI Dengan melampirkan EB CLI ke lingkungan Anda dan menjalankan eb healthperintah, Anda juga dapat melihat status real-time dari setiap instance di lingkungan Anda.
Perilaku pelaporan kondisi yang ditingkatkan selama pembaruan, deployment, dan penskalaan
Mengaktifkan pelaporan kondisi yang ditingkatkan dapat mempengaruhi perilaku lingkungan Anda selama pembaruan konfigurasi dan deployment. Elastic Beanstalk tidak akan menyelesaikan satu batch pembaruan sampai semua instans lolos pemeriksaan kondisi secara konsisten. Juga, karena pelaporan kesehatan yang ditingkatkan menerapkan standar yang lebih tinggi untuk kesehatan dan memantau lebih banyak faktor, contoh yang lulus pemeriksaan kesehatan pelaporan ELB kesehatan dasar tidak harus lulus dengan pelaporan kesehatan yang ditingkatkan. Lihat topik di pembaruan konfigurasi bergulir dan penerapan bergulir untuk detail tentang bagaimana pemeriksaan kondisi mempengaruhi proses pembaruan.
Pelaporan kesehatan yang ditingkatkan juga dapat menyoroti kebutuhan untuk mengatur pemeriksaan kesehatan yang tepat URL untuk Elastic Load Balancing. Ketika lingkungan Anda meningkat untuk memenuhi permintaan, instans baru akan mulai menerima permintaan segera setelah mereka lulus pemeriksaan ELB kesehatan yang cukup. Jika pemeriksaan kesehatan tidak URL dikonfigurasi, ini bisa sedikitnya 20 detik setelah instance baru dapat menerima TCP koneksi.
Jika aplikasi Anda belum selesai memulai pada saat penyeimbang beban menyatakannya cukup sehat untuk menerima lalu lintas, Anda akan melihat banyaknya permintaan yang gagal, dan lingkungan Anda akan mulai gagal pemeriksaan kondisi. Pemeriksaan kesehatan URL yang mencapai jalur yang dilayani oleh aplikasi Anda dapat mencegah masalah ini. ELBpemeriksaan kesehatan tidak akan lulus sampai GET permintaan ke pemeriksaan kesehatan URL mengembalikan kode status 200.