Menggunakan platform Elastic Beanstalk Tomcat - AWS Elastic Beanstalk

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

Menggunakan platform Elastic Beanstalk Tomcat

Topik ini menjelaskan cara mengonfigurasi, membangun, dan menjalankan aplikasi Java Anda yang berjalan di platform Elastic Beanstalk Tomcat.

Platform AWS Elastic Beanstalk Tomcat adalah seperangkat versi platform untuk aplikasi web Java yang dapat berjalan dalam wadah web Tomcat. Tomcat berjalan di belakang server proksi nginx. Setiap cabang platform sesuai dengan versi utama Tomcat.

Opsi konfigurasi tersedia di konsol Elastic Beanstalk untuk memodifikasi konfigurasi dari lingkungan yang sedang berjalan. Agar Anda tidak kehilangan konfigurasi lingkungan ketika mengakhirinya, Anda dapat menggunakan konfigurasi tersimpan untuk menyimpan pengaturan dan kemudian menerapkannya ke lingkungan lain.

Untuk menyimpan pengaturan di kode sumber, Anda dapat menyertakan file konfigurasi. Pengaturan di file konfigurasi diterapkan setiap kali Anda membuat lingkungan atau men-deploy aplikasi Anda. Anda juga dapat menggunakan file konfigurasi untuk menginstal paket, menjalankan penulisan, dan melakukan operasi penyesuaian instans lainnya selama deployment.

Platform Tomcat Elastic Beanstalk mencakup proksi terbalik yang meneruskan permintaan ke aplikasi Anda. Anda dapat menggunakan opsi konfigurasi untuk mengonfigurasi server proksi untuk melayani aset statis dari folder di kode sumber Anda untuk mengurangi beban di aplikasi Anda. Untuk skenario lanjutan, Anda dapat menyertakan file .conf milik Anda sendiri di paket sumber Anda untuk memperluas konfigurasi proksi Elastic Beanstalk atau menimpa sepenuhnya.

catatan

Elastic Beanstalk mendukung nginx (default) dan Server HTTP Apache sebagai server proksi di platform Tomcat. Jika lingkungan Elastic Beanstalk Tomcat Anda menggunakan cabang platform Amazon Linux AMI (Amazon Linux 2 terdahulu), Anda juga memiliki opsi untuk menggunakan Apache HTTP Server Versi 2.2. Apache (terbaru) adalah default di cabang-cabang platform sebelumnya.

Pada tanggal 18 Juli 2022, Elastic Beanstalk menetapkan status semua cabang platform berdasarkan Amazon Linux AMI () untuk pensiun. AL1 Untuk informasi selengkapnya tentang migrasi ke cabang platform Amazon Linux 2023 saat ini dan didukung penuh, lihat. Memigrasi aplikasi Elastic Beanstalk Linux Anda ke Amazon Linux 2023 atau Amazon Linux 2

Anda harus mengemas aplikasi Java di file arsip aplikasi web (WAR) dengan struktur tertentu. Untuk informasi tentang struktur yang diperlukan dan bagaimana kaitannya dengan struktur direktori proyek Anda, lihat Menata folder proyek Anda.

Untuk menjalankan beberapa aplikasi di server web yang sama, Anda dapat memaket beberapa file WAR menjadi paket sumber tunggal. Setiap aplikasi di beberapa paket sumber WAR berjalan di jalur akar (ROOT.war berjalan di myapp.elasticbeanstalk.com/) atau di jalur yang berada langsung di bawahnya (app2.war berjalan di myapp.elasticbeanstalk.com/app2/), seperti yang ditentukan oleh nama WAR. Di satu paket sumber WAR, aplikasi selalu berjalan di jalur akar.

Pengaturan yang diterapkan di konsol Elastic Beanstalk mengganti pengaturan yang sama di file konfigurasi, jika ada. Hal tersebut memungkinkan Anda memiliki pengaturan default di file konfigurasi, dan mengganti keduanya dengan pengaturan khusus lingkungan di konsol tersebut. Untuk informasi selengkapnya tentang yang diutamakan, dan metode lain untuk mengubah pengaturan, lihat Opsi konfigurasi.

Untuk detail tentang berbagai cara memperluas platform berbasis Linux Elastic Beanstalk, lihat Memperluas platform Linux Elastic Beanstalk.

Mengonfigurasi lingkungan Tomcat Anda

Platform Elastic Beanstalk Tomcat menyediakan beberapa opsi khusus platform selain opsi standar yang dimiliki semua platform. Opsi ini memungkinkan Anda untuk mengonfigurasi mesin virtual Java (JVM) yang berjalan di server web lingkungan Anda, dan menentukan properti sistem yang menyediakan string konfigurasi informasi untuk aplikasi Anda.

Anda dapat menggunakan konsol Elastic Beanstalk untuk mengaktifkan rotasi log ke Amazon S3 dan mengonfigurasi variabel yang dapat dibaca aplikasi Anda dari lingkungan.

Untuk mengonfigurasi lingkungan Tomcat Anda di konsol Elastic Beanstalk
  1. Buka konsol Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic Beanstalk. Wilayah AWS

  2. Di panel navigasi, pilih Lingkungan, dan kemudian pilih nama lingkungan Anda dari daftar.

    catatan

    Jika Anda memiliki banyak lingkungan, gunakan bilah pencarian untuk memfilter daftar lingkungan.

  3. Di panel navigasi, pilih Konfigurasi.

  4. Dalam kategori konfigurasi Pembaruan, pemantauan, dan pencatatan, pilih Edit.

Opsi kontainer

Anda dapat menentukan opsi khusus platform berikut ini:

  • Server proksi – Server proksi untuk digunakan di instans lingkungan Anda. Secara default, nginx digunakan.

Opsi kontainer JVM

Ukuran tumpukan di mesin virtual Java (JVM) menentukan berapa banyak objek yang dapat dibuat aplikasi Anda di memori sebelum pengumpulan sampah terjadi. Anda dapat memodifikasi Ukuran Tumpukan JVM Awal (-Xms option) dan Ukuran Tumpukan JVM Maksimum (opsi). -Xmx Ukuran tumpukan awal yang lebih besar mengizinkan lebih banyak objek yang akan dibuat sebelum pengumpulan sampah terjadi, tetapi ini juga berarti bahwa pengumpul sampah akan memakan waktu lebih lama untuk memadatkan tumpukan. Ukuran tumpukan maksimum menentukan jumlah maksimum memori yang JVM dapat alokasikan ketika memperluas tumpukan selama aktivitas berat.

catatan

Memori yang tersedia tergantung pada jenis EC2 instans Amazon. Untuk informasi selengkapnya tentang jenis EC2 instans yang tersedia untuk lingkungan Elastic Beanstalk, lihat Jenis Instans di Panduan Pengguna Amazon Elastic Compute Cloud untuk Instans Linux.

Generasi permanen adalah bagian dari tumpukan JVM yang menyimpan definisi kelas dan metadata terkait. Untuk memodifikasi ukuran generasi permanen, ketik ukuran baru di opsi Maximum JVM PermGen Size (-XX:MaxPermSize). Pengaturan ini hanya berlaku untuk Java 7 dan sebelumnya. Opsi ini tidak digunakan lagi di JDK 8 dan digantikan oleh opsi Size (). MaxMetaspace -XX:MaxMetaspaceSize

penting

JDK 17 menghapus dukungan opsi Java-XX:MaxPermSize. Penggunaan opsi ini dengan lingkungan yang berjalan pada cabang platform Elastic Beanstalk dengan Corretto 17 akan menghasilkan kesalahan. Elastic Beanstalk merilis cabang platform pertamanya yang menjalankan Tomcat dengan Corretto 17 pada 13 Juli 2023.

Untuk informasi lebih lanjut, lihat sumber daya berikut.

Untuk informasi selengkapnya tentang platform Elastic Beanstalk dan komponennya, lihat Platform yang Didukung dalam panduan Platform.AWS Elastic Beanstalk

Opsi log

Bagian Opsi Log memiliki dua pengaturan:

  • Profil instans – Menentukan profil instans yang memiliki izin untuk mengakses bucket Amazon S3 yang terkait dengan aplikasi Anda.

  • Aktifkan rotasi file log ke Amazon S3 — Menentukan apakah file log untuk EC2 instans Amazon aplikasi Anda disalin ke bucket Amazon S3 yang terkait dengan aplikasi Anda.

File statis

Untuk meningkatkan kinerja, Anda dapat menggunakan bagian File statis untuk mengkonfigurasi server proxy untuk melayani file statis (misalnya, HTML atau gambar) dari satu set direktori di dalam aplikasi web Anda. Untuk setiap direktori, Anda mengatur jalur virtual ke pemetaan direktori. Saat server proksi menerima permintaan untuk file di jalur yang ditentukan, server langsung menyajikan file daripada merutekan permintaan ke aplikasi Anda.

Untuk detail tentang mengonfigurasi file statis menggunakan file konfigurasi atau konsol Elastic Beanstalk, lihat. Menyajikan file statis

Properti lingkungan

Di bagian Properti Lingkungan, Anda dapat menentukan pengaturan konfigurasi lingkungan pada EC2 instans Amazon yang menjalankan aplikasi Anda. Properti lingkungan diberikan sebagai pasangan nilai kunci ke aplikasi.

Platform Tomcat menentukan properti placeholder bernama JDBC_CONNECTION_STRING untuk lingkungan Tomcat untuk melewati string koneksi ke basis data eksternal.

catatan

Jika Anda melampirkan instans DB RDS ke lingkungan Anda, bangun koneksi string JDBC secara dinamis dari properti lingkungan Amazon Relational Database Service (Amazon RDS) yang disediakan oleh Elastic Beanstalk. Gunakan JDBC_CONNECTION_STRING hanya untuk instans basis data yang tidak disediakan menggunakan Elastic Beanstalk.

Untuk informasi selengkapnya tentang menggunakan Amazon RDS dengan aplikasi Java Anda, lihat Menambahkan instans Amazon RDS DB ke lingkungan Java Elastic Beanstalk Anda.

Di dalam lingkungan Tomcat yang berjalan di Elastic Beanstalk, variabel lingkungan dapat diakses menggunakan System.getProperty(). Sebagai contoh, Anda dapat membaca properti bernama API_ENDPOINT ke variabel dengan kode berikut.

String endpoint = System.getProperty("API_ENDPOINT");

Lihat Properti lingkungan dan pengaturan perangkat lunak lainnya untuk informasi selengkapnya.

Namespace konfigurasi Tomcat

Anda dapat menggunakan file konfigurasi untuk mengatur opsi konfigurasi dan melakukan tugas-tugas konfigurasi instans lain selama deployment. Opsi konfigurasi dapat berupa platform khusus atau berlaku untuk semua platform di layanan Elastic Beanstalk secara keseluruhan. Opsi konfigurasi diatur ke dalam ruang nama.

Platform Tomcat mendukung opsi di namespace berikut, selain opsi yang didukung untuk semua lingkungan Elastic Beanstalk:

  • aws:elasticbeanstalk:container:tomcat:jvmoptions – Modifikasi pengaturan JVM. Opsi di namespace ini sesuai dengan opsi di konsol manajemen, sebagai berikut:

    • XmsOpsi baris perintah JVM

    • JVM OptionsOpsi baris perintah JVM

  • aws:elasticbeanstalk:environment:proxy – Pilih server proksi lingkungan.

File konfigurasi contoh berikut menunjukkan penggunaan opsi konfigurasi tertentu Tomcat.

contoh .ebextensions/tomcat-settings.config
option_settings: aws:elasticbeanstalk:container:tomcat:jvmoptions: Xms: 512m JVM Options: '-Xmn128m' aws:elasticbeanstalk:application:environment: API_ENDPOINT: mywebapi.zkpexsjtmd.us-west-2.elasticbeanstalk.com aws:elasticbeanstalk:environment:proxy: ProxyServer: apache

Elastic Beanstalk memberikan banyak opsi konfigurasi untuk menyesuaikan lingkungan Anda. Selain file konfigurasi, Anda juga dapat mengatur opsi konfigurasi menggunakan konsol tersebut, konfigurasi tersimpan, EB CLI, atau AWS CLI. Lihat Opsi konfigurasi untuk informasi selengkapnya.

Jika lingkungan Tomcat Elastic Beanstalk Anda menggunakan versi platform Amazon Linux AMI (Amazon Linux 2 terdahulu), baca informasi tambahan di bagian ini.

Catatan
  • Informasi dalam topik ini hanya berlaku untuk cabang platform berbasis Amazon Linux AMI (AL1). AL2023/ cabang AL2 platform tidak kompatibel dengan versi platform Amazon Linux AMI (AL1) sebelumnya dan memerlukan pengaturan konfigurasi yang berbeda.

  • Pada tanggal 18 Juli 2022, Elastic Beanstalk menetapkan status semua cabang platform berdasarkan Amazon Linux AMI () untuk pensiun. AL1 Untuk informasi selengkapnya tentang migrasi ke cabang platform Amazon Linux 2023 saat ini dan didukung penuh, lihat. Memigrasi aplikasi Elastic Beanstalk Linux Anda ke Amazon Linux 2023 atau Amazon Linux 2

Platform Tomcat Amazon Linux AMI mendukung opsi tambahan di namespace berikut:

  • aws:elasticbeanstalk:container:tomcat:jvmoptions – Selain opsi yang disebutkan sebelumnya di halaman ini untuk namespace ini, versi platform Amazon Linux AMI sebelumnya juga mendukung:

    • XX:MaxPermSizeUkuran generasi permanen JVM maksimum

  • aws:elasticbeanstalk:environment:proxy – Selain memilih server proksi, juga mengonfigurasi kompresi respons.

File konfigurasi contoh berikut menunjukkan penggunaan opsi konfigurasi namespace proksi.

contoh .ebextensions/tomcat-settings.config
option_settings: aws:elasticbeanstalk:environment:proxy: GzipCompression: 'true' ProxyServer: nginx

Untuk men-deploy file konfigurasi .ebextensions, sertakan mereka di sumber aplikasi Anda. Untuk satu aplikasi, tambahkan .ebextensions ke file WAR terkompresi dengan menjalankan perintah berikut:

zip -ur your_application.war .ebextensions

Untuk aplikasi yang membutuhkan beberapa file WAR, lihat Paketan beberapa file WAR untuk lingkungan Tomcat untuk petunjuk lebih lanjut.