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 menghentikan 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.

Kejadian EC2 Spot Instance Interruption Warning

Saat Amazon EC2 akan menginterupsi Instans Spot Anda, Amazon memancarkan peristiwa dua menit sebelum interupsi yang sebenarnya (kecuali untuk hibernasi, yang mendapat pemberitahuan gangguan, tetapi tidak dua menit sebelumnya, karena hibernasi segera dimulai). Peristiwa ini dapat dideteksi oleh Amazon EventBridge. Untuk informasi selengkapnya tentang EventBridge peristiwa, lihat Panduan EventBridge Pengguna Amazon. Untuk contoh mendetail yang memandu Anda tentang cara membuat dan menggunakan aturan acara, lihat Memanfaatkan Pemberitahuan Gangguan Instans EC2 Spot Amazon.

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

ARNFormat peristiwa interupsi Instans Spot adalaharn:aws:ec2:availability-zone:instance/instance-id. Format ini berbeda dari ARNformat EC2 sumber daya.

instance-action

instance-actionItem menentukan tindakan dan perkiraan waktu, diUTC, kapan tindakan akan terjadi.

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

cURL
[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
PowerShell
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

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 menghentikan instance, atau jika Anda menghentikan instance sendiri, tidak instance-action ada dalam metadata instance dan Anda menerima kesalahan HTTP 404 saat mencoba mengambilnya.

termination-time

termination-timeItem menentukan perkiraan waktu UTC kapan instance akan menerima sinyal shutdown.

catatan

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 akan ada dalam metadata instans Anda. Jika tidak, item itu tidak ada. Anda dapat mengambil termination-time menggunakan IMDSv2 sebagai berikut.

cURL
[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
PowerShell
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

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 instance (sehingga Anda menerima kesalahan HTTP 404) atau berisi nilai yang bukan nilai waktu.

Jika Amazon EC2 gagal menghentikan instance, status permintaan disetel kefulfilled. Nilai termination-time tetap dalam metadata instans dengan perkiraan waktu semula, yang sekarang sudah berlalu.