

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

# Platform Elastic Beanstalk
<a name="concepts-all-platforms"></a>

AWS Elastic Beanstalk menyediakan berbagai platform tempat Anda dapat membangun aplikasi Anda. Anda mendesain aplikasi web untuk salah satu platform ini, dan Elastic Beanstalk men-deploy kode Anda ke versi platform yang Anda pilih untuk membuat lingkungan aplikasi aktif.

Elastic Beanstalk menyediakan platform untuk bahasa pemrograman yang berbeda, server aplikasi, dan kontainer Docker. Beberapa platform memiliki beberapa versi yang didukung secara bersamaan.

**Topics**
+ [Glosarium Platform Elastic Beanstalk](platforms-glossary.md)
+ [Model tanggung jawab bersama untuk pemeliharaan platform Elastic Beanstalk](platforms-shared-responsibility.md)
+ [Kebijakan dukungan platform Elastic Beanstalk](platforms-support-policy.md)
+ [Jadwal rilis platform Elastic Beanstalk](platforms-schedule.md)
+ [Platform yang didukung Elastic Beanstalk](concepts.platforms.md)
+ [Platform Elastic Beanstalk Linux](platforms-linux.md)
+ [Memperluas platform Linux Elastic Beanstalk](platforms-linux-extend.md)

# Glosarium Platform Elastic Beanstalk
<a name="platforms-glossary"></a>

Berikut ini adalah istilah kunci yang terkait dengan AWS Elastic Beanstalk platform dan siklus hidupnya.

**Waktu Aktif**  
Perangkat lunak waktu aktif khusus bahasa pemrograman (framework, library, interpreter, vm, dll) diperlukan untuk menjalankan kode aplikasi Anda.

**Komponen Elastic Beanstalk**  
Komponen perangkat lunak yang Elastic Beanstalk tambahkan ke platform untuk mengaktifkan fungsionalitas Elastic Beanstalk. Misalnya, agen kondisi yang ditingkatkan diperlukan untuk mengumpulkan dan melaporkan informasi kesehatan.

**Platform**  
Kombinasi dari sistem operasi (OS), waktu aktif, server web, server aplikasi, dan komponen Elastic Beanstalk. Platform menyediakan komponen yang tersedia untuk menjalankan aplikasi Anda.

**Versi platform**  
Kombinasi versi khusus dari sistem operasi (OS), waku aktif, server web, server aplikasi, dan komponen Elastic Beanstalk. Anda membuat lingkungan Elastic Beanstalk berdasarkan versi platform dan men-deploy aplikasi Anda untuk itu.  
Versi platform memiliki nomor versi semantik dari formulir *X.Y.Z*, dimana *X* adalah versi utama, *Y* adalah versi minor, dan *Z* adalah versi patch.  
Versi platform dapat berada di salah satu status berikut:  
+ *Direkomendasikan* — Versi platform terbaru di cabang platform yang didukung. Versi ini berisi sebagian besar up-to-date komponen dan direkomendasikan untuk digunakan di lingkungan produksi. Ketika Elastic Beanstalk merilis versi platform baru, versi baru menggantikan versi sebelumnya dan menjadi versi platform yang direkomendasikan untuk cabang platform yang sesuai.
+ *Tidak Direkomendasikan* — Versi platform apa pun yang bukan versi terbaru di cabang platformnya. Meskipun versi ini mungkin tetap berfungsi, kami sangat menyarankan untuk memperbarui ke versi platform terbaru. Anda dapat menggunakan [pembaruan platform terkelola](environment-platform-update-managed.md) untuk membantu tetap up-to-date secara otomatis.
Anda dapat memverifikasi apakah versi platform direkomendasikan menggunakan perintah AWS CLI **[describe-platform-version](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-platform-version.html)** dan memeriksa bidangnya. `PlatformLifecycleState`

**Cabang platform**  
Sederet versi platform yang berbagi versi tertentu (biasanya besar) dari beberapa komponen mereka, seperti sistem operasi (OS), runtime, atau komponen Elastic Beanstalk. Misalnya: *Python 3.13 berjalan di 64bit Amazon Linux 2023; *IIS 10.0* berjalan pada Windows Server 64bit 2025*. Cabang platform menerima pembaruan dalam bentuk versi platform baru. Setiap versi platform berturut-turut di cabang adalah pembaruan dari yang sebelumnya.  
Versi yang direkomendasikan di setiap cabang platform yang didukung tersedia untuk Anda tanpa syarat untuk pembuatan lingkungan. Versi platform sebelumnya tetap dapat diakses oleh akun dengan lingkungan aktif atau dihentikan yang menggunakannya pada saat digantikan oleh versi baru. Versi platform sebelumnya tidak memiliki up-to-date komponen terbanyak dan tidak direkomendasikan untuk digunakan.  
Jika Anda memerlukan akses ke versi platform sebelumnya di luar ketersediaan standar yang dijelaskan di atas, Anda dapat menghubungi [Pusat AWS Dukungan](https://console.aws.amazon.com/support/home#/) untuk bantuan.
Cabang platform dapat berada di salah satu status berikut:  
+ *Didukung* – Cabang platform saat ini. Ini seluruhnya terdiri dari *komponen yang didukung*. Komponen yang didukung belum mencapai End of Life (EOL), sebagaimana ditentukan oleh pemasoknya. Pembaruan platform yang sedang berlangsung, dan disarankan untuk digunakan di lingkungan produksi. Untuk daftar cabang platform yang didukung, lihat [Platform yang didukung Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html) di panduan *Platform AWS Elastic Beanstalk *.
+ *Beta* – Sebuah pratinjau, cabang platform pra-rilis. Ini eksperimental di alam. Ini mungkin menerima pembaruan platform yang sedang berlangsung untuk sementara waktu, tetapi tidak memiliki support jangka panjang. Cabang platform beta tidak direkomendasikan untuk digunakan di lingkungan produksi. Gunakan hanya untuk evaluasi. Untuk daftar cabang platform beta, lihat [Versi Platform Elastic Beanstalk dalam Beta Publik](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-beta.html) di panduan *Platform AWS Elastic Beanstalk *.
+ *Deprecated* — Cabang platform di mana satu atau lebih komponen (seperti runtime atau sistem operasi) mendekati End of Life (EOL) atau telah mencapai EOL, seperti yang ditunjuk oleh pemasok mereka. Sementara cabang platform yang tidak digunakan lagi terus menerima versi platform baru hingga tanggal pensiunnya, komponen yang telah mencapai EOL tidak menerima pembaruan. Misalnya, jika versi runtime mencapai EOL, cabang platform akan ditandai sebagai usang tetapi akan terus menerima pembaruan sistem operasi hingga tanggal pensiun cabang platform. Cabang platform tidak akan terus menerima pembaruan ke versi runtime EOL. Cabang platform yang tidak digunakan lagi tidak disarankan untuk digunakan.
+ *Pensiunan* — Cabang platform yang tidak lagi menerima pembaruan apa pun. Cabang platform yang sudah pensiun tidak tersedia untuk membuat lingkungan Elastic Beanstalk baru menggunakan konsol Elastic Beanstalk. Jika lingkungan Anda menggunakan cabang platform yang sudah pensiun, Anda harus memperbarui ke cabang platform yang didukung untuk terus menerima pembaruan. Cabang platform yang sudah pensiun tidak disarankan untuk digunakan. Untuk detail selengkapnya tentang cabang platform yang sudah pensiun, lihat[Kebijakan dukungan platform Elastic Beanstalk](platforms-support-policy.md). Untuk daftar cabang platform yang dijadwalkan pensiun, lihat [Pensiunan jadwal cabang platform](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/platforms-schedule.html#platforms-support-policy.depracation). Untuk melihat cabang platform pensiunan sebelumnya, lihat [Riwayat cabang platform pensiun](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/platforms-schedule.html#platforms-support-policy.retired).
Jika lingkungan Anda menggunakan cabang platform yang tidak digunakan lagi atau sudah pensiun, kami rekomendasikan Anda memperbaruinya ke versi platform di cabang platform yang mendukung. Lihat perinciannya di [Memperbarui versi platform lingkungan Elastic Beanstalk Anda](using-features.platform.upgrade.md).  
Anda dapat memverifikasi status cabang platform menggunakan perintah AWS CLI **[describe-platform-version](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/describe-platform-version.html)** dan memeriksa bidangnya. `PlatformBranchLifecycleState`

**Pembaruan Platform**  
Rilis versi platform baru yang berisi pembaruan ke beberapa komponen platform—OS, runtime, server web, server aplikasi, dan komponen Elastic Beanstalk. Ketika Elastic Beanstalk merilis versi platform baru, versi baru menggantikan versi sebelumnya dan menjadi versi platform yang direkomendasikan untuk cabang platform yang sesuai. Pembaruan platform mengikuti taksonomi versi semantik, dan dapat memiliki tiga tingkatan:  
+ *Pembaruan utama* – Pembaruan yang memiliki perubahan yang tidak kompatibel dengan versi platform yang ada. Anda mungkin perlu memodifikasi aplikasi Anda agar berjalan dengan benar pada versi utama yang baru. Sebuah update besar memiliki nomor versi platform utama yang baru.
+ *Pembaruan kecil* — Pembaruan yang memiliki perubahan yang kompatibel dengan versi platform yang ada dalam banyak kasus. Tergantung pada aplikasi Anda, Anda mungkin perlu memodifikasi aplikasi Anda agar berjalan dengan benar pada versi minor baru. Pembaruan kecil memiliki nomor versi platform kecil yang baru.
+ *Pembaruan patch* – Pembaruan yang terdiri dari rilis pemeliharaan (perbaikan bug, pembaruan keamanan, dan peningkatan kinerja) yang kompatibel dengan versi platform yang ada. Pembaruan patch memiliki nomor versi platform patch baru.

**Pembaruan yang Terkelola**  
Fitur Elastic Beanstalk yang secara otomatis menerapkan patch dan pembaruan kecil untuk sistem operasi (OS), waktu aktif, server web, server aplikasi, dan komponen Elastic Beanstalk untuk versi platform yang didukung Elastic Beanstalk. Pembaruan yang terkelola menerapkan versi platform yang lebih baru di cabang platform yang sama untuk lingkungan Anda. Anda dapat mengonfigurasi pembaruan terkelola untuk menerapkan hanya pembaruan patch, atau minor dan patch update. Anda juga dapat menonaktifkan pembaruan terkelola sepenuhnya.  
Untuk informasi selengkapnya, lihat [Pembaruan platform yang dikelola](environment-platform-update-managed.md).

# Model tanggung jawab bersama untuk pemeliharaan platform Elastic Beanstalk
<a name="platforms-shared-responsibility"></a>

AWS dan pelanggan kami berbagi tanggung jawab untuk mencapai tingkat keamanan dan kepatuhan komponen perangkat lunak yang tinggi. Model bersama ini mengurangi beban operasional Anda.

Untuk detailnya, lihat [Model Tanggung Jawab AWS Bersama](https://aws.amazon.com/compliance/shared-responsibility-model/).

AWS Elastic Beanstalk membantu Anda melakukan sisi Anda dari model tanggung jawab bersama dengan menyediakan fitur *pembaruan terkelola*. Fitur ini secara otomatis menerapkan patch dan minor update untuk versi platform yang didukung Elastic Beanstalk. Jika pembaruan yang terkelola gagal, Elastic Beanstalk memberitahu Anda tentang kegagalan untuk memastikan bahwa Anda menyadari hal itu dan dapat mengambil tindakan segera.

Untuk informasi selengkapnya, lihat [Pembaruan platform yang dikelola](environment-platform-update-managed.md).

Selain itu, Elastic Beanstalk melakukan hal berikut:
+ Mempublikasikan [kebijakan dukungan platform](platforms-support-policy.md) dan jadwal masa pensiun untuk 12 bulan mendatang.
+ Rilis pembaruan patch, kecil, dan utama dari sistem operasi (OS), waktu aktif, server aplikasi, dan komponen server web biasanya dalam 30 hari sejak ketersediaannya. Elastic Beanstalk bertanggung jawab untuk membuat pembaruan komponen Elastic Beanstalk yang ada pada versi platform yang didukung. Semua pembaruan lainnya datang langsung dari pemasok mereka (pemilik atau komunitas).

Kami mengumumkan semua pembaruan pada platform kami yang didukung dalam [catatan rilis](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/relnotes.html) kami di panduan *Catatan AWS Elastic Beanstalk Rilis*. Kami juga menyediakan daftar semua platform yang didukung dan komponennya, bersama dengan riwayat platform, dalam panduan *AWS Elastic Beanstalk Platform*. Untuk mengetahui informasi selengkapnya, lihat [Platform dan riwayat komponen yang didukung](concepts.platforms.md#concepts.platforms.list).

Anda bertanggung jawab untuk melakukan hal berikut:
+ Perbarui semua komponen yang Anda kontrol (diidentifikasi sebagai **Pelanggan** dalam [Model Tanggung Jawab AWS Bersama](https://aws.amazon.com/compliance/shared-responsibility-model/)). Ini termasuk memastikan keamanan aplikasi Anda, data Anda, dan komponen apa pun yang diperlukan aplikasi Anda dan yang Anda unduh.
+ Pastikan lingkungan Elastic Beanstalk Anda berjalan pada versi platform yang didukung, dan migrasikan lingkungan yang berjalan pada versi platform yang sudah pensiun ke versi yang didukung.
+ Jika Anda menggunakan image mesin Amazon (AMI) khusus untuk lingkungan Elastic Beanstalk Anda, tambal, rawat, dan uji AMI kustom Anda sehingga tetap terkini dan kompatibel dengan versi platform Elastic Beanstalk yang didukung. Untuk informasi selengkapnya tentang mengelola lingkungan dengan AMI kustom, lihat[Menggunakan image mesin Amazon kustom (AMI) di lingkungan Elastic Beanstalk Anda](using-features.customenv.md).
+ Menyelesaikan semua masalah yang muncul dalam upaya pembaruan terkelola yang gagal dan coba lagi pembaruan.
+ Pasang patch OS, waktu aktif, server aplikasi, dan server web sendiri jika Anda memilih keluar dari pembaruan yang terkelola Elastic Beanstalk. Anda dapat melakukannya dengan [menerapkan pembaruan platform secara manual](using-features.platform.upgrade.md) atau langsung menambal komponen pada semua sumber daya lingkungan yang relevan.
+ [Kelola keamanan dan kepatuhan AWS layanan apa pun yang Anda gunakan di luar Elastic Beanstalk sesuai AWS dengan Model Tanggung Jawab Bersama.](https://aws.amazon.com/compliance/shared-responsibility-model/)

# Kebijakan dukungan platform Elastic Beanstalk
<a name="platforms-support-policy"></a>

Elastic Beanstalk mendukung cabang platform yang masih menerima pembaruan kecil dan patch yang sedang berlangsung dari pemasok mereka (pemilik atau komunitas). Untuk definisi lengkap dari syarat terkait, lihat [Glosarium Platform Elastic Beanstalk](platforms-glossary.md).

## Cabang platform pensiun
<a name="platforms-support-policy.retired-platforms"></a>

Ketika komponen cabang platform yang didukung ditandai End of Life (EOL) oleh pemasoknya, Elastic Beanstalk menandai cabang platform sebagai pensiun. Komponen cabang platform meliputi: sistem operasi (OS), versi bahasa runtime, server aplikasi, atau server web.

Setelah cabang platform ditandai sebagai pensiun, kebijakan berikut berlaku:
+ Elastic Beanstalk berhenti memberikan pembaruan pemeliharaan, termasuk pembaruan keamanan.
+ Elastic Beanstalk tidak lagi memberikan dukungan teknis untuk cabang platform pensiunan.
+ Elastic Beanstalk tidak lagi membuat cabang platform tersedia bagi pelanggan Elastic Beanstalk baru untuk diterapkan ke lingkungan baru. Ada masa tenggang 90 hari dari tanggal pensiun yang dipublikasikan untuk pelanggan yang sudah ada dengan lingkungan aktif yang berjalan di cabang platform pensiunan.

**catatan**  
Cabang platform yang sudah pensiun tidak akan tersedia di konsol Elastic Beanstalk. Namun, itu akan tersedia melalui AWS CLI, EB CLI dan EB API untuk pelanggan yang memiliki lingkungan yang ada berdasarkan cabang platform pensiunan. Pelanggan yang sudah ada juga dapat menggunakan lingkungan [Clone dan konsol lingkungan](using-features.managing.clone.md) [Rebuild](environment-management-rebuild.md).

Untuk daftar cabang platform yang dijadwalkan pensiun, lihat topik jadwal platform *Elastic Beanstalk berikut*. [Jadwal cabang platform yang pensiun](platforms-schedule.md#platforms-support-policy.depracation)

Untuk informasi selengkapnya tentang apa yang diharapkan ketika cabang platform lingkungan Anda pensiun, lihat[FAQ Pensiun Platform](using-features.migration-al.FAQ.md).

## Melampaui masa tenggang 90 hari
<a name="platforms-support-policy.beyond-grace"></a>

Kebijakan kami untuk cabang platform yang sudah pensiun tidak menghapus akses ke lingkungan atau menghapus sumber daya. Namun, pelanggan yang sudah ada yang menjalankan lingkungan Elastic Beanstalk di cabang platform yang sudah pensiun harus menyadari risiko melakukannya. Lingkungan seperti itu dapat berakhir dalam situasi yang tidak terduga, karena Elastic Beanstalk tidak dapat memberikan pembaruan keamanan, dukungan teknis, atau perbaikan terbaru untuk cabang platform yang sudah pensiun karena pemasok menandai komponen EOL mereka. 

Misalnya, kerentanan keamanan yang merugikan dan kritis dapat muncul di lingkungan yang berjalan di cabang platform yang sudah pensiun. Atau tindakan EB API dapat berhenti bekerja untuk lingkungan jika menjadi tidak kompatibel dengan layanan Elastic Beanstalk dari waktu ke waktu. Peluang untuk jenis risiko ini meningkat semakin lama lingkungan di cabang platform pensiun tetap aktif. Untuk terus mendapatkan keuntungan dari keamanan yang kritis, kinerja, dan peningkatan fungsionalitas yang ditawarkan oleh pemasok komponen dalam rilis yang lebih baru, kami sangat menyarankan Anda untuk memperbarui semua lingkungan Elastic Beanstalk Anda ke versi platform yang didukung. 

Jika aplikasi Anda mengalami masalah saat berjalan di cabang platform yang sudah pensiun dan Anda tidak dapat memigrasikannya ke platform yang didukung, Anda harus mempertimbangkan alternatif lain. Solusinya termasuk merangkum aplikasi ke dalam gambar Docker untuk menjalankannya sebagai wadah Docker. Ini akan memungkinkan pelanggan untuk menggunakan salah satu solusi Docker kami, seperti platform Elastic AL2 Beanstalk 023/Docker kami, atau layanan berbasis Docker lainnya seperti Amazon AL2 ECS atau Amazon EKS. Alternatif non-Docker termasuk AWS CodeDeploy layanan kami, yang memungkinkan penyesuaian lengkap runtime yang Anda inginkan. 

# Jadwal rilis platform Elastic Beanstalk
<a name="platforms-schedule"></a>

Selain rilis irama bulanan versi cabang platform baru, pemeliharaan rilis kami juga mencakup proses berikut:
+  *Rilis cabang platform baru* — Ini biasanya memperkenalkan versi utama baru dari bahasa run-time, sistem operasi atau server aplikasi.
+  *Pensiun cabang platform* — Kita harus pensiun dari cabang platform ketika salah satu komponennya mencapai End of Life (EOL). Untuk informasi lebih lanjut tentang kebijakan kami untuk cabang pensiunan, lihat [Kebijakan dukungan platform Elastic Beanstalk](platforms-support-policy.md)

**Topics**
+ [Sumber daya perencanaan](#platforms-support-policy.resources)
+ [Rilis cabang platform mendatang](#platforms-support-policy.upcoming-releases)
+ [Jadwal cabang platform yang pensiun](#platforms-support-policy.depracation)
+ [Sejarah cabang platform pensiunan](#platforms-support-policy.retired)
+ [Server pensiun dan riwayat sistem operasi](#platforms-support-policy.retired.components)

## Sumber daya perencanaan
<a name="platforms-support-policy.resources"></a>

Sumber daya berikut dapat membantu Anda merencanakan pemeliharaan dan dukungan untuk aplikasi Anda yang berjalan pada platform Elastic Beanstalk.
+ [AWS Elastic Beanstalk Panduan Platform](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/welcome.html) — Panduan ini menyediakan daftar komponen terperinci untuk setiap cabang platform kami. Ini juga menyediakan riwayat platform berdasarkan tanggal rilis dengan detail yang sama. Panduan ini dapat memberi tahu Anda ketika komponen tertentu dari cabang platform Anda berubah. Jika aplikasi Anda mulai berperilaku berbeda, Anda juga dapat mereferensikan tanggal kemunculannya di panduan platform untuk melihat apakah ada perubahan platform yang mungkin memengaruhi aplikasi Anda.
+ [AWS Elastic Beanstalk Catatan Rilis](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/relnotes.html) — Catatan Rilis kami mengumumkan semua rilis platform kami, baik minor maupun mayor. Ini termasuk pembaruan platform bulanan kami, rilis keamanan, perbaikan terbaru, dan pengumuman pensiun. Anda dapat berlangganan umpan RSS kami dari dokumentasi Catatan Rilis.

## Rilis cabang platform mendatang
<a name="platforms-support-policy.upcoming-releases"></a>

Tabel berikut mencantumkan cabang platform Elastic Beanstalk yang akan datang dan tanggal rilis targetnya. Tanggal-tanggal ini bersifat tentatif dan dapat berubah sewaktu-waktu.


|  Versi runtime/cabang platform  |  Sistem Operasi  |  Target tanggal rilis  | 
| --- | --- | --- | 
|   Python 3.15   |  Amazon Linux 2023  |  November 2026  | 
|   Node.js 26   |  Amazon Linux 2023  |  November 2026  | 
|   .NET 11   |  Amazon Linux 2023  |  Desember 2026  | 
|   PHP 8.6   |  Amazon Linux 2023  |  Januari 2027  | 
|   Ruby 4.1   |  Amazon Linux 2023  |  Februari 2027  | 

## Jadwal cabang platform yang pensiun
<a name="platforms-support-policy.depracation"></a>

Tabel berikut ini mencantumkan cabang platform Elastic Beanstalk yang dijadwalkan untuk pensiun, karena beberapa komponennya mencapai End of Life (EOL). Semua cabang platform AL2 berbasis memiliki tanggal pensiun selambat-lambatnya 30 Juni 2026, ketika Amazon Linux 2 mencapai EOL. Untuk informasi selengkapnya tentang Amazon Linux 2, lihat [Amazon Linux 2 FAQs](https://aws.amazon.com/amazon-linux-2/faqs/).

Untuk daftar lebih rinci tentang cabang platform pensiun yang menyertakan komponen spesifiknya, lihat [versi platform yang pensiun](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-retiring.html) di panduan *AWS Elastic Beanstalk Platform*.


|  Versi runtime/cabang platform  |  Target tanggal pensiun  | 
| --- | --- | 
| PHP 8.1 AL2023 | Maret 31, 2026 | 
| PHP 8.1 AL2 | Maret 31, 2026 | 
| Docker AL2 | Juni 30, 2026 | 
| ECS AL2 | Juni 30, 2026 | 
| Go 1 AL2 | Juni 30, 2026 | 
| Corretto 8 AL2 | Juni 30, 2026 | 
| Corretto 11 AL2 | Juni 30, 2026 | 
| Corretto 17 AL2 | Juni 30, 2026 | 
| Corretto 8 with Tomcat 9 AL2 | Juni 30, 2026 | 
| Corretto 11 with Tomcat 9 AL2 | Juni 30, 2026 | 
| .NET Core AL2 | Juni 30, 2026 | 
| Python 3.9 AL2023 | Juli 31, 2026 | 
| Ruby 3.2 AL2023 | Juli 31, 2026 | 
| Node.js 20 AL2023 | Juli 31, 2026 | 
| IIS 10.0 on Windows Server 2016 (& Core) | September 30, 2026 | 
| PHP 8.2 AL2023 | Maret 31, 2027 | 
| .NET 9 AL2023 | Maret 31, 2027 | 
| .NET 8 AL2023 | Maret 31, 2027 | 

## Sejarah cabang platform pensiunan
<a name="platforms-support-policy.retired"></a>

Tabel berikut mencantumkan cabang platform Elastic Beanstalk yang sudah dalam status pensiun. Anda dapat melihat riwayat terperinci dari cabang platform ini dan komponennya dalam [riwayat Platform](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history.html) panduan *AWS Elastic Beanstalk Platform*.


**Amazon Linux 2023 () AL2023**  

|  Versi runtime/cabang platform  |  Tanggal pensiun  | 
| --- | --- | 
|   .NET 6 AL2023  |  April 8, 2025  | 
|   Node.js 18 AL2023  |  Agustus 11, 2025  | 


**Amazon Linux 2 (AL2)**  

|  Versi runtime/cabang platform  |  Tanggal pensiun  | 
| --- | --- | 
|   Corretto 11 with Tomcat 8.5 AL2  |  Oktober 10, 2024  | 
|   Corretto 8 with Tomcat 8.5 AL2   |  Oktober 10, 2024  | 
|   Corretto 11 with Tomcat 7 AL2  |  Juni 29, 2022  | 
|   Corretto 8 with Tomcat 7 AL2   |  Juni 29, 2022  | 
|   Node.js 18 AL2   | Agustus 11, 2025 | 
|   Node.js 16 AL2   | Oktober 10, 2024 | 
|   Node.js 14 AL2   |  Oktober 10, 2024  | 
|   Node.js 12 AL2   |  Desember 23, 2022  | 
|   Node.js 10 AL2   |  Juni 29, 2022  | 
|   PHP 8.0 AL2  |  Oktober 10, 2024  | 
|   PHP 7.4 AL2  |  9 Juni 2023  | 
|   PHP 7.3 AL2  |  Juni 29, 2022  | 
|   PHP 7.2 AL2  |  Juni 29, 2022  | 
|   Python 3.8 AL2  |  April 8, 2025  | 
|   Python 3.7 AL2  |  Oktober 10, 2024  | 
|   Ruby 3.0 AL2  |  Oktober 10, 2024  | 
|   Ruby 2.7 AL2  |  Oktober 10, 2024  | 
|   Ruby 2.6 AL2  |  Desember 23, 2022  | 
|   Ruby 2.5 AL2  |  Juni 29, 2022  | 


**Amazon Linux AMI (AL1)**  

|  Versi runtime/cabang platform  |  Tanggal pensiun  | 
| --- | --- | 
|   Single Container Docker   | Juli 18, 2022 | 
|   Multicontainer Docker   |  Juli 18, 2022  | 
|   Preconfigured Docker - GlassFish 5.0 with Java 8   |  Juli 18, 2022  | 
|   Go 1   |  Juli 18, 2022  | 
|   Java 8   |  Juli 18, 2022  | 
|   Java 7   |  Juli 18, 2022  | 
|   Java 8 with Tomcat 8.5   |  Juli 18, 2022  | 
|   Java 7 with Tomcat 7   |  Juli 18, 2022  | 
|   Node.js   |  Juli 18, 2022  | 
|   PHP 7.2 - 7.3   |  Juli 18, 2022  | 
|   Python 3.6   |  Juli 18, 2022  | 
|  Ruby 2,4, 2.5, 2.6 with Passenger   |  Juli 18, 2022  | 
|   Ruby 2.4, 2.5, 2.6 with Puma  |  Juli 18, 2022  | 
| Go 1.3–1.10 | 31 Oktober 2020 | 
| Java 6 | 31 Oktober 2020 | 
| Node.js 4.x–8.x | 31 Oktober 2020 | 
| PHP 5.4–5.6 | 31 Oktober 2020 | 
| PHP 7.0–7.1 | 31 Oktober 2020 | 
| Python 2.6, 2.7, 3.4 | 31 Oktober 2020 | 
| Ruby 1.9.3 | 31 Oktober 2020 | 
| Ruby 2.0–2.3 | 31 Oktober 2020 | 

**catatan**  
 **Pada [18 Juli 2022,](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-07-18-linux-al1-retire.html) Elastic Beanstalk menetapkan status semua cabang platform berdasarkan Amazon Linux AMI AL1 () untuk pensiun.** Untuk informasi selengkapnya, lihat [FAQ Pensiun Platform](using-features.migration-al.FAQ.md). 


**Windows Server**  

| Versi runtime/cabang platform |  Tanggal pensiun  | 
| --- | --- | 
| IIS 8.5 berjalan pada 64bit Windows Server (& Core) 2012 R2 | Desember 4, 2023 | 
| IIS 8.5 berjalan pada 64bit Windows Server (& Core) 2012 R2 versi 0.1.0 |  Juni 29, 2022  | 
| IIS 8.5 berjalan pada 64bit Windows Server (& Core) 2012 R2 versi 1.2.0 |  Juni 29, 2022 | 
| IIS 10.0 berjalan pada 64bit Windows Server 2016 (& Core) versi 1.2.0 |  Juni 29, 2022 | 
| IIS 8 berjalan pada 64bit Windows Server 2012 R1 Platform Branch | Juni 22, 2022 | 
| IIS 8 berjalan pada 64bit Windows Server 2012 R1 versi 0.1.0  | Juni 22, 2022 | 
| IIS 8 berjalan pada 64bit Windows Server 2012 R1 versi 1.2.0 | Juni 22, 2022 | 

**catatan**  
*Untuk informasi lebih lanjut tentang pensiunnya cabang platform *Windows 2012 R2*, lihat cabang platform [Windows Server 2012 R2 pensiun](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2023-12-04-windows-2012-retire.html) di Catatan Rilis.AWS Elastic Beanstalk *

## Server pensiun dan riwayat sistem operasi
<a name="platforms-support-policy.retired.components"></a>

Tabel berikut memberikan riwayat sistem operasi, server aplikasi, dan server web yang tidak lagi didukung oleh platform Elastic Beanstalk. Semua cabang platform yang menggunakan komponen ini sekarang sudah pensiun. Tanggal tersebut mencerminkan tanggal pensiun cabang platform Elastic Beanstalk terakhir yang menyertakan komponen.


**Sistem Operasi)**  

|  Versi OS  |  Tanggal masa pensiun platform  | 
| --- | --- | 
|   Windows Server 2012 R2 running IIS 8.5  |  Desember 4, 2023  | 
|   Windows Server Core 2012 R2 running IIS 8.5  |  Desember 4, 2023  | 
|  Amazon Linux AMI (AL1)  |  Juli 18, 2022  | 
| Windows Server 2012 R1 | Juni 22, 2022 | 
| Windows Server 2008 R2 | 28 Oktober 2019 | 


**Server aplikasi**  

|  Versi server aplikasi  |  Tanggal masa pensiun platform  | 
| --- | --- | 
| Tomcat 7 |  29 Juni 2022 untuk platform Amazon Linux 2 (AL2) 18 Juli 2022 untuk platform Amazon Linux AMI (AL1)  | 
| Tomcat 8 | 31 Oktober 2020 | 
| Tomcat 6 | 31 Oktober 2020 | 


**Server web**  

|  Versi server web  |  Tanggal masa pensiun platform  | 
| --- | --- | 
| IIS 8 berjalan pada Windows Server 64bit | Juni 22, 2022 | 
| Apache HTTP Server 2.2 | 31 Oktober 2020 | 
| Nginx 1.12.2 | 31 Oktober 2020 | 

# Platform yang didukung Elastic Beanstalk
<a name="concepts.platforms"></a>

AWS Elastic Beanstalk menyediakan berbagai platform tempat Anda dapat membangun aplikasi Anda. Anda mendesain aplikasi web untuk salah satu platform ini, dan Elastic Beanstalk men-deploy kode Anda ke versi platform yang Anda pilih untuk membuat lingkungan aplikasi aktif.

Elastic Beanstalk menyediakan sumber daya yang diperlukan untuk menjalankan aplikasi Anda, termasuk satu atau beberapa instans Amazon. EC2 Tumpukan perangkat lunak yang berjalan di EC2 instans Amazon bergantung pada versi platform tertentu yang Anda pilih untuk lingkungan Anda.

**Nama tumpukan solusi untuk cabang platform**  
[Anda dapat menggunakan *nama tumpukan solusi* untuk versi cabang platform tertentu untuk meluncurkan lingkungan dengan [EB CLI, Elastic](eb-cli3.md)[Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/) API, atau CLI.AWS](https://aws.amazon.com/cli/) [Panduan *AWS Elastic Beanstalk Platform* mencantumkan *nama tumpukan solusi* di bawah versi cabang platform di bagian [Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html) Supported Platforms dan Platform history.](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history.html)

Untuk mengambil semua nama tumpukan solusi yang dapat Anda gunakan untuk membuat lingkungan, gunakan [ListAvailableSolutionStacks](https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ListAvailableSolutionStacks.html)API atau [https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/list-available-solution-stacks.html](https://docs.aws.amazon.com/cli/latest/reference/elasticbeanstalk/list-available-solution-stacks.html)di AWS CLI.

Anda dapat menyesuaikan dan mengonfigurasi perangkat lunak yang tergantung pada Anda di platform Anda. Pelajari selengkapnya di [Menyesuaikan perangkat lunak pada server Linux](customize-containers-ec2.md) dan [Menyesuaikan perangkat lunak pada server Windows](customize-containers-windows-ec2.md). Catatan rilis terperinci tersedia untuk rilis terbaru di [Catatan Rilis AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/). 

## Platform dan riwayat komponen yang didukung
<a name="concepts.platforms.list"></a>

Panduan *AWS Elastic Beanstalk Platform* mencantumkan semua versi cabang platform saat ini di bagian Platform yang Didukung [Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html). Panduan *Platform* juga mencantumkan *riwayat platform* untuk setiap platform, yang mencakup daftar versi platform cabang sebelumnya. Untuk melihat *riwayat platform* untuk setiap platform, pilih salah satu tautan berikut.
+ [Docker](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-docker.html)
+ [Go](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-go.html)
+ [Jawa SE](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-javase.html)
+ [Tomcat (menjalankan Java SE)](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-java.html)
+ [.NET Core di Linux](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-dotnetlinux.html)
+ [.NET di Windows Server](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-dotnet.html)
+ [Node.js](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-nodejs.html)
+ [PHP](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-php.html)
+ [Python](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-python.html)
+ [Ruby](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-ruby.html)

# Platform Elastic Beanstalk Linux
<a name="platforms-linux"></a>

Platform Elastic Beanstalk Linux menyediakan sejumlah besar fungsionalitas di luar kotak. Anda dapat memperpanjang platform dalam beberapa cara untuk mendukung aplikasi Anda. Lihat perinciannya di [Memperluas platform Linux Elastic Beanstalk](platforms-linux-extend.md).

Sebagian besar platform yang didukung Elastic Beanstalk didasarkan pada sistem operasi Linux. Secara khusus, platform ini didasarkan pada Amazon Linux, distribusi Linux yang disediakan oleh AWS. Platform Elastic Beanstalk Linux menggunakan instans Amazon Elastic Compute Cloud EC2 (Amazon), dan instance ini menjalankan Amazon Linux.

**Topics**
+ [Versi Amazon Linux yang didukung](#platforms-linux.versions)
+ [Daftar platform Linux Elastic Beanstalk](#platforms-linux.list)
+ [Alur kerja deployment instans](platforms-linux-extend.workflow.md)
+ [Alur kerja penerapan instans untuk ECS yang berjalan di Amazon Linux 2 dan yang lebih baru](platforms-linux-extend.workflow.ecs-al2.md)
+ [Alat skrip platform untuk lingkungan Elastic Beanstalk Anda](custom-platforms-scripts.md)

## Versi Amazon Linux yang didukung
<a name="platforms-linux.versions"></a>

AWS Elastic Beanstalk mendukung platform berbasis Amazon Linux 2 dan Amazon Linux 2023.

Untuk informasi selengkapnya tentang Amazon Linux 2 dan Amazon Linux 2023, lihat berikut ini:
+ **Amazon Linux 2** — [Amazon Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-linux-ami-basics.html) di *Panduan EC2 Pengguna Amazon*.
+ **Amazon Linux 2023** - [Apa itu Amazon Linux 2023](https://docs.aws.amazon.com/linux/al2023/ug/what-is-amazon-linux.html)? di *Panduan Pengguna Amazon Linux 2023*

Untuk rincian tentang versi platform yang didukung, lihat [Platform yang didukung Elastic Beanstalk](concepts.platforms.md).

**catatan**  
Anda dapat memigrasikan aplikasi Anda dari Elastic AL2 Beanstalk AL1 atau cabang platform ke cabang platform 023 yang setara. AL2 Untuk informasi selengkapnya, lihat [Memigrasi aplikasi Elastic Beanstalk Linux Anda ke Amazon Linux 2023 atau Amazon Linux 2](using-features.migration-al.md). 

### Amazon Linux 2023
<a name="platforms-linux.versions.al2023"></a>

AWS mengumumkan [ketersediaan umum](https://aws.amazon.com//blogs/aws/amazon-linux-2023-a-cloud-optimized-linux-distribution-with-long-term-support/) Amazon Linux 2023 pada bulan Maret 2023. *Panduan Pengguna Amazon Linux 2023* merangkum perbedaan utama antara Amazon Linux 2 dan Amazon Linux 2023. Untuk informasi selengkapnya, lihat [Membandingkan Amazon Linux 2 dan Amazon Linux 2023](https://docs.aws.amazon.com/linux/al2023/ug/compare-with-al2.html) di panduan pengguna.

Ada tingkat kompatibilitas yang tinggi antara platform Elastic Beanstalk Amazon Linux 2 dan Amazon Linux 2023. Meskipun ada beberapa perbedaan yang perlu diperhatikan:
+ **Layanan Metadata Instans Versi 1 (IMDSv1)** - Pengaturan IMDSv1 opsi [Nonaktifkan](command-options-general.md#command-options-general-autoscalinglaunchconfiguration) default ke platform 023. `true` AL2 Defaultnya ada `false` di AL2 platform.
+ **alat instans pkg-repo - Alat ini** tidak tersedia untuk lingkungan yang berjalan pada platform 023. [pkg-repo](custom-platforms-scripts.md#custom-platforms-scripts.pkg-repo) AL2 Namun, Anda masih dapat menerapkan pembaruan paket dan sistem operasi secara manual ke instans AL2 023. Untuk informasi selengkapnya, lihat [Mengelola paket dan pembaruan sistem operasi](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html) di *Panduan Pengguna Amazon Linux 2023*.
+ ** HTTPd Konfigurasi Apache** - `httpd.conf` File Apache untuk platform AL2 023 memiliki beberapa pengaturan konfigurasi yang berbeda dari yang untuk: AL2 
  + Tolak akses ke seluruh sistem file server secara default. Pengaturan ini dijelaskan dalam *Lindungi File Server secara Default* di halaman [Tips Keamanan](https://httpd.apache.org/docs/2.4/misc/security_tips.html) situs web Apache.
  + Tolak akses untuk mengatur `.htaccess` di semua direktori, kecuali yang diaktifkan secara khusus. Pengaturan ini dijelaskan dalam *Melindungi Pengaturan Sistem* di halaman [Tips Keamanan](https://httpd.apache.org/docs/2.4/misc/security_tips.html) situs web Apache. [Tutorial Server HTTP Apache: halaman file.htaccess](https://httpd.apache.org/docs/2.4/howto/htaccess.html) menyatakan pengaturan ini dapat membantu meningkatkan kinerja.
  + Tolak akses ke file dengan pola nama`.ht*`. Pengaturan ini mencegah klien web melihat `.htaccess` dan `.htpasswd` file.

  Anda dapat mengubah salah satu pengaturan konfigurasi di atas untuk lingkungan Anda. Untuk informasi selengkapnya, lihat [Mengonfigurasi Apache HTTPD](platforms-linux-extend.proxy.md#platforms-linux-extend.proxy.httpd).
+ **Dukungan variabel lingkungan multiline** - AL2 023 platform mendukung nilai multiline untuk variabel lingkungan dan rahasia dalam konfigurasi layanan systemd. Platform Amazon Linux 2 tidak mendukung nilai variabel lingkungan multiline. Peningkatan ini memungkinkan Anda untuk menggunakan rahasia multiline dan nilai konfigurasi pada platform AL2 023. Untuk informasi selengkapnya tentang penggunaan variabel lingkungan dan rahasia, lihat[Nilai multiline dalam variabel lingkungan Amazon Linux 2](AWSHowTo.secrets.env-vars.md#AWSHowTo.secrets.multiline).
+ **CloudWatch penerusan log kustom** - Agen Log (`awslogs`paket) yang tidak CloudWatch digunakan lagi tidak tersedia di platform 023. AL2 Jika Anda memiliki konfigurasi penerusan log kustom yang menginstal dan menggunakan `awslogs` agen usang, Anda harus memperbarui file konfigurasi untuk menggunakan agen terpadu CloudWatch saat bermigrasi dari Amazon Linux 2 ke 023. AL2 Untuk informasi selengkapnya, lihat [Streaming berkas log kustom](AWSHowTo.cloudwatchlogs.md#AWSHowTo.cloudwatchlogs.streaming.custom).

**Perbedaan khusus platform**

Selain perbedaan sistem operasi dasar, ada perbedaan khusus platform antara platform runtime Amazon Linux 2 dan AL2 023:
+ **NET platform branching** — Strategi percabangan platform.NET berbeda antara Amazon Linux 2 dan AL2 023. Di Amazon Linux 2, platform .NET Core mempertahankan jendela rotasi versi utama .NET dalam satu cabang platform. Pada AL2 023, setiap cabang platform disematkan ke versi mayor.NET tertentu (misalnya, .NET 9, .NET 10).

  Jika Anda menerapkan aplikasi yang bergantung pada kerangka kerja (aplikasi yang mengandalkan runtime .NET yang diinstal platform), Anda harus memilih cabang platform yang sesuai dengan versi .NET target aplikasi Anda. Jika Anda menerapkan aplikasi mandiri (aplikasi yang menggabungkan runtime.NET mereka sendiri), Anda dapat menggunakan cabang platform AL2 023 .NET apa pun terlepas dari versi.NET aplikasi Anda, karena aplikasi Anda tidak bergantung pada runtime yang diinstal platform. Untuk informasi selengkapnya, lihat [Aplikasi bundling untuk .NET Core pada platform Linux Elastic Beanstalk](dotnet-linux-platform-bundle-app.md).
+ **Pemilihan versi Node.js** - Platform Node.js di Amazon Linux 2 mendukung menentukan versi Node.js dalam `package.json` file aplikasi Anda. Platform Node.js di AL2 023 tidak mendukung fitur ini. Anda harus menggunakan versi Node.js default yang disediakan oleh cabang platform. Untuk informasi selengkapnya tentang manajemen versi Node.js, lihat[Mengonfigurasi dependensi aplikasi Anda pada Elastic Beanstalk](nodejs-platform-dependencies.md).
+ **Versi server Ruby Puma** — Platform Ruby di Amazon Linux 2 mengabaikan versi Puma yang ditentukan dalam `Gemfile.lock` file aplikasi Anda dan menggunakan versi Puma default platform. Platform Ruby pada AL2 023 menghormati versi Puma yang ditentukan jika ada. `Gemfile.lock` Jika tidak ada versi yang ditentukan, platform menginstal versi Puma default platform.
+ **Ketersediaan paket PHP** - Beberapa paket yang tersedia di Amazon Linux 2 PHP platform tidak tersedia di AL2 023 platform PHP:
  + Paket klien *MySQL — Paket klien* baris perintah `mysql-devel` dan tidak diinstal `mysql` pada platform PHP 023. AL2 Jika aplikasi Anda memerlukan konektivitas database MySQL, gunakan `mysqli` PHP `pdo_mysql` atau ekstensi, yang tersedia di kedua platform.
  + *Alat Kompas dan Ruby* — `rubygems` Paket `ruby-devel` dan paket untuk dukungan kerangka CSS Compass tidak diinstal pada platform PHP AL2 023. Kompas sudah tidak digunakan lagi. Pertimbangkan untuk menggunakan alat preprocessing CSS modern sebagai alternatif.
+ **Alat kontrol versi Go** — Sistem kontrol versi Bazaar (`bzr`) tidak tersedia di platform AL2 023 Go. Bazaar sudah usang dan tidak termasuk dalam repositori paket 023. AL2 Gunakan Git, Mercurial, atau Subversion untuk kontrol versi, yang semuanya tersedia di platform AL2 023 Go.

## Daftar platform Linux Elastic Beanstalk
<a name="platforms-linux.list"></a>

Daftar berikut menyediakan platform Linux yang didukung Elastic Beanstalk untuk berbagai bahasa pemrograman serta untuk wadah Docker. Elastic Beanstalk menawarkan platform berbasis Amazon Linux 2 dan Amazon Linux 2023 untuk semuanya. Untuk mempelajari lebih lanjut tentang platform, pilih tautan yang sesuai.
+ [Docker (dan ECS Docker)](create_deploy_docker.md) 
+ [Go](create_deploy_go.md)
+ [Tomcat (menjalankan Java SE)](create_deploy_Java.md)
+ [Jawa SE](create_deploy_Java.md)
+ [.NET Core di Linux](create-deploy-dotnet-core-linux.md)
+ [Node.js](create_deploy_nodejs.md)
+ [PHP](create_deploy_PHP_eb.md)
+ [Python](create-deploy-python-apps.md)
+ [Ruby](create_deploy_Ruby.md)

# Alur kerja deployment instans
<a name="platforms-linux-extend.workflow"></a>

**catatan**  
Informasi di bagian ini tidak berlaku untuk *ECS yang berjalan di cabang platform Amazon Linux 2 dan Amazon Linux 2023*. Untuk informasi lebih lanjut, lihat bagian selanjutnya[Alur kerja penerapan instans untuk ECS yang berjalan di Amazon Linux 2 dan yang lebih baruAlur kerja penerapan instans untuk ECS di dan yang lebih baru AL2 ](platforms-linux-extend.workflow.ecs-al2.md). 

Dengan banyak cara untuk memperluas platform lingkungan Anda, itu berguna untuk mengetahui apa yang terjadi setiap kali Elastic Beanstalk menyediakan instans atau menjalankan deployment ke sebuah instans. Diagram berikut menunjukkan seluruh alur kerja deployment ini. Ini menggambarkan fase yang berbeda dalam penyebaran dan langkah-langkah yang diambil Elastic Beanstalk di setiap fase.

**Catatan**  
Diagram tidak mewakili set lengkap dari langkah-langkah yang Elastic Beanstalk ambil pada instans lingkungan selama deployment. Kami menyediakan diagram ini untuk ilustrasi, untuk menyediakan Anda dengan urutan dan konteks untuk pelaksanaan penyesuaian Anda.
Untuk mempermudah, diagram hanya menyebutkan subdirektori hook `.platform/hooks/*` (untuk penerapan aplikasi), dan bukan subdirektori hook `.platform/confighooks/*` (untuk deployment konfigurasi). Hook di subdirektori terakhir berjalan selama langkah yang sama persis seperti hook di subdirektori yang sesuai yang ditunjukkan dalam diagram.

![\[Alur kerja untuk urutan eksekusi ekstensi pada instance lingkungan yang berjalan di platform berbasis Amazon Linux.\]](http://docs.aws.amazon.com/id_id/elasticbeanstalk/latest/dg/images/platforms-linux-extend-order.png)


Daftar berikut detail tahap deployment dan langkah-langkah.

1. **Langkah awal**

   Elastic Beanstalk mengunduh dan mengekstrak aplikasi Anda. Setelah setiap langkah ini, Elastic Beanstalk menjalankan salah satu langkah yang diperpanjang.

   1. Menjalankan perintah yang ditemukan di bagian [perintah:](customize-containers-ec2.md#linux-commands) dari file konfigurasi.

   1. Menjalankan file yang dapat dieksekusi yang ditemukan di direktori `.platform/hooks/prebuild` dari paket sumber Anda (`.platform/confighooks/prebuild` untuk deployment konfigurasi).

1. **Konfigurasikan**

   Elastic Beanstalk mengonfigurasi aplikasi Anda dan server proksi.

   1. Menjalankan perintah yang ditemukan di `Buildfile` di paket sumber Anda.

   1. Salinan file konfigurasi proksi kustom Anda, jika Anda memiliki direktori `.platform/nginx` dari paket sumber Anda, ke lokasi waktu aktif mereka.

   1. Menjalankan perintah yang ditemukan di bagian [container\$1commands:](customize-containers-ec2.md#linux-container-commands) dari file konfigurasi.

   1. Menjalankan file executable yang ditemukan di direktori `.platform/hooks/predeploy` dari paket sumber Anda (`.platform/confighooks/predeploy` untuk deployment konfigurasi).

1. **Menyebarkan**

   Elastic Beanstalk men-deploy dan menjalankan aplikasi Anda dan server proksi.

   1. Menjalankan perintah yang ditemukan di file `Procfile` dalam paket sumber Anda.

   1. Menjalankan atau menjalankan ulang server proksi dengan file konfigurasi proksi kustom Anda, jika Anda memilikinya.

   1. Menjalankan file executable yang ditemukan di direktori `.platform/hooks/postdeploy` dari paket sumber Anda (`.platform/confighooks/postdeploy` untuk deployment konfigurasi).

# Alur kerja penerapan instans untuk ECS yang berjalan di Amazon Linux 2 dan yang lebih baru
<a name="platforms-linux-extend.workflow.ecs-al2"></a>

Bagian sebelumnya menjelaskan fitur ekstensibilitas yang didukung di seluruh fase alur kerja penerapan aplikasi. Ada beberapa perbedaan untuk cabang platform Docker [*ECS yang berjalan di Amazon Linux 2 dan*](create_deploy_docker_ecs.md) yang lebih baru. Bagian ini menjelaskan bagaimana konsep-konsep tersebut berlaku untuk cabang platform khusus ini. 

Dengan banyak cara untuk memperluas platform lingkungan Anda, itu berguna untuk mengetahui apa yang terjadi setiap kali Elastic Beanstalk menyediakan instans atau menjalankan deployment ke sebuah instans. Diagram berikut menunjukkan seluruh alur kerja penerapan ini untuk lingkungan berdasarkan ECS yang berjalan *di Amazon Linux 2 dan ECS* *yang berjalan di cabang platform Amazon Linux* 2023. Ini menggambarkan fase yang berbeda dalam penyebaran dan langkah-langkah yang diambil Elastic Beanstalk di setiap fase.

Tidak seperti alur kerja yang dijelaskan di bagian sebelumnya, fase Konfigurasi penerapan tidak mendukung fitur ekstensibilitas berikut: `Buildfile` perintah, `Procfile` perintah, konfigurasi proxy terbalik. 

**Catatan**  
Diagram tidak mewakili set lengkap dari langkah-langkah yang Elastic Beanstalk ambil pada instans lingkungan selama deployment. Kami menyediakan diagram ini untuk ilustrasi, untuk menyediakan Anda dengan urutan dan konteks untuk pelaksanaan penyesuaian Anda.
Untuk mempermudah, diagram hanya menyebutkan subdirektori hook `.platform/hooks/*` (untuk penerapan aplikasi), dan bukan subdirektori hook `.platform/confighooks/*` (untuk deployment konfigurasi). Hook di subdirektori terakhir berjalan selama langkah yang sama persis seperti hook di subdirektori yang sesuai yang ditunjukkan dalam diagram.

![\[Alur kerja untuk urutan eksekusi ekstensi pada instance lingkungan pada platform Docker berbasis ECS.\]](http://docs.aws.amazon.com/id_id/elasticbeanstalk/latest/dg/images/platform-ecs-al2-extended-order.png)


Daftar berikut merinci langkah-langkah alur kerja penerapan.

1. Menjalankan file yang dapat dieksekusi yang ditemukan di `appdeploy/pre` direktori di bawah. `EBhooksDir`

1. Menjalankan file yang dapat dieksekusi yang ditemukan di direktori `.platform/hooks/prebuild` dari paket sumber Anda (`.platform/confighooks/prebuild` untuk deployment konfigurasi).

1. Menjalankan file yang dapat dieksekusi yang ditemukan di direktori `.platform/hooks/predeploy` dari paket sumber Anda (`.platform/confighooks/predeploy` untuk deployment konfigurasi).

1. Menjalankan file yang dapat dieksekusi yang ditemukan di `appdeploy/enact` direktori di bawah. `EBhooksDir`

1. Menjalankan file yang dapat dieksekusi yang ditemukan di `appdeploy/post` direktori di bawah. `EBhooksDir`

1. Menjalankan file yang dapat dieksekusi yang ditemukan di direktori `.platform/hooks/postdeploy` dari paket sumber Anda (`.platform/confighooks/postdeploy` untuk deployment konfigurasi).

Referensi untuk `EBhooksDir` mewakili jalur direktori kait platform. Untuk mengambil nama jalur direktori gunakan alat skrip [get-config](custom-platforms-scripts.md#custom-platforms-scripts.get-config) pada baris perintah instance lingkungan Anda seperti yang ditunjukkan: 

```
$ /opt/elasticbeanstalk/bin/get-config platformconfig -k EBhooksDir
```

# Alat skrip platform untuk lingkungan Elastic Beanstalk Anda
<a name="custom-platforms-scripts"></a>

Topik ini menjelaskan alat yang AWS Elastic Beanstalk menyediakan lingkungan yang menggunakan platform Amazon Linux. Alat-alat tersebut terletak di EC2 contoh Amazon dari lingkungan Elastic Beanstalk.

## get-config
<a name="custom-platforms-scripts.get-config"></a>

Gunakan `get-config` alat ini untuk mengambil nilai variabel lingkungan teks biasa dan informasi platform dan instance lainnya. Alat ini tersedia di `/opt/elasticbeanstalk/bin/get-config`.

### Perintah get-config
<a name="custom-platforms-scripts.get-config.commands"></a>

Setiap `get-config` perintah alat mengembalikan jenis informasi tertentu. Gunakan sintaks berikut untuk menjalankan perintah dari salah satu alat.

```
$ /opt/elasticbeanstalk/bin/get-config command [ options ]
```

Contoh berikut menjalankan perintah `environment`.

```
$ /opt/elasticbeanstalk/bin/get-config environment -k PORT
```

Bergantung pada perintah dan opsi yang Anda pilih, alat mengembalikan objek (JSON atau YAMAL) dengan pasangan kunci-nilai atau nilai tunggal.

Anda dapat menguji `get-config` dengan menggunakan SSH untuk terhubung ke EC2 instans di lingkungan Elastic Beanstalk Anda.

**catatan**  
Ketika Anda menjalankan `get-config` untuk pengujian, beberapa perintah mungkin memerlukan hak pengguna root untuk mengakses informasi dasar. Jika Anda mendapatkan kesalahan izin akses, jalankan perintah lagi di bawah `sudo`.  
Anda tidak perlu menambahkan `sudo` saat menggunakan alat dalam skrip yang Anda deploy ke lingkungan Anda. Elastic Beanstalk menjalankan semua skrip Anda sebagai pengguna root.

Bagian berikut menjelaskan perintah untuk alat.

#### optionsettings – pilihan konfigurasi
<a name="custom-platforms-scripts.get-config.commands.optionsettings"></a>

`get-config optionsettings`Perintah mengembalikan objek yang mencantumkan opsi konfigurasi yang disetel di lingkungan dan digunakan oleh platform pada instance lingkungan. Mereka diatur oleh namespace.

```
$ /opt/elasticbeanstalk/bin/get-config optionsettings
{"aws:elasticbeanstalk:application:environment":{"JDBC_CONNECTION_STRING":""},"aws:elasticbeanstalk:container:tomcat:jvmoptions":{"JVM Options":"","Xms":"256m","Xmx":"256m"},"aws:elasticbeanstalk:environment:proxy":{"ProxyServer":"nginx","StaticFiles":[""]},"aws:elasticbeanstalk:healthreporting:system":{"SystemType":"enhanced"},"aws:elasticbeanstalk:hostmanager":{"LogPublicationControl":"false"}}
```

Untuk mengembalikan nilai opsi konfigurasi tertentu, gunakan pilihan `--namespace` (`-n`) untuk menentukan namespace, dan pilihan `--option-name` (`-o`) untuk menentukan nama pilihan.

```
$ /opt/elasticbeanstalk/bin/get-config optionsettings -n aws:elasticbeanstalk:container:php:phpini -o memory_limit
256M
```

#### lingkungan – Sifat lingkungan
<a name="custom-platforms-scripts.get-config.commands.environment"></a>

`get-config environment`Perintah mengembalikan objek yang berisi daftar properti lingkungan, termasuk baik yang dikonfigurasi pengguna dan disediakan oleh Elastic Beanstalk. Properti yang dikonfigurasi pengguna didefinisikan di [konsol](environments-cfg-softwaresettings.md#environments-cfg-softwaresettings-console) sebagai *Teks biasa* atau dengan namespace opsi konfigurasi. [aws:elasticbeanstalk:application:environment](command-options-general.md#command-options-general-elasticbeanstalkapplicationenvironment)

```
$ /opt/elasticbeanstalk/bin/get-config environment
{"JDBC_CONNECTION_STRING":"","RDS_PORT":"3306","RDS_HOSTNAME":"anj9aw1b0tbj6b.cijbpanmxz5u.us-west-2.rds.amazonaws.com","RDS_USERNAME":"testusername","RDS_DB_NAME":"ebdb","RDS_PASSWORD":"testpassword1923851"}
```

Misalnya, Elastic Beanstalk menyediakan properti lingkungan untuk menghubungkan ke instans Amazon RDS DB terintegrasi (misalnya,). `RDS_HOSTNAME` Properti koneksi RDS ini muncul dalam output dari. `get-config environment` Namun, mereka tidak muncul di output`get-config optionsettings`. Ini karena mereka tidak diatur dalam opsi konfigurasi.

Untuk mengembalikan properti lingkungan tertentu, gunakan `--key` (`-k`) pilihan untuk menentukan kunci properti.

```
$ /opt/elasticbeanstalk/bin/get-config environment -k TESTPROPERTY
testvalue
```

**catatan**  
`get-config`Alat ini tidak dapat mengambil [variabel lingkungan yang menyimpan rahasia](AWSHowTo.secrets.env-vars.md). Untuk informasi selengkapnya tentang cara mengambil nilai secara terprogram dari penyimpanan rahasia atau parameter, lihat atau. [Menggunakan Secrets Manager](AWSHowTo.secrets.Secrets-Manager-and-Parameter-Store.md#AWSHowTo.secrets.Secrets-Manager) [Menggunakan Systems Manager Parameter Store](AWSHowTo.secrets.Secrets-Manager-and-Parameter-Store.md#AWSHowTo.secrets.SSM-parmameter-store)

#### kontainer – Nilai-nilai konfigurasi pada instans
<a name="custom-platforms-scripts.get-config.commands.container"></a>

`get-config container`Perintah mengembalikan objek yang mencantumkan nilai konfigurasi platform dan lingkungan untuk instance lingkungan. 

Contoh berikut menunjukkan output untuk perintah pada lingkungan Amazon Linux 2 Tomcat.

```
$ /opt/elasticbeanstalk/bin/get-config container
{"common_log_list":["/var/log/eb-engine.log","/var/log/eb-hooks.log"],"default_log_list":["/var/log/nginx/access.log","/var/log/nginx/error.log"],"environment_name":"myenv-1da84946","instance_port":"80","log_group_name_prefix":"/aws/elasticbeanstalk","proxy_server":"nginx","static_files":[""],"xray_enabled":"false"}
```

Untuk mengembalikan nilai kunci tertentu, gunakan pilihan `--key` (`-k`) untuk menentukan kunci.

```
$ /opt/elasticbeanstalk/bin/get-config container -k environment_name
myenv-1da84946
```

#### addons – Menambahkan nilai konfigurasi
<a name="custom-platforms-scripts.get-config.commands.addons"></a>

`get-config addons`Perintah mengembalikan objek yang berisi informasi konfigurasi add-on lingkungan. Gunakan untuk mengambil konfigurasi database Amazon RDS yang terkait dengan lingkungan.

```
$ /opt/elasticbeanstalk/bin/get-config addons
{"rds":{"Description":"RDS Environment variables","env":{"RDS_DB_NAME":"ebdb","RDS_HOSTNAME":"ea13k2wimu1dh8i.c18mnpu5rwvg.us-east-2.rds.amazonaws.com","RDS_PASSWORD":"password","RDS_PORT":"3306","RDS_USERNAME":"user"}}}
```

Anda bisa membatasi hasilnya dengan dua cara. Untuk mengambil nilai untuk add-on tertentu, gunakan pilihan `--add-on` (`-a`) untuk menentukan nama add-on.

```
$ /opt/elasticbeanstalk/bin/get-config addons -a rds
{"Description":"RDS Environment variables","env":{"RDS_DB_NAME":"ebdb","RDS_HOSTNAME":"ea13k2wimu1dh8i.c18mnpu5rwvg.us-east-2.rds.amazonaws.com","RDS_PASSWORD":"password","RDS_PORT":"3306","RDS_USERNAME":"user"}}
```

Untuk mengembalikan nilai kunci tertentu dalam add-on, tambahkan pilihan `--key` (`-k`) untuk menentukan kunci.

```
$ /opt/elasticbeanstalk/bin/get-config addons -a rds -k RDS_DB_NAME
ebdb
```

#### platformconfig – nilai konfigurasi konstan
<a name="custom-platforms-scripts.get-config.commands.platformconfig"></a>

`get-config platformconfig`Perintah mengembalikan objek yang berisi informasi konfigurasi platform yang konstan ke versi platform. Outputnya sama di semua lingkungan yang menjalankan versi platform yang sama. Objek output untuk perintah memiliki dua objek tertanam:
+ `GeneralConfig`— Berisi informasi yang konstan di seluruh versi terbaru dari semua cabang platform Amazon Linux 2 dan Amazon Linux 2023.
+ `PlatformSpecificConfig`— Berisi informasi yang konstan untuk versi platform dan khusus untuk itu.

Contoh berikut menunjukkan output untuk perintah pada lingkungan yang menggunakan *Tomcat 8.5 menjalankan cabang platform Corretto 11*.

```
$ /opt/elasticbeanstalk/bin/get-config platformconfig
{"GeneralConfig":{"AppUser":"webapp","AppDeployDir":"/var/app/current/","AppStagingDir":"/var/app/staging/","ProxyServer":"nginx","DefaultInstancePort":"80"},"PlatformSpecificConfig":{"ApplicationPort":"8080","JavaVersion":"11","TomcatVersion":"8.5"}}
```

Untuk mengembalikan nilai kunci tertentu, gunakan pilihan `--key` (`-k`) untuk menentukan kunci. Kunci ini unik di dua benda tertanam. Anda tidak perlu menentukan objek yang berisi kunci.

```
$ /opt/elasticbeanstalk/bin/get-config platformconfig -k AppStagingDir
/var/app/staging/
```

### pilihan output get-config
<a name="custom-platforms-scripts.get-config.global"></a>

Gunakan pilihan `--output` untuk menentukan format objek output. Nilai yang valid adalah `JSON` (default) dan `YAML`. Ini adalah opsi global. Anda harus menentukannya sebelum nama perintah.

Contoh berikut mengembalikan nilai opsi konfigurasi dalam format YAMM.

```
$ /opt/elasticbeanstalk/bin/get-config --output YAML optionsettings
aws:elasticbeanstalk:application:environment:
  JDBC_CONNECTION_STRING: ""
aws:elasticbeanstalk:container:tomcat:jvmoptions:
  JVM Options: ""
  Xms: 256m
  Xmx: 256m
aws:elasticbeanstalk:environment:proxy:
  ProxyServer: nginx
  StaticFiles:
        - ""
aws:elasticbeanstalk:healthreporting:system:
  SystemType: enhanced
aws:elasticbeanstalk:hostmanager:
  LogPublicationControl: "false"
```

## pkg-repo
<a name="custom-platforms-scripts.pkg-repo"></a>

**catatan**  
`pkg-repo`Alat ini tidak tersedia untuk lingkungan berdasarkan platform Amazon Linux 2023. Namun, Anda dapat secara manual menerapkan paket dan pembaruan sistem operasi ke instans AL2 023. Untuk informasi selengkapnya, lihat [Mengelola paket dan pembaruan sistem operasi](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html) di *Panduan Pengguna Amazon Linux 2023*

Dalam beberapa keadaan mendesak, Anda mungkin perlu memperbarui EC2 instans Amazon Anda dengan patch keamanan Amazon Linux 2 yang belum dirilis dengan versi platform Elastic Beanstalk yang diperlukan. Anda tidak dapat melakukan pembaruan manual pada lingkungan Elastic Beanstalk Anda secara default. Ini karena versi platform dikunci ke versi tertentu dari repositori Amazon Linux 2. Kunci ini memastikan bahwa instance menjalankan versi perangkat lunak yang didukung dan konsisten. Untuk kasus yang mendesak, `pkg-repo` alat ini memungkinkan solusi untuk memperbarui paket yum secara manual di Amazon Linux 2 jika Anda perlu menginstalnya di lingkungan sebelum dirilis dalam versi platform Elastic Beanstalk yang baru.

`pkg-repo`Alat pada platform Amazon Linux 2 menyediakan kemampuan untuk membuka kunci repositori `yum` paket. Anda kemudian dapat melakukan patch keamanan **yum update** secara manual. Sebaliknya, Anda dapat mengikuti pembaruan dengan menggunakan alat untuk mengunci repositori paket yum untuk mencegah pembaruan lebih lanjut. `pkg-repo`Alat ini tersedia di `/opt/elasticbeanstalk/bin/pkg-repo` direktori semua EC2 instance di lingkungan Elastic Beanstalk Anda.

Perubahan menggunakan `pkg-repo` alat dibuat hanya pada EC2 contoh di mana alat digunakan. Mereka tidak memengaruhi instance lain atau mencegah pembaruan lingkungan di masa mendatang. Contoh yang diberikan nanti dalam topik ini menjelaskan cara menerapkan perubahan di semua instance dengan memanggil `pkg-repo` perintah dari skrip dan file konfigurasi.

**Awas**  
Kami tidak merekomendasikan alat ini untuk sebagian besar pengguna. Setiap perubahan manual yang diterapkan pada versi platform yang tidak terkunci dianggap tidak sesuai. Opsi ini hanya layak bagi pengguna dalam keadaan mendesak yang dapat menerima risiko berikut:  
Versi Package tidak dapat dijamin konsisten di semua instance di lingkungan Anda.
Lingkungan yang dimodifikasi menggunakan `pkg-repo` alat tidak dijamin berfungsi dengan baik. Mereka belum diuji dan diverifikasi pada platform yang didukung Elastic Beanstalk.
Kami sangat menyarankan untuk menerapkan praktik terbaik yang mencakup rencana pengujian dan backout. Untuk membantu memfasilitasi praktik terbaik, Anda dapat menggunakan konsol Elastic Beanstalk dan EB CLI untuk mengkloning lingkungan dan menukar lingkungan. URLs Untuk informasi selengkapnya tentang penggunaan operasi ini, lihat [penerapan Biru/Hijau](using-features.CNAMESwap.md) di bagian *Mengelola lingkungan* dari panduan ini.

Jika Anda berencana untuk mengedit file konfigurasi repositori yum secara manual, jalankan alat terlebih dahulu. `pkg-repo` `pkg-repo`Alat ini mungkin tidak berfungsi sebagaimana dimaksud di lingkungan Amazon Linux 2 dengan file konfigurasi repositori yum yang diedit secara manual. Ini karena alat mungkin tidak mengenali perubahan konfigurasi.

*Untuk informasi selengkapnya tentang repositori paket Amazon Linux, lihat topik [repositori Package](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/amazon-linux-ami-basics.html#package-repository) di Panduan Pengguna Amazon. EC2 *

### perintah pkg-repo
<a name="custom-platforms-scripts.pkg-repo.commands"></a>

Gunakan sintaks berikut untuk menjalankan perintah `pkg-repo` alat.

```
$ /opt/elasticbeanstalk/bin/pkg-repo command [options]
```

`pkg-repo`Perintahnya adalah sebagai berikut:
+ **lock**— mengunci repositori `yum` paket ke versi tertentu
+ **unlock**— membuka repositori `yum` paket dari versi tertentu
+ **status**— daftar semua repositori `yum` paket dan status kunci mereka saat ini
+ **help**— menunjukkan bantuan umum atau bantuan untuk satu perintah

Opsi berlaku untuk perintah sebagai berikut:
+ `lock`, `unlock` dan `status ` — opsi:`-h`,`--help`, atau tidak ada (default).
+ `help`— opsi:`lock`,`unlock`,`status`, atau tidak ada (default).



Contoh berikut menjalankan perintah **unlock**.

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo unlock
Amazon Linux 2 core package repo successfully unlocked
Amazon Linux 2 extras package repo successfully unlocked
```

Contoh berikut menjalankan perintah **lock**.

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo lock
Amazon Linux 2 core package repo successfully locked
Amazon Linux 2 extras package repo successfully locked
```

Contoh berikut menjalankan perintah **status**.

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo status
Amazon Linux 2 core package repo is currently UNLOCKED
Amazon Linux 2 extras package repo is currently UNLOCKED
```

Contoh berikut menjalankan **help** perintah untuk **lock** perintah.

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo help lock
```

Contoh berikut menjalankan **help** perintah untuk `pkg-repo` alat ini.

```
$ sudo /opt/elasticbeanstalk/bin/pkg-repo help
```

Anda dapat menguji `pkg-repo` dengan menggunakan SSH untuk terhubung ke sebuah instans di lingkungan Elastic Beanstalk Anda. Salah satu opsi SSH adalah perintah EB CLI. [**eb ssh**](eb3-ssh.md)

**catatan**  
`pkg-repo`Alat ini membutuhkan hak akses pengguna root untuk dijalankan. Jika Anda mendapatkan kesalahan izin akses, jalankan perintah lagi di bawah `sudo`.  
Anda tidak perlu menambahkan `sudo` saat menggunakan alat dalam skrip atau file konfigurasi yang Anda gunakan ke lingkungan Anda. Elastic Beanstalk menjalankan semua skrip Anda sebagai pengguna root.

### contoh pkg-repo
<a name="custom-platforms-scripts.pkg-repo.examples"></a>

Bagian sebelumnya memberikan contoh baris perintah untuk pengujian pada EC2 instance individual dari lingkungan Elastic Beanstalk. Pendekatan ini dapat membantu untuk pengujian. Namun, ini hanya memperbarui satu instance pada satu waktu, jadi tidak praktis untuk menerapkan perubahan ke semua instance di lingkungan.

Pendekatan yang lebih pragmatis adalah dengan menggunakan skrip [hook platform](platforms-linux-extend.hooks.md) atau file [`.ebextensions`](ebextensions.md)konfigurasi untuk menerapkan perubahan di semua instance secara konsisten.

Contoh panggilan berikut `pkg-repo` dari file konfigurasi dalam [`.ebextensions`](ebextensions.md)folder. Elastic Beanstalk menjalankan perintah `update_package.config` dalam file saat Anda menerapkan bundel sumber aplikasi Anda.

```
.ebextensions
└── update_package.config
```

Untuk menerima versi terbaru dari paket *docker*, konfigurasi ini menentukan paket *docker* dalam perintah. **yum update**

```
### update_package.config ###

commands:
  update_package:
    command: |
      /opt/elasticbeanstalk/bin/pkg-repo unlock
      yum update docker -y
      /opt/elasticbeanstalk/bin/pkg-repo lock
      yum clean all -y
      rm -rf /var/cache/yum
```

Konfigurasi ini tidak menentukan paket apa pun dalam **yum update** perintah. Semua pembaruan yang tersedia diterapkan sebagai hasilnya.

```
### update_package.config ###

commands:
  update_package:
    command: |
      /opt/elasticbeanstalk/bin/pkg-repo unlock
      yum update -y
      /opt/elasticbeanstalk/bin/pkg-repo lock
      yum clean all -y
      rm -rf /var/cache/yum
```

Contoh panggilan berikut `pkg-repo` dari skrip bash sebagai [hook platform](platforms-linux-extend.hooks.md). Elastic Beanstalk `update_package.sh` menjalankan file skrip yang terletak di subdirektori. `prebuild`

```
.platform
└── hooks
    └── prebuild
        └── update_package.sh
```

Untuk menerima versi terbaru dari paket *docker*, skrip ini menentukan paket *docker* dalam perintah. **yum update** Jika nama paket dihilangkan, semua pembaruan yang tersedia diterapkan. Contoh file konfigurasi sebelumnya menunjukkan ini.

```
### update_package.sh ###

#!/bin/bash

/opt/elasticbeanstalk/bin/pkg-repo unlock
yum update docker -y
/opt/elasticbeanstalk/bin/pkg-repo lock
yum clean all -y
rm -rf /var/cache/yum
```

## download-source-bundle (Hanya AMI Amazon Linux)
<a name="custom-platforms-scripts.download"></a>

Di cabang platform Amazon Linux AMI (sebelumnya Amazon Linux 2), Elastic Beanstalk menyediakan alat tambahan, yaitu. `download-source-bundle` Gunakan alat ini untuk mengunduh kode sumber aplikasi Anda saat menerapkan platform Anda. Alat ini tersedia di `/opt/elasticbeanstalk/bin/download-source-bundle`.

Contoh skrip `00-unzip.sh` terletak di folder `appdeploy/pre` pada instans lingkungan. Ini menunjukkan bagaimana menggunakan `download-source-bundle` untuk men-download kode sumber aplikasi ke `/opt/elasticbeanstalk/deploy/appsource` folder selama penyebaran.

# Memperluas platform Linux Elastic Beanstalk
<a name="platforms-linux-extend"></a>

Topik ini menjelaskan cara memperluas platform Linux Anda dengan perintah, skrip, perangkat lunak, dan konfigurasi Anda sendiri. Anda mungkin perlu memperluas platform Anda untuk mengubah server dan konfigurasi proxy default. Atau Anda mungkin perlu menyesuaikan cara platform membangun atau memulai aplikasi Anda.

**Topics**
+ [Buildfile dan Procfile](platforms-linux-extend.build-proc.md)
+ [Hook platform](platforms-linux-extend.hooks.md)
+ [File konfigurasi](platforms-linux-extend.config-files.md)
+ [Konfigurasi proksi terbalik](platforms-linux-extend.proxy.md)
+ [Contoh aplikasi dengan ekstensi](platforms-linux-extend.example.md)

# Buildfile dan Procfile
<a name="platforms-linux-extend.build-proc"></a>

Beberapa platform memungkinkan Anda untuk menyesuaikan bagaimana Anda membangun atau mempersiapkan aplikasi Anda, dan untuk menentukan proses yang menjalankan aplikasi Anda. Setiap topik platform individu secara khusus menyebutkan *Buildfile and/or *Procfile** jika platform mendukungnya. Cari platform spesifik Anda di bawah [Platform Elastic Beanstalk](concepts-all-platforms.md).

Untuk semua platform pendukung, sintaks dan semantik identik, dan seperti yang dijelaskan pada halaman ini. Topik platform individu menyebutkan penggunaan spesifik file-file ini untuk membangun dan menjalankan aplikasi dalam bahasa masing-masing.

## Buildfile
<a name="platforms-linux-extend.build"></a>

Untuk menentukan perintah kustom build dan konfigurasi untuk aplikasi Anda, menempatkan file yang bernama `Buildfile` di direktori root dari sumber aplikasi Anda. Nama file peka huruf besar/kecil. Gunakan sintaks berikut untuk `Buildfile` Anda.

```
<process_name>: <command>
```

Perintah di `Buildfile` Anda harus sesuai dengan ekspresi reguler berikut: `^[A-Za-z0-9_-]+:\s*[^\s].*$`

Elastic Beanstalk tidak memantau aplikasi yang dijalankan dengan `Buildfile`. Gunakan `Buildfile` untuk perintah yang berjalan dalam waktu singkat dan berakhir setelah menyelesaikan tugas mereka. Untuk proses aplikasi yang berjalan lama yang seharusnya tidak keluar, gunakan [Procfile](#platforms-linux-extend.proc).

Semua jalur di `Buildfile` adalah relatif terhadap akar dari paket sumber. Dalam contoh berikut `Buildfile`, `build.sh` adalah script shell yang terletak di akar paket sumber.

**Example Buildfile**  

```
make: ./build.sh
```

Jika Anda ingin memberikan langkah-langkah pembuatan kustom, kami sarankan Anda menggunakan hook platform `predeploy` untuk apa pun kecuali perintah yang paling sederhana, bukan `Buildfile`. Hook platform memungkinkan skrip yang lebih kaya dan penanganan kesalahan yang lebih baik. Hook platform dijelaskan di bagian selanjutnya.

## Procfile
<a name="platforms-linux-extend.proc"></a>

Untuk menentukan perintah kustom untuk memulai dan menjalankan aplikasi Anda, menempatkan file yang bernama `Procfile` di direktori root dari sumber aplikasi Anda. Nama file peka huruf besar/kecil. Gunakan sintaks berikut untuk `Procfile` Anda. Anda dapat menentukan satu atau lebih perintah.

```
<process_name1>: <command1>
<process_name2>: <command2>
...
```

Setiap baris di `Procfile` harus sesuai dengan ekspresi reguler berikut: `^[A-Za-z0-9_-]+:\s*[^\s].*$`

Menggunakan `Procfile` untuk proses aplikasi yang berjalan lama yang seharusnya tidak keluar. Elastic Beanstalk mengharapkan proses berjalan dari `Procfile` untuk berjalan terus menerus. Elastic Beanstalk memonitor proses ini dan memulai ulang setiap proses yang berakhir. Untuk proses berjalan pendek, gunakan [Buildfile](#platforms-linux-extend.build).

Semua jalur di `Procfile` adalah relatif terhadap akar dari paket sumber. Contoh berikut `Procfile` mendefinisikan tiga proses. Yang pertama, disebut `web` dalam contoh, adalah *aplikasi web utama*.

**Example Procfile**  

```
web: bin/myserver
cache: bin/mycache
foo: bin/fooapp
```

Elastic Beanstalk mengonfigurasi server proksi untuk meneruskan permintaan ke aplikasi web utama Anda pada port 5000, dan Anda dapat mengonfigurasi nomor port ini. Sebuah penggunaan umum untuk `Procfile` adalah untuk lulus nomor port ini untuk aplikasi Anda sebagai argumen perintah. Untuk detail tentang konfigurasi proxy, lihat[Konfigurasi proksi terbalik](platforms-linux-extend.proxy.md).

Elastic Beanstalk menangkap output standar dan kesalahan aliran dari proses `Procfile` dalam berkas log. Elastic Beanstalk menamakan berkas log setelah proses dan menyimpannya di `/var/log`. Misalnya, proses `web` dalam contoh sebelumnya menghasilkan log bernama `web-1.log` dan `web-1.error.log` untuk `stdout` dan `stderr`, masing-masing.

# Hook platform
<a name="platforms-linux-extend.hooks"></a>

Hook platform dirancang khusus untuk memperluas platform lingkungan Anda. Ini adalah skrip kustom dan file eksekusi lainnya yang Anda men-deploy sebagai bagian dari kode sumber aplikasi Anda, dan Elastic Beanstalk berjalan selama berbagai tahap penyediaan instans.

**catatan**  
Hook platform tidak didukung pada versi platform Amazon Linux AMI (sebelumnya Amazon Linux 2).

## Hook platform deployment aplikasi
<a name="platforms-linux-extend.hooks.appdeploy"></a>

*Deployment aplikasi* terjadi ketika Anda menyediakan paket sumber baru untuk deployment, atau ketika Anda membuat perubahan konfigurasi yang memerlukan penghentian dan rekreasi semua instans lingkungan.

Untuk menyediakan platform hook yang berjalan selama deployment aplikasi, menempatkan file di bawah direktori `.platform/hooks` di paket sumber Anda, di salah satu subdirektori berikut.
+ `prebuild` – File di sini berjalan setelah platform mesin Elastic Beanstalk mengunggah dan mengekstrak paket sumber aplikasi, dan sebelum menyiapkan dan mengonfigurasi aplikasi dan server web.

  File `prebuild` berjalan setelah menjalankan perintah yang ditemukan di bagian [perintah](customize-containers-ec2.md#linux-commands) dari setiap file konfigurasi dan sebelum menjalankan perintah `Buildfile`.
+ `predeploy` – File di sini berjalan setelah mesin platform Elastic Beanstalk mengatur dan mengonfigurasi aplikasi dan server web, dan sebelum men-deploy mereka ke lokasi waktu aktif akhir mereka.

  File `predeploy` berjalan setelah menjalankan perintah yang ditemukan di bagian [container\$1commands](customize-containers-ec2.md#linux-container-commands) dari setiap file konfigurasi dan sebelum menjalankan perintah `Procfile`.
+ `postdeploy` – File di sini berjalan setelah mesin platform Elastic Beanstalk men-deploy aplikasi dan server proksi.

  Ini adalah langkah alur kerja deployment terakhir.

## Hook platform deployment konfigurasi
<a name="platforms-linux-extend.hooks.configdeploy"></a>

*Deployment konfigurasi* terjadi ketika Anda membuat perubahan konfigurasi yang hanya memperbarui instans lingkungan tanpa menciptakan mereka. Pembaharuan pilihan berikut ini menyebabkan pembaruan konfigurasi.
+ [Properti lingkungan dan pengaturan khusus platform](environments-cfg-softwaresettings.md)
+ [File statis](environment-cfg-staticfiles.md)
+ [AWS X-Ray daemon](environment-configuration-debugging.md)
+ [Penyimpanan log dan streaming](environments-cfg-logging.md)
+ Port aplikasi (untuk detailnya lihat[Konfigurasi proksi terbalik](platforms-linux-extend.proxy.md))

Untuk menyediakan hook yang berjalan selama deployment konfigurasi, menempatkan mereka di bawah direktori `.platform/confighooks` dalam paket sumber Anda. Tiga subdirektori yang sama seperti untuk aplikasi deployment hook berlaku.

## Selengkapnya tentang hook platform
<a name="platforms-linux-extend.hooks.more"></a>

File hook dapat berupa file biner, atau berkas skrip yang dimulai dengan baris `#!` yang berisi jalur penerjemah mereka, seperti `#!/bin/bash`. Semua file harus memiliki izin eksekusi. Gunakan `chmod +x` untuk mengatur izin eksekusi pada file hook Anda. Untuk semua versi platform berbasis Amazon Linux 2023 dan Amazon Linux 2 yang dirilis pada atau setelah 29 April 2022, Elastic Beanstalk secara otomatis memberikan izin eksekusi ke semua skrip kait platform. Dalam hal ini Anda tidak perlu memberikan izin eksekusi secara manual. Untuk daftar versi platform ini, lihat catatan rilis Linux [29 April 2022](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-04-29-linux.html#release-2022-04-29-linux.platforms) di *Panduan Catatan AWS Elastic Beanstalk Rilis*.

Elastic Beanstalk menjalankan file di masing-masing direktori ini dalam urutan leksikografis nama file. Semua file berjalan sebagai pengguna `root`. Direktori kerja saat ini (cwd) untuk hook platform adalah direktori root aplikasi. Untuk file `prebuild` dan `predeploy` itu adalah direktori pementasan aplikasi, dan untuk file `postdeploy` itu adalah direktori aplikasi saat ini. Jika salah satu file gagal (keluar dengan kode keluar non-nol), deployment dibatalkan dan gagal.

Skrip teks kait platform mungkin gagal jika berisi karakter pemisah baris Windows *Carriage Return /Line Feed* (CRLF). Jika file disimpan di host Windows, kemudian ditransfer ke server Linux, itu mungkin berisi jeda baris Windows CRLF. Untuk platform yang dirilis pada atau setelah [29 Desember 2022,](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-12-29-linux.html) Elastic Beanstalk secara otomatis mengonversi karakter Windows CRLF menjadi karakter pemutus baris *Linux* Line Feed (LF) di file teks kait platform. Jika aplikasi Anda berjalan pada platform Amazon Linux 2 yang dirilis sebelum tanggal ini, Anda harus mengonversi karakter Windows CRLF ke karakter LF Linux. Salah satu cara untuk mencapai ini adalah dengan membuat dan menyimpan file skrip pada host Linux. Alat yang mengonversi karakter ini juga tersedia di internet.

File hook memiliki akses ke semua properti lingkungan yang telah Anda tetapkan dalam opsi aplikasi, dan variabel lingkungan sistem `HOME`, `PATH`, dan `PORT`. 

Untuk mendapatkan nilai variabel lingkungan dan opsi konfigurasi lainnya ke skrip kait platform Anda, Anda dapat menggunakan utilitas `get-config` yang Elastic Beanstalk sediakan dalam instans lingkungan. Untuk rincian selengkapnya, lihat [Alat skrip platform untuk lingkungan Elastic Beanstalk Anda](custom-platforms-scripts.md).

# File konfigurasi
<a name="platforms-linux-extend.config-files"></a>

Anda dapat menambahkan direktori [file konfigurasi](ebextensions.md) ke direktori `.ebextensions` dari kode sumber aplikasi Anda untuk mengonfigurasi berbagai aspek lingkungan Elastic Beanstalk Anda. Antara lain, file konfigurasi memungkinkan Anda menyesuaikan perangkat lunak dan file lain pada instans lingkungan Anda dan menjalankan perintah inisialisasi pada instans. Untuk informasi selengkapnya, lihat [Menyesuaikan perangkat lunak pada server Linux](customize-containers-ec2.md).

Anda juga dapat mengatur [opsi konfigurasi](command-options.md) menggunakan file konfigurasi. Banyak opsi mengontrol perilaku platform, dan beberapa opsi ini adalah [spesifik platform](command-options-specific.md).

Untuk platform berbasis Amazon Linux 2 dan Amazon Linux 2023, sebaiknya gunakan *Buildfile, *Procfile**, dan *hook platform* untuk mengonfigurasi dan menjalankan kode khusus pada instans lingkungan Anda selama penyediaan instans. Mekanisme ini dijelaskan di bagian sebelumnya di halaman ini. Anda masih dapat menggunakan perintah dan perintah kontainer di file konfigurasi `.ebextensions`, tetapi tidak mudah untuk digunakan. Misalnya, menulis skrip perintah di dalam file YAML dapat menantang dari sudut pandang sintaks. Anda masih perlu menggunakan file `.ebextensions` konfigurasi untuk skrip apa pun yang membutuhkan referensi ke AWS CloudFormation sumber daya.

# Konfigurasi proksi terbalik
<a name="platforms-linux-extend.proxy"></a>

Semua versi platform Amazon Linux 2 dan Amazon Linux 2023 menggunakan nginx sebagai server proxy terbalik default mereka. Platform Tomcat, Node.js, PHP, dan Python juga mendukung Apache HTTPD sebagai alternatif. Untuk memilih Apache pada platform ini, mengatur pilihan `ProxyServer` di namespace `aws:elasticbeanstalk:environment:proxy` ke `apache`. Semua platform mengaktifkan konfigurasi server proksi dengan cara yang seragam, seperti yang dijelaskan di bagian ini.

**catatan**  
Pada Amazon Linux AMI versi platform (sebelumnya Amazon Linux 2) Anda mungkin harus mengonfigurasi server proksi secara berbeda. Anda dapat menemukan rincian warisan ini di bawah [topik platform masing-masing](concepts-all-platforms.md) dalam panduan ini.

Elastic Beanstalk mengonfigurasi server proksi pada instans lingkungan Anda untuk meneruskan lalu lintas web ke aplikasi web utama pada URL akar lingkungan; misalnya, `http://my-env.elasticbeanstalk.com`.

Secara default, Elastic Beanstalk mengonfigurasi proksi untuk meneruskan permintaan masuk pada port 80 untuk aplikasi web utama Anda pada port 5000. Anda dapat mengonfigurasi nomor port ini dengan menetapkan properti lingkungan `PORT` menggunakan namespace [aws:elasticbeanstalk:application:environment](command-options-general.md#command-options-general-elasticbeanstalkapplicationenvironment) dalam file konfigurasi, seperti yang ditunjukkan dalam contoh berikut.

```
option_settings:
  - namespace:  aws:elasticbeanstalk:application:environment
    option_name:  PORT
    value:  <main_port_number>
```

Untuk informasi selengkapnya tentang pengaturan variabel lingkungan untuk aplikasi Anda, lihat [Pengaturan opsi](ebextensions-optionsettings.md).

Aplikasi Anda harus mendengarkan pada port yang dikonfigurasi untuk itu di proksi. Jika Anda mengubah port default menggunakan properti lingkungan `PORT`, kode Anda dapat mengaksesnya dengan membaca nilai variabel lingkungan `PORT`. Sebagai contoh, panggilan `os.Getenv("PORT")` di Go, atau `System.getenv("PORT")` di Java. Jika Anda mengonfigurasi proksi Anda untuk mengirim lalu lintas ke beberapa proses aplikasi, Anda dapat mengonfigurasi beberapa properti lingkungan, dan menggunakan nilai-nilai mereka di kedua konfigurasi proksi dan kode aplikasi Anda. Pilihan lain adalah untuk lulus nilai port untuk proses sebagai argumen perintah dalam `Procfile`. Untuk mengetahui informasi selengkapnya, lihat [Buildfile dan Procfile](platforms-linux-extend.build-proc.md).

## Mengonfigurasi nginx
<a name="platforms-linux-extend.proxy.nginx"></a>

Elastic Beanstalk menggunakan nginx sebagai proksi terbalik default untuk memetakan aplikasi Anda ke penyeimbangan beban Elastic Load Balancing Anda. Elastic Beanstalk menyediakan konfigurasi nginx default yang dapat Anda perpanjang atau timpa sepenuhnya dengan konfigurasi Anda sendiri.

**catatan**  
Saat Anda menambahkan atau mengedit file konfigurasi `.conf` nginx, pastikan untuk menyandikannya sebagai UTF-8.

Untuk memperpanjang konfigurasi nginx default Elastic Beanstalk, tambahkan file konfigurasi `.conf` ke folder yang bernama `.platform/nginx/conf.d/` dalam paket sumber aplikasi Anda. Konfigurasi nginx Elastic Beanstalk mencakup file `.conf` dalam folder ini secara automatik.

```
~/workspace/my-app/
|-- .platform
|   `-- nginx
|       `-- conf.d
|           `-- myconf.conf
`-- other source files
```

File konfigurasi termasuk dalam `http` blok konfigurasi nginx. `.platform/nginx/conf.d/` Gunakan lokasi ini untuk konfigurasi yang berlaku secara global.

Untuk memperluas konfigurasi blok `server` nginx default, `.conf` tambahkan file konfigurasi ke folder `.platform/nginx/conf.d/elasticbeanstalk/` bernama dalam bundel sumber aplikasi Anda. Konfigurasi nginx Elastic Beanstalk menyertakan file dalam folder ini di dalam blok`.conf`. `server`

```
~/workspace/my-app/
|-- .platform
|   `-- nginx
|       `-- conf.d
|           `-- elasticbeanstalk
|               `-- server.conf
`-- other source files
```

Gunakan lokasi ini untuk menambahkan konfigurasi khusus server, seperti blok lokasi tambahan, halaman kesalahan kustom, atau arahan tingkat server. Contoh berikut menambahkan blok lokasi kustom.

**Example . platform/nginx/conf.d/elasticbeanstalk/server.conf**  

```
location /test {
    return 200 "Hello World!";
    add_header Content-Type text/plain;
}
```

Untuk mengesampingkan konfigurasi nginx default Elastic Beanstalk sepenuhnya, sertakan konfigurasi di paket sumber Anda di `.platform/nginx/nginx.conf`:

```
~/workspace/my-app/
|-- .platform
|   `-- nginx
|       `-- nginx.conf
`-- other source files
```

Jika Anda menimpa konfigurasi nginx Elastic Beanstalk, tambahkan baris berikut ke `nginx.conf` untuk menarik dalam konfigurasi Elastic Beanstalk untuk [Peningkatan pelaporan dan pemantauan kesehatan di Elastic Beanstalk](health-enhanced.md), pemetaan aplikasi otomatis, dan file statis.

```
 include conf.d/elasticbeanstalk/*.conf;
```

## Mengonfigurasi Apache HTTPD
<a name="platforms-linux-extend.proxy.httpd"></a>

Platform Tomcat, Node.js, PHP, dan Python memungkinkan Anda memilih server proksi Apache HTTPD sebagai alternatif untuk nginx. Ini bukan default. Contoh berikut mengonfigurasi Elastic Beanstalk untuk menggunakan Apache HTTPD.

**Example .ebextensions/httpd-proxy.config**  

```
option_settings:
  aws:elasticbeanstalk:environment:proxy:
    ProxyServer: apache
```
Anda dapat memperpanjang Elastic Beanstalk konfigurasi Apache default dengan file konfigurasi tambahan Anda. Atau, Anda dapat sepenuhnya mengganti konfigurasi Apache default Elastic Beanstalk.  
Untuk memperpanjang konfigurasi Apache default Elastic Beanstalk, tambahkan file konfigurasi `.conf` ke folder bernama `.platform/httpd/conf.d` di paket sumber aplikasi Anda. Konfigurasi Apache Elastic Beanstalk mencakup file `.conf` di folder ini secara otomatis.  

```
~/workspace/my-app/
|-- .ebextensions
|   -- httpd-proxy.config
|-- .platform
|   -- httpd
|      -- conf.d
|         -- port5000.conf
|         -- ssl.conf
-- index.jsp
```
Sebagai contoh, konfigurasi Apache 2.4 berikut menambahkan listener di port 5000.  

**Example . platform/httpd/conf.d/port5000.conf**  

```
listen 5000
<VirtualHost *:5000>
  <Proxy *>
    Require all granted
  </Proxy>
  ProxyPass / http://localhost:8080/ retry=0
  ProxyPassReverse / http://localhost:8080/
  ProxyPreserveHost on

  ErrorLog /var/log/httpd/elasticbeanstalk-error_log
</VirtualHost>
```
Untuk mengesampingkan konfigurasi Apache default Elastic Beanstalk sepenuhnya, sertakan konfigurasi dalam paket sumber Anda di `.platform/httpd/conf/httpd.conf`.  

```
~/workspace/my-app/
|-- .ebextensions
|   -- httpd-proxy.config
|-- .platform
|   `-- httpd
|       `-- conf
|           `-- httpd.conf
`-- index.jsp
```
Jika Anda mengganti konfigurasi Apache Elastic Beanstalk, tambahkan baris berikut ke `httpd.conf` Anda untuk menarik dalam konfigurasi Elastic Beanstalk untuk [Peningkatan pelaporan dan pemantauan kesehatan di Elastic Beanstalk](health-enhanced.md), pemetaan aplikasi otomatis, dan file statis.  

```
IncludeOptional conf.d/elasticbeanstalk/*.conf
```

# Contoh aplikasi dengan ekstensi
<a name="platforms-linux-extend.example"></a>

Contoh berikut menunjukkan bundel sumber aplikasi dengan beberapa fitur ekstensibilitas yang `Procfile` didukung platform Elastic Beanstalk Amazon Linux 2 dan Amazon Linux 2023`.ebextensions`: a, file konfigurasi, kait khusus, dan file konfigurasi proxy.

```
~/my-app/
|-- web.jar
|-- Procfile
|-- readme.md
|-- .ebextensions/
|   |-- options.config        # Option settings
|   `-- cloudwatch.config     # Other .ebextensions sections, for example files and container commands
`-- .platform/
    |-- nginx/                # Proxy configuration
    |   |-- nginx.conf
    |   `-- conf.d/
    |       |-- custom.conf
    |       `-- elasticbeanstalk/
    |           `-- server.conf
    |-- hooks/                # Application deployment hooks
    |   |-- prebuild/
    |   |   |-- 01_set_secrets.sh
    |   |   `-- 12_update_permissions.sh
    |   |-- predeploy/
    |   |   `-- 01_some_service_stop.sh
    |   `-- postdeploy/
    |       |-- 01_set_tmp_file_permissions.sh
    |       |-- 50_run_something_after_app_deployment.sh
    |       `-- 99_some_service_start.sh
    `-- confighooks/          # Configuration deployment hooks
        |-- prebuild/
        |   `-- 01_set_secrets.sh
        |-- predeploy/
        |   `-- 01_some_service_stop.sh
        `-- postdeploy/
            |-- 01_run_something_after_config_deployment.sh
            `-- 99_some_service_start.sh
```

**catatan**  
Beberapa ekstensi ini tidak didukung di Amazon Linux AMI platform versi (sebelumnya Amazon Linux 2).