Pemberitahuan interupsi Instans Spot - Amazon Elastic Compute Cloud

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pemberitahuan interupsi Instans Spot

Pemberitahuan interupsi Instans Spot adalah peringatan yang dikeluarkan dua menit sebelum Amazon EC2 menghentikan atau mengakhiri Instans Spot Anda. Jika Anda menentukan hibernasi sebagai perilaku interupsi, Anda akan menerima pemberitahuan interupsi, tetapi Anda tidak menerima peringatan dua menit karena proses hibernasi langsung dimulai.

Cara terbaik agar Anda dapat menangani interupsi Instans Spot dengan baik adalah dengan merancang aplikasi Anda agar toleran terhadap kesalahan. Untuk melakukannya, Anda dapat memanfaatkan pemberitahuan interupsi Instans Spot. Kami menyarankan Anda untuk memeriksa pemberitahuan interupsi ini setiap 5 detik.

Pemberitahuan interupsi tersedia sebagai EventBridge peristiwa dan sebagai item dalam metadata instance pada Instans Spot. Pemberitahuan interupsi dipancarkan dengan upaya yang terbaik.

EC2 Spot Instance interruption notice

Saat akan menginterupsi Instans Spot Anda, Amazon EC2 memancarkan peristiwa dua menit sebelum interupsi sebenarnya (kecuali untuk hibernasi, yang mendapatkan pemberitahuan interupsi, tetapi tidak dua menit sebelumnya, karena hibernasi langsung dimulai). Acara ini dapat dideteksi oleh Amazon EventBridge. Untuk informasi selengkapnya tentang EventBridge peristiwa, lihat Panduan EventBridge Pengguna Amazon. Untuk contoh terperinci yang akan memandu Anda tentang cara membuat dan menggunakan aturan peristiwa, lihat Memanfaatkan Notifikasi Interupsi Instans Spot Amazon EC2.

Berikut ini adalah contoh peristiwa untuk interupsi Instans Spot. Nilai yang mungkin untuk instance-action adalah hibernate, stop, dan terminate.

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Spot Instance Interruption Warning", "source": "aws.ec2", "account": "123456789012", "time": "yyyy-mm-ddThh:mm:ssZ", "region": "us-east-2", "resources": ["arn:aws:ec2:us-east-2a:instance/i-1234567890abcdef0"], "detail": { "instance-id": "i-1234567890abcdef0", "instance-action": "action" } }
catatan

Format ARN dari peristiwa interupsi Instans Spot adalah. arn:aws:ec2:availability-zone:instance/instance-id Format ini berbeda dari format ARN sumber daya EC2.

instance-action

Jika Instans Spot Anda ditandai untuk dihentikan atau diakhiri oleh Amazon EC2, item instance-action akan ada di metadata instans Anda. Jika tidak, item itu tidak ada. Anda dapat mengambil Instance Metadata Service Version 2 (IMDSv2) sebagai berikut. instance-action

Gunakan perintah untuk sistem operasi Anda.

[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/spot/instance-action
PS C:\> [string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/meta-data/spot/instance-action

Item instance-action menentukan tindakan dan perkiraan waktu, dalam UTC, kapan tindakan akan terjadi.

Contoh output berikut menunjukkan waktu saat instans ini akan dihentikan.

{"action": "stop", "time": "2017-09-18T08:22:00Z"}

Output contoh berikut menunjukkan waktu saat instans ini akan diakhiri.

{"action": "terminate", "time": "2017-09-18T08:22:00Z"}

Jika Amazon EC2 tidak bersiap untuk menghentikan atau mengakhiri instans, atau jika Anda sendiri mengakhiri instans, instance-action tidak ada dalam metadata instans dan Anda menerima kesalahan HTTP 404 saat Anda mencoba untuk mengambilnya kembali.

termination-time

Item ini dipertahankan untuk kompatibilitas mundur; Anda seharusnya menggunakan instance-action.

Jika Instans Spot ditandai untuk dihentikan oleh Amazon EC2 (baik karena gangguan Instans Spot di mana perilaku interupsi disetelterminate, atau karena pembatalan permintaan Instans Spot persisten), termination-time item tersebut ada dalam metadata instans Anda. Jika tidak, item itu tidak ada. Anda dapat mengambil termination-time menggunakan IMDSv2 sebagai berikut.

Gunakan perintah untuk sistem operasi Anda.

[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` [ec2-user ~]$ if curl -H "X-aws-ec2-metadata-token: $TOKEN" -s http://169.254.169.254/latest/meta-data/spot/termination-time | grep -q .*T.*Z; then echo termination_scheduled; fi
PS C:\> [string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/meta-data/spot/termination-time

termination-timeItem menentukan perkiraan waktu dalam UTC kapan instance akan menerima sinyal shutdown. Berikut ini adalah output contoh.

2015-01-05T18:02:00Z

Jika Amazon EC2 tidak bersiap untuk menghentikan instance (baik karena tidak ada interupsi Instans Spot atau karena perilaku interupsi Anda disetel ke stop atauhibernate), atau jika Anda menghentikan Instans Spot sendiri, termination-time item tersebut tidak ada dalam metadata instans (sehingga Anda menerima kesalahan HTTP 404) atau berisi nilai yang bukan nilai waktu.

Jika Amazon EC2 gagal untuk mengakhiri instans, status permintaan diatur ke fulfilled. Nilai termination-time tetap dalam metadata instans dengan perkiraan waktu semula, yang sekarang sudah berlalu.