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

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, seperti Java 8 dengan Tomcat 8.

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 (defaultHTTP) dan Apache Server sebagai server proxy pada platform Tomcat. Jika lingkungan Elastic Beanstalk Tomcat Anda menggunakan cabang platform Amazon AMI Linux (sebelum Amazon Linux 2), Anda juga memiliki opsi untuk menggunakan Apache Server Versi 2.2. HTTP Apache (terbaru) adalah default di cabang-cabang platform sebelumnya.

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

Anda harus mengemas aplikasi Java dalam 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 menggabungkan beberapa WAR file ke dalam satu bundel sumber. Setiap aplikasi dalam bundel WAR sumber ganda berjalan di jalur root (ROOT.warberjalan dimyapp.elasticbeanstalk.com/) atau di jalur langsung di bawahnya (app2.warberjalan dimyapp.elasticbeanstalk.com/app2/), sebagaimana ditentukan oleh nama. WAR Dalam bundel WAR sumber tunggal, aplikasi selalu berjalan di jalur root.

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

JVMpilihan kontainer

Ukuran heap di mesin virtual Java (JVM) menentukan berapa banyak objek yang dapat dibuat aplikasi Anda dalam memori sebelum pengumpulan sampah terjadi. Anda dapat memodifikasi Initial JVM Heap Size (-Xms option) dan Maximum JVM Heap Size (-Xmxoption). 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 dialokasikan saat 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 JVM heap yang menyimpan definisi kelas dan metadata terkait. Untuk memodifikasi ukuran generasi permanen, ketikkan ukuran baru di opsi JVM PermGen Ukuran Maksimum (-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

JDK17 menghapus dukungan dari -XX:MaxPermSize opsi Java. 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 menyajikan 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 RDS DB ke lingkungan Anda, buat string JDBC koneksi secara dinamis dari properti lingkungan Amazon Relational Database Service (AmazonRDS) yang disediakan oleh Elastic Beanstalk. Gunakan JDBC _ CONNECTION _ STRING hanya untuk instance database yang tidak disediakan menggunakan Elastic Beanstalk.

Untuk informasi selengkapnya tentang menggunakan Amazon RDS dengan aplikasi Java Anda, lihatMenambahkan instans DB Amazon RDS ke lingkungan aplikasi Java 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 ditentukan oleh layanan Elastic Beanstalk atau platform yang Anda gunakan dan disusun ke dalam namespace.

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

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

    • XmsOpsi baris JVM perintah

    • JVM OptionsOpsi baris JVM perintah

  • 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, konfigurasi tersimpan, EBCLI, atau file. AWS CLI Untuk informasi selengkapnya, lihat Opsi konfigurasi.

Jika lingkungan Elastic Beanstalk Tomcat Anda menggunakan versi platform Amazon AMI Linux (sebelum Amazon Linux 2), 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 berbasis Amazon Linux () untuk pensiun. AMI AL1 Untuk informasi selengkapnya tentang migrasi ke cabang platform Amazon Linux 2023 saat ini dan didukung penuh, lihat. Memigrasi aplikasi Elastic Beanstalk Linux 2 Amazon Linux 2 Amazon Linux 2

AMIPlatform Tomcat Amazon Linux mendukung opsi tambahan di ruang nama berikut:

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

    • XX:MaxPermSize- Ukuran generasi JVM permanen 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 file Anda .ebextensions ke WAR file terkompresi dengan menjalankan perintah berikut:

zip -ur your_application.war .ebextensions

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