

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

# Kontrol retensi instance dengan kebijakan siklus hidup instance
<a name="instance-lifecycle-policy"></a>

 Kebijakan siklus hidup instans memberikan perlindungan terhadap penghentian Amazon EC2 Auto Scaling saat tindakan siklus hidup penghentian ditinggalkan. Tidak seperti kait siklus hidup saja, kebijakan siklus hidup instance dirancang untuk memastikan bahwa instance berpindah ke status tertahan saat prosedur shutdown yang anggun tidak berhasil diselesaikan. 

## Kapan menggunakan kebijakan siklus hidup instance
<a name="when-to-use-instance-lifecycle-policies"></a>

 Gunakan kebijakan siklus hidup instans ketika shutdown aplikasi Anda secara anggun tidak opsional tetapi wajib dan shutdown yang gagal memerlukan intervensi manual. Kasus penggunaan umum meliputi: 
+  Aplikasi stateful yang harus menyelesaikan persistensi data sebelum penghentian. 
+  Aplikasi yang membutuhkan periode pengeringan yang diperpanjang yang mungkin melebihi batas waktu pengait siklus hidup maksimum 48 jam. 
+  Beban kerja yang menangani data sensitif di mana pembersihan gagal atau tidak lengkap dapat mengakibatkan hilangnya data atau korupsi. 
+  Layanan mission-critical di mana shutdown mendadak menyebabkan dampak ketersediaan. 

 Untuk informasi selengkapnya tentang cara menangani penghentian instans dengan anggun, lihat. [Rancang aplikasi Anda untuk menangani penghentian instans dengan anggun](gracefully-handle-instance-termination.md) 

## Cara kerja kebijakan siklus hidup instance dengan kait siklus hidup penghentian
<a name="how-instance-lifecycle-policies-work"></a>

 Kebijakan siklus hidup instans bekerja dalam kombinasi dengan kait siklus hidup penghentian, bukan sebagai pengganti. Prosesnya mengikuti beberapa tahap: 

1.  **Tindakan siklus hidup penghentian dijalankan.** Saat Amazon EC2 Auto Scaling memilih instans untuk penghentian, kait siklus hidup penghentian Anda akan dipanggil dan instans `Terminating:Wait` memasuki status untuk mulai menjalankan tindakan siklus hidup penghentian. 

1.  **Upaya shutdown yang anggun dimulai.** Aplikasi Anda, baik yang berjalan pada instans atau melalui bidang kontrol, menerima pemberitahuan tindakan siklus hidup terminatioin dan memulai prosedur shutdown yang anggun seperti menguras koneksi, menyelesaikan pekerjaan yang sedang berlangsung, atau mentransfer data. 

1.  **Tindakan siklus hidup penghentian selesai.** Tindakan siklus hidup penghentian dapat diselesaikan dengan `CONTINUE` atau `ABANDON` hasilnya. 

1.  **Kebijakan siklus hidup instance mengevaluasi situasi.** Tanpa kebijakan siklus hidup instance yang dikonfigurasi, instans akan segera melanjutkan penghentian meskipun tindakan siklus hidup penghentian selesai dengan hasil. `ABANDON` Dengan kebijakan siklus hidup instance yang dikonfigurasi untuk mempertahankan instance`TerminateHookAbandon`, instance akan beralih ke status tertahan jika tindakan siklus hidup penghentian diselesaikan dengan hasil. `ABANDON` 

1.  **Instans yang dipertahankan menunggu tindakan manual.** Instans di status tertahan terus dikenakan biaya Amazon EC2 standar. Instans ini tidak diperhitungkan dalam kapasitas yang diinginkan grup Auto Scaling Anda, jadi Auto Scaling meluncurkan instans pengganti untuk mempertahankan ukuran yang diinginkan. Fitur Auto Scaling seperti penyegaran instans dan masa pakai instans maks juga akan mengabaikan instance yang dipertahankan. Ini memungkinkan Anda menyelesaikan prosedur pembersihan secara manual, memulihkan data, atau menyelidiki mengapa shutdown otomatis gagal sebelum menghentikan instance secara manual. 

1.  **Terjadi terminasi manual.** Setelah menyelesaikan tindakan yang diperlukan pada instance yang dipertahankan, Anda perlu memanggil `TerminateInstanceInAutoScalingGroup` API untuk menghentikan instance. 

# Konfigurasikan retensi instance
<a name="configure-instance-retention"></a>

Siapkan grup Penskalaan Otomatis Amazon EC2 Anda untuk mempertahankan instans saat tindakan siklus hidup penghentian gagal.

 Untuk menggunakan kebijakan siklus hidup instance di grup Auto Scaling, Anda juga harus mengonfigurasi hook siklus hidup penghentian. Jika Anda mengonfigurasi kebijakan siklus hidup instance tetapi tidak memiliki kait siklus hidup penghentian, kebijakan tersebut tidak akan berpengaruh. Kebijakan siklus hidup instans hanya akan berlaku ketika tindakan siklus hidup penghentian ditinggalkan, bukan ketika tindakan tersebut berhasil diselesaikan dengan hasilnya. `CONTINUE` 

 Kebijakan siklus hidup instans menggunakan pemicu retensi untuk menentukan kapan harus menyimpan instance. `TerminateHookAbandon`Pemicunya menyebabkan retensi dalam beberapa skenario: 
+  Saat Anda secara eksplisit memanggil [ CompleteLifecycleAction](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_CompleteLifecycleAction.html)API dengan hasilnya. `ABANDON` 
+  Ketika tindakan siklus hidup terminasi dengan hasil default habis karena batas `ABANDON` waktu detak jantung tercapai tanpa menerima detak jantung. 
+  Ketika batas waktu global tercapai pada tindakan siklus hidup penghentian dengan hasil default`ABANDON`, yaitu 48 jam atau 100 kali batas waktu detak jantung, mana yang lebih kecil 

------
#### [ Console ]

**Untuk mengonfigurasi retensi instance**

1. Buka konsol Amazon EC2 Auto Scaling

1. Buat grup Auto Scaling Anda (default kebijakan siklus hidup instance ke Terminate)

1. Buka halaman detail grup Auto Scaling dan pilih tab Manajemen **Instance**

1. **Dalam **kebijakan siklus hidup Instance untuk kait siklus hidup, pilih Pertahankan****

1. Buat kait siklus hidup penghentian Anda dengan:
   + **Transisi siklus hidup disetel ke Instance terminate**
   + Hasil default disetel ke **Abandon**

------
#### [ AWS CLI ]

**Untuk mengonfigurasi retensi instance**  
 Gunakan [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html)perintah dengan kebijakan siklus hidup instance: 

```
aws autoscaling create-auto-scaling-group \
--auto-scaling-group-name my-asg \
--launch-template LaunchTemplateName=my-template,Version='$Latest' \
--min-size 1 \
--max-size 3 \
--desired-capacity 2 \
--vpc-zone-identifier subnet-12345678 \
--instance-lifecycle-policy file://lifecycle-policy.json
```

Isi lifecycle-policy.json:

```
{
    "RetentionTriggers": {
        "TerminateHookAbandon": "retain"
    }
}
```

**Untuk menambahkan hook siklus aktif penghentian**  
Gunakan [put-lifecycle-hook](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-lifecycle-hook.html)perintah:

```
aws autoscaling put-lifecycle-hook \
--lifecycle-hook-name my-termination-hook \
--auto-scaling-group-name my-asg \
--lifecycle-transition autoscaling:EC2_INSTANCE_TERMINATING \
--default-result ABANDON \
--heartbeat-timeout 300
```

------

# Kelola instance yang dipertahankan
<a name="manage-retained-instances"></a>

 Pantau dan kendalikan instans Amazon EC2 yang telah dipindahkan ke status tertahan. Gunakan CloudWatch metrik untuk melacak instance yang dipertahankan, lalu hentikan instans yang dipertahankan secara manual setelah menyelesaikan tindakan kustom Anda. 

 Instans yang dipertahankan tidak dihitung dalam kapasitas yang diinginkan grup Amazon EC2 Auto Scaling Anda. Ketika sebuah instans memasuki status tertahan, Auto Scaling meluncurkan instance pengganti untuk mempertahankan kapasitas yang diinginkan. Misalnya, grup Auto Scaling Anda memiliki kapasitas 10 yang diinginkan. Ketika sebuah instans memasuki `Terminating:Retained` status, Auto Scaling meluncurkan instance pengganti untuk mempertahankan kapasitas 10 yang diinginkan. Anda sekarang memiliki total 11 instans yang sedang berjalan: 10 di grup aktif Anda ditambah 1 instans yang dipertahankan. Biaya Amazon EC2 standar untuk semua 11 instans akan berlaku hingga Anda menghentikan instans yang ditahan secara manual. 

## Status siklus hidup instans dari instance yang dipertahankan
<a name="instance-lifecyle-states-of-retained-instances"></a>

 Memahami bagaimana transisi instance melalui status siklus hidup saat kebijakan siklus hidup instance digunakan. Instance mengikuti jalur tertentu dari penghentian normal melalui retensi hingga penghentian akhir. 

*Saat retensi dipicu, instance bertransisi melalui status ini:*

1. `Terminating`- Pengakhiran normal dimulai

1. `Terminating:Wait`- Pengait Siklus Hidup dijalankan

1. `Terminating:Proceed`- Tindakan siklus hidup selesai (apakah berhasil atau gagal)

1. `Terminating:Retained`- Hook gagal, contoh dipertahankan untuk intervensi manual

Instance kumpulan hangat mengambil jalur status siklus hidup yang berbeda tergantung pada skenario:

*Contoh penskalaan kembali ke kolam hangat:*

1. `Warmed:Pending`- Transisi kolam hangat normal dimulai

1. `Warmed:Pending:Wait`- Pengait Siklus Hidup dijalankan

1. `Warmed:Pending:Proceed`- Tindakan siklus hidup selesai (apakah berhasil atau gagal)

1. `Warmed:Pending:Retained`- Hook gagal, contoh dipertahankan untuk intervensi manual

*Contoh yang dihentikan dari kolam hangat:*

1. `Warmed:Terminating`- Pengakhiran normal dimulai

1. `Warmed:Terminating:Wait`- Pengait Siklus Hidup dijalankan

1. `Warmed:Terminating:Proceed`- Tindakan siklus hidup selesai (apakah berhasil atau gagal)

1. `Warmed:Terminating:Retained`- Hook gagal, contoh dipertahankan untuk intervensi manual

## Pantau instance yang dipertahankan
<a name="monitor-retained-instances"></a>

 Karena instans Amazon EC2 yang dipertahankan menimbulkan biaya dan memerlukan intervensi manual, memantaunya sangat penting. Amazon EC2 Auto Scaling CloudWatch menyediakan beberapa metrik untuk melacak instans yang dipertahankan. 

Aktifkan metrik grup untuk melacak instance yang dipertahankan:

```
aws autoscaling enable-metrics-collection \
--auto-scaling-group-name my-asg \
--metrics GroupTerminatingRetainedInstances
```

Metrik yang tersedia adalah:
+  `GroupTerminatingRetainedInstances`menunjukkan jumlah instance di `Terminating:Retained` negara bagian. 
+  `GroupTerminatingRetainedCapacity`menunjukkan unit kapasitas yang diwakili oleh contoh di `Terminating:Retained` negara bagian. 
+  `WarmPoolTerminatingRetainedCapacity`trek dipertahankan instance yang berakhir dari kolam hangat. 
+  `WarmPoolPendingRetainedCapacity`trek dipertahankan contoh kembali ke kolam hangat. 

 Anda juga dapat memeriksa aktivitas penskalaan grup Amazon EC2 Auto Scaling untuk memahami mengapa instans dipertahankan. Cari aktivitas penghentian dengan `StatusCode: Cancelled` dan pesan alasan status yang menunjukkan kegagalan kait siklus hidup: 

```
aws autoscaling describe-scaling-activities \
--auto-scaling-group-name my-asg
```

 Sebaiknya buat CloudWatch alarm pada metrik ini untuk mengingatkan Anda saat instance memasuki status tertahan. Ini membantu Anda melacak implikasi biaya dan memastikan Anda tidak lupa untuk membersihkan contoh yang memerlukan intervensi manual. 

## Mengakhiri instance yang dipertahankan
<a name="terminate-retained-instances"></a>

Setelah menyelesaikan tindakan kustom Anda, hentikan instance yang dipertahankan dengan memanggil API: [ TerminateInstanceInAutoScalingGroup](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_TerminateInstanceInAutoScalingGroup.html) 

```
aws autoscaling terminate-instance-in-auto-scaling-group \
--instance-id i-1234567890abcdef0 \
--no-should-decrement-desired-capacity
```