

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

# Konsistensi akhirnya di Amazon API EC2
<a name="eventual-consistency"></a>

Amazon EC2 API mengikuti model konsistensi akhirnya, karena sifat terdistribusi dari sistem yang mendukung API. Ini berarti bahwa hasil dari perintah API yang Anda jalankan yang memengaruhi EC2 sumber daya Amazon Anda mungkin tidak langsung terlihat oleh semua perintah berikutnya yang Anda jalankan. Anda harus mengingat hal ini saat menjalankan perintah API yang segera mengikuti perintah API sebelumnya.

Konsistensi akhirnya dapat memengaruhi cara Anda mengelola sumber daya Anda. Misalnya, jika Anda menjalankan perintah untuk membuat sumber daya, pada akhirnya akan terlihat oleh perintah lain. Ini berarti bahwa jika Anda menjalankan perintah untuk memodifikasi atau mendeskripsikan sumber daya yang baru saja Anda buat, ID-nya mungkin tidak disebarkan ke seluruh sistem, dan Anda akan mendapatkan kesalahan yang merespons bahwa sumber daya tidak ada.

Untuk mengelola konsistensi akhirnya, Anda dapat melakukan hal berikut:
+ Konfirmasikan status sumber daya sebelum Anda menjalankan perintah untuk memodifikasinya. Jalankan `Describe` perintah yang sesuai menggunakan algoritma backoff eksponensial untuk memastikan bahwa Anda memberikan cukup waktu untuk perintah sebelumnya untuk menyebar melalui sistem. Untuk melakukan ini, jalankan `Describe` perintah berulang kali, dimulai dengan beberapa detik waktu tunggu, dan tingkatkan secara bertahap hingga beberapa menit waktu tunggu. 
+ Tambahkan waktu tunggu antara perintah berikutnya, bahkan jika `Describe` perintah mengembalikan respons yang akurat. Terapkan algoritma backoff eksponensial dimulai dengan beberapa detik waktu tunggu, dan tingkatkan secara bertahap hingga beberapa menit waktu tunggu.

**Contoh kesalahan konsistensi akhirnya**  
Berikut ini adalah contoh kode kesalahan yang mungkin Anda temui sebagai akibat dari konsistensi akhirnya.
+ `InvalidInstanceID.NotFound`

  Jika Anda berhasil menjalankan `RunInstances` perintah, dan kemudian segera menjalankan perintah lain menggunakan ID instance yang disediakan dalam respons`RunInstances`, itu mungkin mengembalikan `InvalidInstanceID.NotFound` kesalahan. Ini tidak berarti instance tidak ada. 

  Beberapa perintah spesifik yang mungkin terpengaruh adalah:
  + `DescribeInstances`: Untuk mengonfirmasi keadaan sebenarnya dari instance, jalankan perintah ini menggunakan algoritma backoff eksponensial.
  + `TerminateInstances`: Untuk mengonfirmasi status instance, pertama jalankan `DescribeInstances` perintah menggunakan algoritma backoff eksponensial.
**penting**  
Jika Anda mendapatkan `InvalidInstanceID.NotFound` kesalahan setelah menjalankan`TerminateInstances`, ini tidak berarti bahwa instance tersebut akan atau akan dihentikan. Instance Anda masih bisa berjalan. Inilah sebabnya mengapa penting untuk terlebih dahulu mengkonfirmasi status instance menggunakan`DescribeInstances`.
+ `InvalidGroup.NotFound`

  Jika Anda berhasil menjalankan `CreateSecurityGroup` perintah, dan kemudian segera menjalankan perintah lain menggunakan ID grup keamanan yang disediakan dalam respons`CreateSecurityGroup`, itu mungkin mengembalikan `InvalidGroup.NotFound` kesalahan. Untuk mengonfirmasi status grup keamanan, jalankan `DescribeSecurityGroups` perintah menggunakan algoritma backoff eksponensial.
+ `InstanceLimitExceeded`

  Anda telah meminta lebih banyak instance daripada yang diizinkan batas instans saat ini untuk jenis instans yang ditentukan. Anda dapat mencapai batas ini secara tidak terduga jika Anda meluncurkan dan menghentikan instance dengan cepat, karena instance yang dihentikan dihitung terhadap batas instans Anda untuk sementara waktu setelah dihentikan.