

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

# Menyebarkan aplikasi Java dengan Elastic Beanstalk
<a name="create_deploy_Java"></a>

Bab ini memberikan instruksi untuk mengkonfigurasi dan menyebarkan aplikasi Java Anda ke. AWS Elastic Beanstalk Elastic Beanstalk memudahkan penerapan, pengelolaan, dan skala aplikasi web Java Anda menggunakan Amazon Web Services.

Anda dapat menerapkan aplikasi Anda hanya dalam beberapa menit menggunakan Elastic Beanstalk Command Line Interface (EB CLI) atau dengan menggunakan konsol Elastic Beanstalk. Setelah Anda menerapkan aplikasi Elastic Beanstalk Anda, Anda dapat terus menggunakan EB CLI untuk mengelola aplikasi dan lingkungan Anda, atau Anda dapat menggunakan konsol Elastic Beanstalk,, atau. AWS CLI APIs

Ikuti step-by-step petunjuk [QuickStart untuk Java](java-quickstart.md) untuk membuat dan menyebarkan aplikasi web *Hello World* Java dengan EB CLI. Jika Anda tertarik dengan step-by-step instruksi untuk membuat aplikasi *Hello World* Java JSP sederhana untuk digunakan dengan EB CLI ke platform berbasis Tomcat kami, coba. [QuickStart untuk Java di Tomcat](tomcat-quickstart.md)

**Cabang platform Java**  
AWS Elastic Beanstalk mendukung dua platform untuk aplikasi Java.
+ **Tomcat** — Platform berbasis *Apache Tomcat*, wadah web open source untuk aplikasi yang menggunakan servlet Java dan JavaServer Pages (JSPs) untuk melayani permintaan HTTP. Tomcat memfasilitasi pengembangan aplikasi web dengan menyediakan multithreading, konfigurasi keamanan deklaratif, dan penyesuaian yang luas. Elastic Beanstalk memiliki cabang platform untuk masing-masing versi utama Tomcat saat ini. Untuk informasi selengkapnya, lihat [Platform Tomcat](java-tomcat-platform.md).
+ **Java SE** — Platform untuk aplikasi yang tidak menggunakan wadah web, atau menggunakan yang lain selain Tomcat, seperti Jetty atau. GlassFish Anda dapat menyertakan pustaka Java Archives (JARs) yang digunakan oleh aplikasi Anda dalam bundel sumber yang Anda gunakan ke Elastic Beanstalk. Untuk informasi selengkapnya, lihat [Platform Java SE](java-se-platform.md).

Cabang terbaru dari platform Tomcat dan Java SE didasarkan pada Amazon Linux 2 dan yang lebih baru, dan menggunakan *Corretto AWS —distribusi* Java SE. *Nama-nama cabang platform ini termasuk kata *Corretto*, bukan Java.*

Untuk daftar versi platform saat ini, lihat [Tomcat](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.java) dan [Java SE](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.javase) di panduan *Platform AWS Elastic Beanstalk *.

**AWS alat**  
AWS menyediakan beberapa alat untuk bekerja dengan Java dan Elastic Beanstalk. Terlepas dari cabang platform yang Anda pilih, Anda dapat menggunakan [AWS SDK for Java untuk](java-development-environment.md#java-development-environment-sdk) menggunakan layanan AWS lain dari dalam aplikasi Java Anda. AWS SDK for Java adalah sekumpulan pustaka yang memungkinkan Anda untuk AWS APIs menggunakan dari kode aplikasi Anda tanpa menulis panggilan HTTP mentah dari awal.

Jika Anda lebih suka mengelola aplikasi Anda dari baris perintah, instal [Elastic Beanstalk Command Line Interface (EB CLI) dan gunakan untuk membuat, memantau, dan mengelola lingkungan Elastic](eb-cli3.md) Beanstalk Anda. Jika Anda menjalankan beberapa lingkungan untuk aplikasi Anda, EB CLI terintegrasi dengan Git untuk membiarkan Anda mengaitkan masing-masing lingkungan Anda dengan cabang Git yang berbeda.

**Topics**
+ [

# QuickStart: Menyebarkan aplikasi Java ke Elastic Beanstalk
](java-quickstart.md)
+ [

# QuickStart: Menyebarkan aplikasi web Java JSP untuk Tomcat ke Elastic Beanstalk
](tomcat-quickstart.md)
+ [

# Menyiapkan lingkungan pengembangan Java Anda
](java-development-environment.md)
+ [

# Lebih banyak contoh aplikasi dan tutorial Elastic Beanstalk untuk Java
](java-getstarted.md)
+ [

# Menggunakan platform Elastic Beanstalk Tomcat
](java-tomcat-platform.md)
+ [

# Menggunakan platform Java SE Elastic Beanstalk
](java-se-platform.md)
+ [

# Menambahkan instans Amazon RDS DB ke lingkungan Java Elastic Beanstalk
](java-rds.md)
+ [

# Alat dan sumber daya Java
](create_deploy_Java.resources.md)

# QuickStart: Menyebarkan aplikasi Java ke Elastic Beanstalk
<a name="java-quickstart"></a>

 QuickStart Tutorial ini memandu Anda melalui proses pembuatan aplikasi Java dan menyebarkannya ke AWS Elastic Beanstalk lingkungan.

**Bukan untuk penggunaan produksi**  
Contoh dimaksudkan untuk demonstrasi saja. Jangan gunakan contoh aplikasi dalam produksi.

**Topics**
+ [

## AWS Akun Anda
](#java-quickstart-aws-account)
+ [

## Prasyarat
](#java-quickstart-prereq)
+ [

## Langkah 1: Buat aplikasi Java
](#java-quickstart-create-app)
+ [

## Langkah 2: Jalankan aplikasi Anda secara lokal
](#java-quickstart-run-local)
+ [

## Langkah 3: Menyebarkan aplikasi Java Anda dengan EB CLI
](#java-quickstart-deploy)
+ [

## Langkah 4: Jalankan aplikasi Anda di Elastic Beanstalk
](#java-quickstart-run-eb-ap)
+ [

## Langkah 5: Bersihkan
](#java-tutorial-cleanup)
+ [

## AWS sumber daya untuk aplikasi Anda
](#java-quickstart-eb-resources)
+ [

## Langkah selanjutnya
](#java-quickstart-next-steps)
+ [

## Terapkan dengan konsol Elastic Beanstalk
](#java-quickstart-console)

## AWS Akun Anda
<a name="java-quickstart-aws-account"></a>

Jika Anda belum menjadi AWS pelanggan, Anda perlu membuat AWS akun. Mendaftar memungkinkan Anda mengakses Elastic Beanstalk AWS dan layanan lain yang Anda butuhkan.

Jika Anda sudah memiliki AWS akun, Anda dapat melanjutkan ke[Prasyarat](#java-quickstart-prereq).

### Buat AWS akun
<a name="java-quickstart-aws-account-procedure"></a>

#### Mendaftar untuk Akun AWS
<a name="sign-up-for-aws"></a>

Jika Anda tidak memiliki Akun AWS, selesaikan langkah-langkah berikut untuk membuatnya.

**Untuk mendaftar untuk Akun AWS**

1. Buka [https://portal.aws.amazon.com/billing/pendaftaran.](https://portal.aws.amazon.com/billing/signup)

1. Ikuti petunjuk online.

   Bagian dari prosedur pendaftaran melibatkan menerima panggilan telepon atau pesan teks dan memasukkan kode verifikasi pada keypad telepon.

   Saat Anda mendaftar untuk sebuah Akun AWS, sebuah *Pengguna root akun AWS*dibuat. Pengguna root memiliki akses ke semua Layanan AWS dan sumber daya di akun. Sebagai praktik keamanan terbaik, tetapkan akses administratif ke pengguna, dan gunakan hanya pengguna root untuk melakukan [tugas yang memerlukan akses pengguna root](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks).

AWS mengirimi Anda email konfirmasi setelah proses pendaftaran selesai. Kapan saja, Anda dapat melihat aktivitas akun Anda saat ini dan mengelola akun Anda dengan masuk [https://aws.amazon.com.rproxy.goskope.comke/](https://aws.amazon.com/) dan memilih **Akun Saya**.

#### Buat pengguna dengan akses administratif
<a name="create-an-admin"></a>

Setelah Anda mendaftar Akun AWS, amankan Pengguna root akun AWS, aktifkan AWS IAM Identity Center, dan buat pengguna administratif sehingga Anda tidak menggunakan pengguna root untuk tugas sehari-hari.

**Amankan Anda Pengguna root akun AWS**

1.  Masuk ke [Konsol Manajemen AWS](https://console.aws.amazon.com/)sebagai pemilik akun dengan memilih **pengguna Root** dan memasukkan alamat Akun AWS email Anda. Di laman berikutnya, masukkan kata sandi.

   Untuk bantuan masuk dengan menggunakan pengguna root, lihat [Masuk sebagai pengguna root](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial) di *AWS Sign-In Panduan Pengguna*.

1. Mengaktifkan autentikasi multi-faktor (MFA) untuk pengguna root Anda.

   Untuk petunjuk, lihat [Mengaktifkan perangkat MFA virtual untuk pengguna Akun AWS root (konsol) Anda](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html) di Panduan Pengguna *IAM*.

**Buat pengguna dengan akses administratif**

1. Aktifkan Pusat Identitas IAM.

   Untuk mendapatkan petunjuk, silakan lihat [Mengaktifkan AWS IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html) di *Panduan Pengguna AWS IAM Identity Center *.

1. Di Pusat Identitas IAM, berikan akses administratif ke pengguna.

   Untuk tutorial tentang menggunakan Direktori Pusat Identitas IAM sebagai sumber identitas Anda, lihat [Mengkonfigurasi akses pengguna dengan default Direktori Pusat Identitas IAM](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html) di *Panduan AWS IAM Identity Center Pengguna*.

**Masuk sebagai pengguna dengan akses administratif**
+ Untuk masuk dengan pengguna Pusat Identitas IAM, gunakan URL masuk yang dikirim ke alamat email saat Anda membuat pengguna Pusat Identitas IAM.

  Untuk bantuan masuk menggunakan pengguna Pusat Identitas IAM, lihat [Masuk ke portal AWS akses](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html) di *Panduan AWS Sign-In Pengguna*.

**Tetapkan akses ke pengguna tambahan**

1. Di Pusat Identitas IAM, buat set izin yang mengikuti praktik terbaik menerapkan izin hak istimewa paling sedikit.

   Untuk petunjuknya, lihat [Membuat set izin](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html) di *Panduan AWS IAM Identity Center Pengguna*.

1. Tetapkan pengguna ke grup, lalu tetapkan akses masuk tunggal ke grup.

   Untuk petunjuk, lihat [Menambahkan grup](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html) di *Panduan AWS IAM Identity Center Pengguna*.

## Prasyarat
<a name="java-quickstart-prereq"></a>

Untuk mengikuti prosedur di panduan ini, Anda memerlukan terminal atau shell baris perintah untuk menjalankan perintah. Perintah ditampilkan dalam daftar yang diawali dengan simbol prompt (\$1) dan nama direktori saat ini, bila perlu.

```
~/eb-project$ this is a command
this is output
```

Di Linux dan macOS, Anda dapat menggunakan shell dan manajer paket pilihan Anda. Pada Windows Anda dapat [menginstal Windows Subsystem untuk Linux untuk](https://docs.microsoft.com/en-us/windows/wsl/install-win10) mendapatkan versi Windows terintegrasi dari Ubuntu dan Bash.

### EB CLI
<a name="java-quickstart-prereq.ebcli"></a>

Tutorial ini menggunakan Elastic Beanstalk Command Line Interface (EB CLI). Untuk detail tentang pemasangan dan konfigurasi EB CLI, lihat [Instal EB CLI dengan skrip pengaturan (disarankan)](eb-cli3.md#eb-cli3-install) dan [Mengonfigurasi EB CLI](eb-cli3-configuration.md).

### Java dan Maven
<a name="java-quickstart-prereq.runtime"></a>

Jika Anda tidak menginstal Amazon Corretto di mesin lokal Anda, Anda dapat menginstalnya dengan mengikuti petunjuk [penginstalan di Panduan](https://docs.aws.amazon.com/corretto/latest/corretto-21-ug/amazon-linux-install.html) Pengguna *Amazon Corretto*.

Verifikasi instalasi Java Anda dengan menjalankan perintah berikut.

```
~$ java -version 
```

Tutorial ini menggunakan Maven. Ikuti petunjuk [pengunduhan](https://maven.apache.org/download.cgi) dan [penginstalan](https://maven.apache.org/install.html) di situs web Apache Maven Project. Untuk informasi lebih lanjut tentang Maven, lihat [Pusat Pengguna Maven](https://maven.apache.org/users/index.html) di situs web Apache Maven Project.

Verifikasi instalasi Maven Anda dengan menjalankan perintah berikut.

```
~$ mvn -v
```

## Langkah 1: Buat aplikasi Java
<a name="java-quickstart-create-app"></a>

Buat direktori proyek.

```
~$ mkdir eb-java
~$ cd eb-java
```

Selanjutnya, buat aplikasi yang akan Anda deploy menggunakan Elastic Beanstalk. Kami akan membuat layanan RESTful web “Hello World”.

Contoh ini menggunakan framework [Spring Boot](https://spring.io/projects/spring-boot). Aplikasi ini membuka listener pada port 5000. Elastic Beanstalk meneruskan permintaan ke aplikasi Anda pada port 5000 secara default.

Buat file-file berikut:

File ini membuat aplikasi Spring Boot sederhana.

**Example `~/eb-java/src/main/java/com/example/Application.java`**  

```
package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
```

File ini membuat pemetaan yang mengembalikan String yang kita definisikan di sini.

**Example `~/eb-java/src/main/java/com/example/Controller.java`**  

```
package com.example;
    
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
    
@RestController
public class Controller {
    
    @GetMapping("/")
    public String index() {
       return "Hello Elastic Beanstalk!";
    }
}
```

File ini mendefinisikan konfigurasi proyek Maven.

**Example `~/eb-java/pom.xml`**  

```
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.2.3</version>
  </parent>

  <groupId>com.example</groupId>
  <artifactId>BeanstalkJavaExample</artifactId>
  <version>1.0-SNAPSHOT</version>

  <properties>
    <java.version>21</java.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-rest</artifactId>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

</project>
```

File properti ini mengganti port default menjadi 5000. Ini adalah port default yang mengirimkan lalu lintas Elastic Beanstalk untuk aplikasi Java.

**Example `~/eb-java/application.properties`**  

```
server.port=5000
```

## Langkah 2: Jalankan aplikasi Anda secara lokal
<a name="java-quickstart-run-local"></a>

Package aplikasi Anda dengan perintah berikut:

```
~/eb-java$ mvn clean package
```

Jalankan aplikasi Anda secara lokal dengan perintah berikut:

```
~/eb-java$ java -jar target/BeanstalkJavaExample-1.0-SNAPSHOT.jar
```

Saat aplikasi sedang berjalan, `http://127.0.0.1:5000/` navigasikan ke browser Anda. Anda akan melihat teks “Halo Elastic Beanstalk\$1”.

## Langkah 3: Menyebarkan aplikasi Java Anda dengan EB CLI
<a name="java-quickstart-deploy"></a>

Sebelum menerapkan aplikasi Java Anda ke Elastic Beanstalk, mari bersihkan aplikasi build dari direktori Anda dan [buat](java-se-buildfile.md) Buildfile dan Procfile untuk mengontrol bagaimana aplikasi dibangun [dan](java-se-procfile.md) dijalankan di lingkungan Elastic Beanstalk Anda.

**Untuk mempersiapkan dan mengkonfigurasi penerapan aplikasi**

1. Bersihkan aplikasi yang dibangun.

   ```
   ~/eb-java$ mvn clean
   ```

1. Buat `Buildfile` Anda.  
**Example `~/eb-java/Buildfile`**  

   ```
   build: mvn clean package
   ```

   Ini `Buildfile` menentukan perintah yang digunakan untuk membangun aplikasi Anda. Jika Anda tidak menyertakan aplikasi `Buildfile` untuk Java, Elastic Beanstalk tidak mencoba membangun aplikasi Anda.

1. Buat `Procfile` Anda.  
**Example `~/eb-java/Procfile`**  

   ```
   web: java -jar target/BeanstalkJavaExample-1.0-SNAPSHOT.jar
   ```

   Ini `Procfile` menentukan perintah yang digunakan untuk menjalankan aplikasi Anda. Jika Anda tidak menyertakan aplikasi `Procfile` untuk Java, Elastic Beanstalk mengasumsikan ada satu file JAR di root bundel sumber Anda dan mencoba menjalankannya dengan perintah. `java -jar`

 Sekarang setelah Anda menyiapkan file konfigurasi untuk membangun dan memulai aplikasi Anda, Anda siap untuk menerapkannya. 

**Untuk membuat lingkungan dan menyebarkan aplikasi Java Anda**

1. Inisialisasi repositori EB CLI Anda dengan perintah **eb init**. 

   ```
   ~/eb-java eb init -p corretto java-tutorial --region us-east-2
           
   Application java-tutorial has been created.
   ```

   Perintah ini membuat aplikasi bernama `java-tutorial` dan mengkonfigurasi repositori lokal Anda untuk membuat lingkungan dengan versi platform Java terbaru.

1. (Opsional) Jalankan **eb init** lagi untuk mengonfigurasi pasangan kunci default, sehingga Anda dapat menggunakan SSH untuk terhubung ke instans EC2 yang menjalankan aplikasi Anda.

   ```
   ~/eb-java$ eb init
   Do you want to set up SSH for your instances?
   (y/n): y
   Select a keypair.
   1) my-keypair
   2) [ Create new KeyPair ]
   ```

   Pilih pasangan kunci jika Anda sudah memilikinya, atau ikuti prompt untuk membuatnya. Jika Anda tidak melihat prompt atau perlu mengubah pengaturan Anda nanti, jalankan **eb init -i**.

1. Buat lingkungan baru dan deploy aplikasi Anda dengan **eb create**. Elastic Beanstalk secara otomatis membuat file zip untuk aplikasi Anda dan memulainya pada port 5000.

   ```
   ~/eb-java$ eb create java-env
   ```

   Dibutuhkan sekitar lima menit untuk Elastic Beanstalk untuk menciptakan lingkungan Anda.

## Langkah 4: Jalankan aplikasi Anda di Elastic Beanstalk
<a name="java-quickstart-run-eb-ap"></a>

Ketika proses untuk membuat lingkungan Anda selesai, buka situs web Anda dengan**eb open**.

```
~/eb-java eb open
```

Selamat\$1 Anda telah menerapkan aplikasi Java dengan Elastic Beanstalk\$1 Ini akan membuka jendela peramban menggunakan nama domain yang dibuat untuk aplikasi Anda.

## Langkah 5: Bersihkan
<a name="java-tutorial-cleanup"></a>

Anda dapat menghentikan lingkungan Anda ketika Anda selesai bekerja dengan aplikasi Anda. Elastic Beanstalk AWS mengakhiri semua sumber daya yang terkait dengan lingkungan Anda.

Untuk mengakhiri lingkungan Elastic Beanstalk Anda dengan EB CLI jalankan perintah berikut.

```
~/eb-java$ eb terminate
```

## AWS sumber daya untuk aplikasi Anda
<a name="java-quickstart-eb-resources"></a>

Anda baru saja membuat aplikasi instance tunggal. Ini berfungsi sebagai aplikasi sampel langsung dengan satu instans EC2, sehingga tidak memerlukan penyeimbangan beban atau penskalaan otomatis. Untuk aplikasi contoh tunggal Elastic Beanstalk menciptakan sumber daya berikut: AWS 
+ **Instans EC2** – Mesin virtual Amazon EC2 yang dikonfigurasi untuk menjalankan aplikasi web di platform yang Anda pilih.

  Setiap platform menjalankan satu set perangkat lunak, file konfigurasi, dan penulisan yang berbeda untuk mendukung versi bahasa, kerangka kerja, kontainer web tertentu, atau kombinasi dari semua ini. Sebagian besar platform menggunakan Apache atau nginx sebagai proksi terbalik yang memproses lalu lintas web di depan aplikasi web Anda, meneruskan permintaan ke aplikasi web, menyajikan aset statis, dan menghasilkan log akses dan kesalahan.
+ **Grup keamanan instans** – Grup keamanan Amazon EC2 yang dikonfigurasi untuk mengizinkan lalu lintas masuk di port 80. Sumber daya ini memungkinkan lalu lintas HTTP dari penyeimbang beban mencapai instans EC2 yang menjalankan aplikasi web Anda. Secara default, lalu lintas tidak diizinkan di port lain.
+ **Bucket Amazon S3** – Lokasi penyimpanan untuk kode sumber, log, dan artifact lainnya yang dibuat saat Anda menggunakan Elastic Beanstalk.
+ ** CloudWatch Alarm Amazon** — Dua CloudWatch alarm yang memantau beban pada instans di lingkungan Anda dan dipicu jika beban terlalu tinggi atau terlalu rendah. Saat alarm terpicu, grup Auto Scaling Anda akan menaikkan atau menurunkan skala sebagai respons.
+ **CloudFormation stack** - Elastic CloudFormation Beanstalk digunakan untuk meluncurkan sumber daya di lingkungan Anda dan menyebarkan perubahan konfigurasi. Sumber daya ditentukan di sebuah templat yang dapat Anda lihat di [Konsol CloudFormation](https://console.aws.amazon.com/cloudformation).
+  **Nama domain — Nama** domain yang merutekan ke aplikasi web Anda dalam formulir **subdomain*. *region*.elasticbeanstalk.com*. 

Elastic Beanstalk mengelola semua sumber daya tersebut. Ketika Anda mengakhiri lingkungan, Elastic Beanstalk mengakhiri semua sumber daya yang dimuatnya.

## Langkah selanjutnya
<a name="java-quickstart-next-steps"></a>

Setelah lingkungan Anda menjalankan aplikasi, Anda dapat men-deploy versi baru aplikasi atau aplikasi yang berbeda kapan saja. Men-deploy versi aplikasi baru itu sangat cepat karena tidak memerlukan persediaan atau memulai ulang instans EC2. Anda juga dapat menjelajahi lingkungan baru Anda menggunakan konsol Elastic Beanstalk. Untuk langkah-langkah mendetail, lihat [Menjelajahi lingkungan Anda](GettingStarted.md#GettingStarted.Explore) di bagian *Memulai* panduan ini.

**Coba lebih banyak tutorial**  
Jika Anda ingin mencoba tutorial lain dengan aplikasi contoh yang berbeda, lihat[Contoh aplikasi dan tutorial](java-getstarted.md).

Setelah Anda menerapkan satu atau dua contoh aplikasi dan siap untuk mulai mengembangkan dan menjalankan aplikasi Java secara lokal, lihat. [Menyiapkan lingkungan pengembangan Java Anda](java-development-environment.md) 

## Terapkan dengan konsol Elastic Beanstalk
<a name="java-quickstart-console"></a>

Anda juga dapat menggunakan konsol Elastic Beanstalk untuk meluncurkan aplikasi sampel. Untuk langkah-langkah rinci, lihat [Membuat aplikasi contoh](GettingStarted.md#GettingStarted.CreateApp) di Bab *Memulai* panduan ini.

# QuickStart: Menyebarkan aplikasi web Java JSP untuk Tomcat ke Elastic Beanstalk
<a name="tomcat-quickstart"></a>

Tutorial ini memandu Anda melalui proses pembuatan aplikasi web Java sederhana menggunakan JavaServer Pages (JSPs). Jika Anda ingin menggabungkan beberapa aplikasi web dalam bentuk file WAR dalam satu lingkungan Elastic Beanstalk, lihat. [Paketan beberapa file WAR untuk lingkungan Tomcat](java-tomcat-multiple-war-files.md)

**Bukan untuk penggunaan produksi**  
Contoh dimaksudkan untuk demonstrasi saja. Jangan gunakan contoh aplikasi dalam produksi.

**Topics**
+ [

## AWS Akun Anda
](#tomcat-quickstart-aws-account)
+ [

## Prasyarat
](#tomcat-quickstart-prereq)
+ [

## Langkah 1: Buat aplikasi Java JSP
](#tomcat-quickstart-create-app)
+ [

## Langkah 2: Menyebarkan aplikasi Java JSP Anda dengan EB CLI
](#tomcat-quickstart-deploy)
+ [

## Langkah 3: Jalankan aplikasi Anda di Elastic Beanstalk
](#tomcat-quickstart-run-eb-ap)
+ [

## Langkah 4: Membersihkan
](#go-tutorial-cleanup)
+ [

## AWS sumber daya untuk aplikasi Anda
](#tomcat-quickstart-eb-resources)
+ [

## Langkah selanjutnya
](#tomcat-quickstart-next-steps)
+ [

## Terapkan dengan konsol Elastic Beanstalk
](#tomcat-quickstart-console)

## AWS Akun Anda
<a name="tomcat-quickstart-aws-account"></a>

Jika Anda belum menjadi AWS pelanggan, Anda perlu membuat AWS akun. Mendaftar memungkinkan Anda mengakses Elastic Beanstalk AWS dan layanan lain yang Anda butuhkan.

Jika Anda sudah memiliki AWS akun, Anda dapat melanjutkan ke[Prasyarat](#tomcat-quickstart-prereq).

### Buat AWS akun
<a name="tomcat-quickstart-aws-account-procedure"></a>

#### Mendaftar untuk Akun AWS
<a name="sign-up-for-aws"></a>

Jika Anda tidak memiliki Akun AWS, selesaikan langkah-langkah berikut untuk membuatnya.

**Untuk mendaftar untuk Akun AWS**

1. Buka [https://portal.aws.amazon.com/billing/pendaftaran.](https://portal.aws.amazon.com/billing/signup)

1. Ikuti petunjuk online.

   Bagian dari prosedur pendaftaran melibatkan menerima panggilan telepon atau pesan teks dan memasukkan kode verifikasi pada keypad telepon.

   Saat Anda mendaftar untuk sebuah Akun AWS, sebuah *Pengguna root akun AWS*dibuat. Pengguna root memiliki akses ke semua Layanan AWS dan sumber daya di akun. Sebagai praktik keamanan terbaik, tetapkan akses administratif ke pengguna, dan gunakan hanya pengguna root untuk melakukan [tugas yang memerlukan akses pengguna root](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks).

AWS mengirimi Anda email konfirmasi setelah proses pendaftaran selesai. Kapan saja, Anda dapat melihat aktivitas akun Anda saat ini dan mengelola akun Anda dengan masuk [https://aws.amazon.com.rproxy.goskope.comke/](https://aws.amazon.com/) dan memilih **Akun Saya**.

#### Buat pengguna dengan akses administratif
<a name="create-an-admin"></a>

Setelah Anda mendaftar Akun AWS, amankan Pengguna root akun AWS, aktifkan AWS IAM Identity Center, dan buat pengguna administratif sehingga Anda tidak menggunakan pengguna root untuk tugas sehari-hari.

**Amankan Anda Pengguna root akun AWS**

1.  Masuk ke [Konsol Manajemen AWS](https://console.aws.amazon.com/)sebagai pemilik akun dengan memilih **pengguna Root** dan memasukkan alamat Akun AWS email Anda. Di laman berikutnya, masukkan kata sandi.

   Untuk bantuan masuk dengan menggunakan pengguna root, lihat [Masuk sebagai pengguna root](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial) di *AWS Sign-In Panduan Pengguna*.

1. Mengaktifkan autentikasi multi-faktor (MFA) untuk pengguna root Anda.

   Untuk petunjuk, lihat [Mengaktifkan perangkat MFA virtual untuk pengguna Akun AWS root (konsol) Anda](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html) di Panduan Pengguna *IAM*.

**Buat pengguna dengan akses administratif**

1. Aktifkan Pusat Identitas IAM.

   Untuk mendapatkan petunjuk, silakan lihat [Mengaktifkan AWS IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html) di *Panduan Pengguna AWS IAM Identity Center *.

1. Di Pusat Identitas IAM, berikan akses administratif ke pengguna.

   Untuk tutorial tentang menggunakan Direktori Pusat Identitas IAM sebagai sumber identitas Anda, lihat [Mengkonfigurasi akses pengguna dengan default Direktori Pusat Identitas IAM](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html) di *Panduan AWS IAM Identity Center Pengguna*.

**Masuk sebagai pengguna dengan akses administratif**
+ Untuk masuk dengan pengguna Pusat Identitas IAM, gunakan URL masuk yang dikirim ke alamat email saat Anda membuat pengguna Pusat Identitas IAM.

  Untuk bantuan masuk menggunakan pengguna Pusat Identitas IAM, lihat [Masuk ke portal AWS akses](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html) di *Panduan AWS Sign-In Pengguna*.

**Tetapkan akses ke pengguna tambahan**

1. Di Pusat Identitas IAM, buat set izin yang mengikuti praktik terbaik menerapkan izin hak istimewa paling sedikit.

   Untuk petunjuknya, lihat [Membuat set izin](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html) di *Panduan AWS IAM Identity Center Pengguna*.

1. Tetapkan pengguna ke grup, lalu tetapkan akses masuk tunggal ke grup.

   Untuk petunjuk, lihat [Menambahkan grup](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html) di *Panduan AWS IAM Identity Center Pengguna*.

## Prasyarat
<a name="tomcat-quickstart-prereq"></a>

Untuk mengikuti prosedur di panduan ini, Anda memerlukan terminal atau shell baris perintah untuk menjalankan perintah. Perintah ditampilkan dalam daftar yang diawali dengan simbol prompt (\$1) dan nama direktori saat ini, bila perlu.

```
~/eb-project$ this is a command
this is output
```

Di Linux dan macOS, Anda dapat menggunakan shell dan manajer paket pilihan Anda. Pada Windows Anda dapat [menginstal Windows Subsystem untuk Linux untuk](https://docs.microsoft.com/en-us/windows/wsl/install-win10) mendapatkan versi Windows terintegrasi dari Ubuntu dan Bash.

### EB CLI
<a name="tomcat-quickstart-prereq.ebcli"></a>

Tutorial ini menggunakan Elastic Beanstalk Command Line Interface (EB CLI). Untuk detail tentang pemasangan dan konfigurasi EB CLI, lihat [Instal EB CLI dengan skrip pengaturan (disarankan)](eb-cli3.md#eb-cli3-install) dan [Mengonfigurasi EB CLI](eb-cli3-configuration.md).

## Langkah 1: Buat aplikasi Java JSP
<a name="tomcat-quickstart-create-app"></a>

Buat direktori proyek.

```
~$ mkdir eb-tomcat
~$ cd eb-tomcat
```

Selanjutnya, buat aplikasi yang akan Anda deploy menggunakan Elastic Beanstalk. Kami akan membuat aplikasi web “Hello World”.

Buat file JSP sederhana bernama`index.jsp`.

**Example `~/eb-tomcat/index.jsp`**  

```
<html>
  <body>
    <%out.println("Hello Elastic Beanstalk!");%>
  </body>
</html>
```

## Langkah 2: Menyebarkan aplikasi Java JSP Anda dengan EB CLI
<a name="tomcat-quickstart-deploy"></a>

Jalankan perintah berikut untuk membuat lingkungan Elastic Beanstalk untuk aplikasi ini.

 

**Untuk membuat lingkungan dan menyebarkan aplikasi Java JSP Anda**

1. Inisialisasi repositori EB CLI Anda dengan perintah **eb init**.

   ```
   ~/eb-tomcat$ eb init -p tomcat tomcat-tutorial --region us-east-2
   ```

   Perintah ini membuat aplikasi bernama `tomcat-tutorial` dan mengkonfigurasi repositori lokal Anda untuk membuat lingkungan dengan versi platform Tomcat terbaru.

1. (Opsional) Jalankan **eb init** lagi untuk mengonfigurasi pasangan kunci default, sehingga Anda dapat menggunakan SSH untuk terhubung ke instans EC2 yang menjalankan aplikasi Anda.

   ```
   ~/eb-go$ eb init
   Do you want to set up SSH for your instances?
   (y/n): y
   Select a keypair.
   1) my-keypair
   2) [ Create new KeyPair ]
   ```

   Pilih pasangan kunci jika Anda sudah memilikinya, atau ikuti prompt untuk membuatnya. Jika Anda tidak melihat prompt atau perlu mengubah pengaturan Anda nanti, jalankan **eb init -i**.

1. Buat lingkungan baru dan deploy aplikasi Anda dengan **eb create**. Elastic Beanstalk secara otomatis membuat file zip untuk aplikasi Anda dan memulainya pada port 5000.

   ```
   ~/eb-tomcat$ eb create tomcat-env
   ```

   Dibutuhkan sekitar lima menit untuk Elastic Beanstalk untuk menciptakan lingkungan Anda.

## Langkah 3: Jalankan aplikasi Anda di Elastic Beanstalk
<a name="tomcat-quickstart-run-eb-ap"></a>

Ketika proses untuk membuat lingkungan Anda selesai, buka situs web Anda dengan**eb open**.

```
~/eb-tomcat$ eb open
```

Selamat\$1 Anda telah menerapkan aplikasi Java JSP dengan Elastic Beanstalk\$1 Ini akan membuka jendela peramban menggunakan nama domain yang dibuat untuk aplikasi Anda.

## Langkah 4: Membersihkan
<a name="go-tutorial-cleanup"></a>

Anda dapat menghentikan lingkungan Anda ketika Anda selesai bekerja dengan aplikasi Anda. Elastic Beanstalk AWS mengakhiri semua sumber daya yang terkait dengan lingkungan Anda.

Untuk mengakhiri lingkungan Elastic Beanstalk Anda dengan EB CLI jalankan perintah berikut.

```
~/eb-tomcat$ eb terminate
```

## AWS sumber daya untuk aplikasi Anda
<a name="tomcat-quickstart-eb-resources"></a>

Anda baru saja membuat aplikasi instance tunggal. Ini berfungsi sebagai aplikasi sampel langsung dengan satu instans EC2, sehingga tidak memerlukan penyeimbangan beban atau penskalaan otomatis. Untuk aplikasi contoh tunggal Elastic Beanstalk menciptakan sumber daya berikut: AWS 
+ **Instans EC2** – Mesin virtual Amazon EC2 yang dikonfigurasi untuk menjalankan aplikasi web di platform yang Anda pilih.

  Setiap platform menjalankan satu set perangkat lunak, file konfigurasi, dan penulisan yang berbeda untuk mendukung versi bahasa, kerangka kerja, kontainer web tertentu, atau kombinasi dari semua ini. Sebagian besar platform menggunakan Apache atau nginx sebagai proksi terbalik yang memproses lalu lintas web di depan aplikasi web Anda, meneruskan permintaan ke aplikasi web, menyajikan aset statis, dan menghasilkan log akses dan kesalahan.
+ **Grup keamanan instans** – Grup keamanan Amazon EC2 yang dikonfigurasi untuk mengizinkan lalu lintas masuk di port 80. Sumber daya ini memungkinkan lalu lintas HTTP dari penyeimbang beban mencapai instans EC2 yang menjalankan aplikasi web Anda. Secara default, lalu lintas tidak diizinkan di port lain.
+ **Bucket Amazon S3** – Lokasi penyimpanan untuk kode sumber, log, dan artifact lainnya yang dibuat saat Anda menggunakan Elastic Beanstalk.
+ ** CloudWatch Alarm Amazon** — Dua CloudWatch alarm yang memantau beban pada instans di lingkungan Anda dan dipicu jika beban terlalu tinggi atau terlalu rendah. Saat alarm terpicu, grup Auto Scaling Anda akan menaikkan atau menurunkan skala sebagai respons.
+ **CloudFormation stack** - Elastic CloudFormation Beanstalk digunakan untuk meluncurkan sumber daya di lingkungan Anda dan menyebarkan perubahan konfigurasi. Sumber daya ditentukan di sebuah templat yang dapat Anda lihat di [Konsol CloudFormation](https://console.aws.amazon.com/cloudformation).
+  **Nama domain — Nama** domain yang merutekan ke aplikasi web Anda dalam formulir **subdomain*. *region*.elasticbeanstalk.com*. 

Elastic Beanstalk mengelola semua sumber daya tersebut. Ketika Anda mengakhiri lingkungan, Elastic Beanstalk mengakhiri semua sumber daya yang dimuatnya.

## Langkah selanjutnya
<a name="tomcat-quickstart-next-steps"></a>

Setelah lingkungan Anda menjalankan aplikasi, Anda dapat men-deploy versi baru aplikasi atau aplikasi yang berbeda kapan saja. Men-deploy versi aplikasi baru itu sangat cepat karena tidak memerlukan persediaan atau memulai ulang instans EC2. Anda juga dapat menjelajahi lingkungan baru Anda menggunakan konsol Elastic Beanstalk. Untuk langkah-langkah mendetail, lihat [Menjelajahi lingkungan Anda](GettingStarted.md#GettingStarted.Explore) di bagian *Memulai* panduan ini.

**Coba lebih banyak tutorial**  
Jika Anda ingin mencoba tutorial lain dengan aplikasi contoh yang berbeda, lihat[Contoh aplikasi dan tutorial](java-getstarted.md).

Setelah Anda menerapkan satu atau dua contoh aplikasi dan siap untuk mulai mengembangkan dan menjalankan aplikasi Java dalam wadah web Tomcat lokal, lihat. [Menyiapkan lingkungan pengembangan Java Anda](java-development-environment.md) 

## Terapkan dengan konsol Elastic Beanstalk
<a name="tomcat-quickstart-console"></a>

Anda juga dapat menggunakan konsol Elastic Beanstalk untuk meluncurkan aplikasi sampel. Untuk langkah-langkah rinci, lihat [Membuat aplikasi contoh](GettingStarted.md#GettingStarted.CreateApp) di Bab *Memulai* panduan ini.

# Menyiapkan lingkungan pengembangan Java Anda
<a name="java-development-environment"></a>

Topik ini memberikan petunjuk untuk menyiapkan lingkungan pengembangan Java untuk menguji aplikasi Anda secara lokal sebelum menerapkannya. AWS Elastic Beanstalk Ini juga merujuk situs web yang menyediakan instruksi instalasi untuk alat yang berguna.

**Topics**
+ [

## Menginstal kit pengembangan Java
](#java-development-environment-jdk)
+ [

## Menginstal kontainer web
](#java-development-environment-tomcat)
+ [

## Mengunduh pustaka
](#java-development-environment-libraries)
+ [

## Menginstal AWS SDK for Java
](#java-development-environment-sdk)
+ [

## Menginstal IDE atau editor teks
](#java-development-environment-ide)

## Menginstal kit pengembangan Java
<a name="java-development-environment-jdk"></a>

Instal Java Development Kit (JDK). Jika Anda tidak memiliki preferensi, dapatkan versi terbarunya. Unduh JDK di [oracle.com](http://www.oracle.com/technetwork/java/javase/downloads/index.html) 

JDK mencakup kompilator Java, dapat Anda gunakan untuk membangun file sumber Anda ke dalam file kelas yang dapat dijalankan di server web Elastic Beanstalk.

## Menginstal kontainer web
<a name="java-development-environment-tomcat"></a>

Jika Anda belum memiliki wadah web atau kerangka kerja lain, instal versi Tomcat yang didukung Elastic Beanstalk untuk sistem operasi Amazon Linux Anda. [https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.java](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.java) Unduh versi Tomcat yang berlaku untuk lingkungan Anda dari situs web [Apache Tomcat](http://tomcat.apache.org). 

## Mengunduh pustaka
<a name="java-development-environment-libraries"></a>

Platform Elastic Beanstalk mencakup beberapa pustaka secara default. Unduh pustaka yang akan digunakan aplikasi Anda dan simpan di folder proyek Anda untuk men-deploy di paket sumber aplikasi Anda.

Jika Anda telah menginstal Tomcat secara lokal, Anda dapat menyalin pustaka API servlet API dan JavaServer Pages (JSP) dari folder instalasi. Jika Anda men-deploy ke versi platform Tomcat, Anda tidak perlu menyertakan file-file ini ke paket sumber Anda, tetapi Anda perlu memilikinya di `classpath` untuk mengompilasi setiap kelas yang menggunakannya.

JUnit, Google Guava, dan Apache Commons menyediakan beberapa perpustakaan yang berguna. Kunjungi halaman beranda mereka untuk pelajari selengkapnya:
+  [Unduh JUnit](https://github.com/junit-team/junit/wiki/Download-and-Install) 
+  [Unduh Google Guava](https://code.google.com/p/guava-libraries/) 
+  [Unduh Apache Commons](http://commons.apache.org/downloads/) 

## Menginstal AWS SDK for Java
<a name="java-development-environment-sdk"></a>

Jika Anda perlu mengelola AWS sumber daya dari dalam aplikasi Anda, instal AWS SDK for Java. Misalnya, dengan AWS SDK untuk Java, Anda dapat menggunakan Amazon DynamoDB (DynamoDB) untuk berbagi status sesi aplikasi Apache Tomcat di beberapa server web. Untuk informasi selengkapnya, lihat [Mengelola Status Sesi Tomcat dengan Amazon DynamoDB](https://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/java-dg-tomcat-session-manager.html) di dokumentasi AWS SDK for Java.

Kunjungi [beranda AWS SDK for Java](https://aws.amazon.com/sdk-for-java/) untuk informasi selengkapnya dan petunjuk instalasi.

## Menginstal IDE atau editor teks
<a name="java-development-environment-ide"></a>

Lingkungan pengembangan terintegrasi (IDEs) menyediakan berbagai fitur yang memfasilitasi pengembangan aplikasi. Jika Anda belum menggunakan IDE untuk pengembangan Java, coba Eclipse dan IntelliJ dan lihat mana yang paling sesuai untuk Anda.
+  [Instal Eclipse IDE untuk Pengembang Java EE](https://www.eclipse.org/downloads/) 
+  [Instal IntelliJ](https://www.jetbrains.com/idea/) 

IDE mungkin saja menambahkan file ke folder proyek yang mungkin tidak ingin Anda masukkan ke kontrol sumber. Untuk mencegah memasukkan file-file ini ke kontrol sumber, gunakan `.gitignore` atau padanan alat kontrol sumber Anda.

Jika Anda baru ingin memulai coding dan tidak memerlukan semua fitur IDE, pertimbangkan untuk [menginstal Sublime Text](http://www.sublimetext.com/).

**catatan**  
Pada tanggal 31 Mei 2023, [AWS Toolkit for Eclipse](https://docs.aws.amazon.com//toolkit-for-eclipse/v1/user-guide/welcome.html)mencapai akhir hayat dan tidak lagi didukung oleh AWS. Untuk detail tambahan mengenai akhir siklus hidup AWS Toolkit for Eclipse, lihat file [README.md](https://github.com/aws/aws-toolkit-eclipse) di repositori. AWS Toolkit for Eclipse GitHub 

# Lebih banyak contoh aplikasi dan tutorial Elastic Beanstalk untuk Java
<a name="java-getstarted"></a>

Bagian ini menyediakan aplikasi dan tutorial tambahan. [QuickStart untuk Java di Tomcat](tomcat-quickstart.md)Topik [QuickStart untuk Java](java-quickstart.md) dan topik yang terletak sebelumnya dalam topik ini memandu Anda melalui peluncuran aplikasi Java sampel dengan EB CLI.

Untuk memulai aplikasi Java aktif AWS Elastic Beanstalk, yang Anda butuhkan hanyalah [bundel sumber](applications-sourcebundle.md) aplikasi untuk diunggah sebagai versi aplikasi pertama Anda dan untuk menyebarkan ke lingkungan. Ketika Anda membuat lingkungan, Elastic Beanstalk mengalokasikan semua sumber daya AWS yang diperlukan untuk menjalankan aplikasi web yang dapat diskalakan.

## Meluncurkan lingkungan dengan sampel aplikasi Java
<a name="java-getstarted-samples"></a>

Elastic Beanstalk menyediakan contoh aplikasi satu halaman untuk setiap platform serta contoh yang lebih kompleks yang menunjukkan penggunaan sumber daya AWS tambahan seperti Amazon RDS dan fitur khusus bahasa atau platform dan. APIs

Sampel satu halaman adalah kode yang sama yang Anda dapatkan ketika Anda membuat lingkungan tanpa menyediakan kode sumber Anda sendiri. Contoh yang lebih kompleks di-host GitHub dan mungkin perlu dikompilasi atau dibangun sebelum diterapkan ke lingkungan Elastic Beanstalk.

 


**Sampel**  

|  Nama  |  Versi yang didukung  |  Tipe lingkungan  |  Sumber  |  Deskripsi  | 
| --- | --- | --- | --- | --- | 
|  Tomcat (satu halaman)  |  Semua cabang platform *Tomcat dengan Corretto*  |  Server Web Pekerja  |   [tomcat.zip](samples/tomcat.zip)   |  Aplikasi web Tomcat dengan satu halaman (`index.jsp`) dikonfigurasi untuk ditampilkan di akar situs web. Untuk [lingkungan pekerja](using-features-managing-env-tiers.md), sampel ini mencakup file `cron.yaml` yang mengonfigurasi tugas terjadwal yang memanggil `scheduled.jsp` sekali per menit. Saat `scheduled.jsp` dipanggil, berkas log ditulis di `/tmp/sample-app.log`. Terakhir, file konfigurasi disertakan di `.ebextensions` yang menyalin log dari `/tmp/` ke lokasi yang dibaca oleh Elastic Beanstalk saat Anda meminta log lingkungan. Jika Anda [mengaktifkan integrasi X-Ray](environment-configuration-debugging.md) di lingkungan yang menjalankan sampel ini, aplikasi akan menampilkan konten tambahan terkait X-Ray dan menyediakan opsi untuk menghasilkan informasi debug yang dapat Anda lihat di konsol X-Ray.  | 
|  Corretto (satu halaman)  |  Corretto 11 Corretto 8  |  Server Web  |  [corretto.zip](samples/corretto.zip)  |  Aplikasi Corretto dengan file konfigurasi `Buildfile` dan `Procfile`. Jika Anda [mengaktifkan integrasi X-Ray](environment-configuration-debugging.md) di lingkungan yang menjalankan sampel ini, aplikasi akan menampilkan konten tambahan terkait X-Ray dan menyediakan opsi untuk menghasilkan informasi debug yang dapat Anda lihat di konsol X-Ray.  | 
|  Scorekeep  | Java 8 | Server Web | [Kloning repo di .com GitHub](https://github.com/awslabs/eb-java-scorekeep) |  *Scorekeep* adalah API RESTful web yang menggunakan framework Spring untuk menyediakan antarmuka untuk membuat dan mengelola pengguna, sesi, dan game. API adalah paket dengan aplikasi web Angular 1.5 yang menggunakan API melalui HTTP. Aplikasi ini menggunakan fitur platform Java SE untuk mengunduh dependensi dan membangun pada instans, meminimalkan ukuran paket sumber. Aplikasi ini juga mencakup file konfigurasi nginx yang mengganti konfigurasi default untuk melayani aplikasi web frontend secara statis di port 80 melalui proksi, dan merutekan permintaan ke jalur di bawah `/api` ke API yang berjalan di `localhost:5000`. Scorekeep juga mencakup cabang `xray` yang menunjukkan cara menginstrumentasi aplikasi Java untuk digunakan dengan AWS X-Ray. Ini menunjukkan instrumentasi permintaan HTTP masuk dengan filter servlet, instrumentasi klien AWS SDK otomatis dan manual, konfigurasi perekam, dan instrumentasi permintaan HTTP keluar dan klien SQL. Lihat readme untuk petunjuk atau gunakan [tutorial memulai AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/xray-gettingstarted.html) untuk mencoba aplikasi dengan X-Ray.  | 
|  Does it Have Snakes?  | Tomcat 8 dengan Java 8 | Server Web | [Kloning repo di .com GitHub](https://github.com/awslabs/eb-tomcat-snakes) |  *Apakah ia memiliki ular?* adalah aplikasi web Tomcat yang menunjukkan penggunaan file konfigurasi Elastic Beanstalk, Amazon RDS, JDBC, PostgreSQL, JSPs Servlets,, Dukungan Tag Sederhana, File Tag, Log4J, Bootstrap, dan Jackson. Kode sumber untuk proyek ini termasuk membangun penulisan minimal yang mengompilasi servlet dan model ke dalam file kelas dan paket file yang diperlukan ke Arsip Web yang dapat Anda deploy ke lingkungan Elastic Beanstalk. Lihat file readme di repositori proyek untuk petunjuk lengkap.  | 
| Locust Load Generator | Java 8 | Server Web | [Kloning repo di .com GitHub](https://github.com/awslabs/eb-locustio-sample) |  Aplikasi web yang dapat Anda gunakan untuk menguji beban aplikasi web lain yang berjalan di lingkungan Elastic Beanstalk yang berbeda. Menunjukkan penggunaan file `Buildfile` dan `Procfile`, DynamoDB, dan [Locust](http://locust.io/), alat pengujian beban sumber terbuka.  | 

Unduh aplikasi sampel dan deploy ke Elastic Beanstalk dengan mengikuti langkah-langkah berikut:

**Untuk meluncurkan lingkungan dengan aplikasi (konsol)**

1. **Buka konsol [Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk.** Wilayah AWS

1. Pada panel navigasi, pilih **Aplikasi**. Pilih aplikasi yang ada dalam daftar. Anda juga dapat memilih untuk membuatnya, mengikuti instruksi di[Mengelola aplikasi](applications.md).

1. Pada halaman ikhtisar aplikasi, pilih **Buat lingkungan**.

   Ini meluncurkan wizard **Create environment**. Wizard menyediakan serangkaian langkah bagi Anda untuk membuat lingkungan baru.

1. Untuk **tingkat Lingkungan**, pilih **lingkungan server Web** atau [tingkat lingkungan](concepts.md#concepts-tier) **Worker**. Anda tidak dapat mengubah tingkat lingkungan setelah pembuatan.
**catatan**  
[.NET di platform Windows Server](create_deploy_NET.md) tidak mendukung tingkat lingkungan pekerja.

   Bidang **informasi Aplikasi** default, berdasarkan aplikasi yang Anda pilih sebelumnya.

   Dalam **informasi Lingkungan** mengelompokkan **nama Environment** default, berdasarkan nama aplikasi. Jika Anda lebih suka nama lingkungan yang berbeda, Anda dapat memasukkan nilai lain di bidang. Anda dapat secara opsional memasukkan nama **Domain**; jika tidak, Elastic Beanstalk menghasilkan nilai secara otomatis. Anda juga dapat secara opsional memasukkan **deskripsi Lingkungan**.

1. Untuk **Platform**, pilih platform dan cabang platform yang sesuai dengan bahasa yang digunakan aplikasi Anda.
**catatan**  
Elastic Beanstalk mendukung beberapa [versi](concepts.platforms.md) untuk sebagian besar platform yang tercantum. Secara default, konsol tersebut memilih versi yang direkomendasikan untuk platform dan cabang platform yang Anda pilih. Jika aplikasi Anda memerlukan versi yang berbeda, Anda dapat memilihnya di sini. Untuk informasi tentang versi platform yang didukung, lihat [Platform yang didukung Elastic Beanstalk](concepts.platforms.md).

1. Untuk **kode Aplikasi**, Anda memiliki beberapa pilihan untuk melanjutkan.
   + Untuk meluncurkan aplikasi sampel default tanpa memasok kode sumber, pilih **Contoh aplikasi**. Tindakan ini memilih aplikasi satu halaman yang disediakan Elastic Beanstalk untuk platform yang Anda pilih sebelumnya.
   + Jika Anda mengunduh contoh aplikasi dari panduan ini, atau Anda memiliki kode sumber Anda sendiri untuk suatu aplikasi, lakukan langkah-langkah berikut.

     1. Pilih **Unggah kode Anda**.

     1. Selanjutnya pilih **File lokal**, lalu di bawah **Unggah aplikasi**, pilih **Pilih file**.

     1. Sistem operasi mesin klien Anda akan memberi Anda antarmuka untuk memilih file lokal yang Anda unduh. Pilih file bundel sumber dan lanjutkan.

1. Pilihan Anda untuk **Preset** tergantung pada tujuan Anda untuk lingkungan.
   + Jika Anda membuat lingkungan sampel untuk mempelajari Elastic Beanstalk atau lingkungan pengembangan**, pilih Instans tunggal** (memenuhi syarat tingkat gratis).
   + Jika Anda membuat lingkungan produksi atau lingkungan untuk mempelajari lebih lanjut tentang load balancing, pilih salah satu opsi **Ketersediaan tinggi**.

1. Pilih **Berikutnya**.

**Untuk mengkonfigurasi akses layanan**  
Selanjutnya, Anda membutuhkan dua peran. *Peran layanan* memungkinkan Elastic Beanstalk untuk memantau instans EC2 Anda dan meningkatkan platform lingkungan Anda. Peran *profil instans EC2* memungkinkan tugas-tugas seperti menulis log dan berinteraksi dengan layanan lain.

**Untuk membuat atau memilih peran Layanan**

1. Jika sebelumnya Anda telah membuat **peran Layanan** dan ingin memilih peran yang sudah ada, pilih nilai dari drop-down **peran Layanan** dan lewati langkah-langkah lainnya untuk membuat peran Layanan.

1. Jika Anda tidak melihat nilai apa pun yang tercantum untuk **peran Layanan**, atau Anda ingin membuat yang baru, lanjutkan dengan langkah berikutnya.

1. Untuk **peran Layanan**, pilih **Buat peran**.

1. Untuk **jenis entitas Tepercaya**, pilih **AWS layanan**.

1. Untuk **kasus Penggunaan**, pilih **Elastic Beanstalk — Environment**.

1. Pilih **Berikutnya**.

1. Verifikasi bahwa **kebijakan Izin** menyertakan yang berikut ini, lalu pilih **Berikutnya**:
   + `AWSElasticBeanstalkEnhancedHealth`
   + `AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy`

1. Pilih **Buat peran**.

1. Kembali ke tab **Konfigurasi akses layanan**, segarkan daftar, lalu pilih peran layanan yang baru dibuat.

**Untuk membuat atau memilih profil instans EC2**

1. Jika sebelumnya Anda telah membuat **profil instans EC2** dan ingin memilih yang sudah ada, pilih nilai dari drop-down **profil instans EC2** dan lewati sisa langkah-langkah ini untuk membuat profil instans EC2.

1. Jika Anda tidak melihat nilai apa pun yang terdaftar untuk **profil instans EC2**, atau Anda ingin membuat yang baru, lanjutkan dengan langkah berikutnya.

1. Pilih **Buat peran**.

1. Untuk **jenis entitas Tepercaya**, pilih **AWS layanan**.

1. Untuk **kasus Penggunaan**, pilih **Elastic Beanstalk — Compute**.

1. Pilih **Berikutnya**.

1. Verifikasi bahwa **kebijakan Izin** menyertakan yang berikut ini, lalu pilih **Berikutnya**:
   + `AWSElasticBeanstalkWebTier`
   + `AWSElasticBeanstalkWorkerTier`
   + `AWSElasticBeanstalkMulticontainerDocker`

1. Pilih **Buat peran**.

1. Kembali ke tab **Konfigurasi akses layanan**, segarkan daftar, lalu pilih profil instans EC2 yang baru dibuat.

**Untuk menyelesaikan konfigurasi dan membuat aplikasi Anda**

1. (Opsional) Jika sebelumnya Anda membuat key pair EC2, Anda dapat memilihnya dari dropdown bidang **key pair EC2**. Anda akan menggunakannya untuk masuk dengan aman ke instans Amazon EC2 yang disediakan Elastic Beanstalk untuk aplikasi Anda. Jika Anda melewati langkah ini, Anda selalu dapat membuat dan menetapkan key pair EC2 setelah lingkungan dibuat. Untuk informasi selengkapnya, lihat [EC2 key pair](using-features.managing.security.md#using-features.managing.security.keypair).

1. Pilih **Lewati untuk Meninjau** di halaman **Konfigurasi akses layanan**.

1. Halaman **Review** menampilkan ringkasan dari semua pilihan Anda.

   Untuk lebih menyesuaikan lingkungan Anda, pilih **Edit** di samping langkah yang menyertakan item apa pun yang ingin Anda konfigurasikan. Anda dapat mengatur opsi berikut hanya selama pembuatan lingkungan:
   + Nama lingkungan
   + Nama domain
   + Versi Platform
   + Prosesor
   + Jenis penyeimbang beban
   + Tingkat

   Anda dapat mengubah pengaturan berikut setelah pembuatan lingkungan, tetapi mereka memerlukan instans baru atau sumber daya lain untuk disediakan dan dapat memakan waktu lama untuk menerapkan:
   + Jenis instans, volume root, key pair, dan peran AWS Identity and Access Management (IAM)
   + Basis data Amazon RDS internal
   + VPC

   Untuk detail di semua pengaturan yang tersedia, lihat [Wizard pembuatan lingkungan baru](environments-create-wizard.md).

1. Pilih **Kirim** di bagian bawah halaman untuk menginisialisasi pembuatan lingkungan baru Anda.

## Langkah selanjutnya
<a name="java-getstarted-next"></a>

Setelah Anda memiliki lingkungan yang menjalankan aplikasi, Anda dapat [men-deploy versi baru](using-features.deploy-existing-version.md) aplikasi atau aplikasi yang sama sekali berbeda setiap saat. Men-deploy versi aplikasi baru sangat cepat karena tidak memerlukan persediaan atau memulai ulang instans EC2.

Setelah men-deploy satu atau dua aplikasi sampel, dan Anda siap mulai mengembangkan dan menjalankan aplikasi Java secara lokal, lihat [bagian selanjutnya](java-development-environment.md) untuk menyiapkan lingkungan pengembangan Java dengan semua alat yang akan diperlukan.

# Menggunakan platform Elastic Beanstalk Tomcat
<a name="java-tomcat-platform"></a>

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](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.java) 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](environment-configuration-methods-after.md). Agar Anda tidak kehilangan konfigurasi lingkungan ketika mengakhirinya, Anda dapat menggunakan [konfigurasi tersimpan](environment-configuration-savedconfig.md) untuk menyimpan pengaturan dan kemudian menerapkannya ke lingkungan lain.

Untuk menyimpan pengaturan di kode sumber, Anda dapat menyertakan [file konfigurasi](ebextensions.md). 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](#java-tomcat-namespaces) 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](java-tomcat-proxy.md) di paket sumber Anda untuk memperluas konfigurasi proksi Elastic Beanstalk atau menimpa sepenuhnya.

**catatan**  
Elastic Beanstalk mendukung [nginx](https://www.nginx.com/) (default) dan [Server HTTP Apache](https://httpd.apache.org/) 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](https://httpd.apache.org/docs/2.2/). Apache (terbaru) adalah default di cabang-cabang platform sebelumnya.   
 **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 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](using-features.migration-al.md)

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](java-tomcat-platform-directorystructure.md).

Untuk menjalankan beberapa aplikasi di server web yang sama, Anda dapat [memaket beberapa file WAR](java-tomcat-multiple-war-files.md) 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](command-options.md).

Untuk detail tentang berbagai cara memperluas platform berbasis Linux Elastic Beanstalk, lihat [Memperluas platform Linux Elastic Beanstalk](platforms-linux-extend.md).

**Topics**
+ [

## Mengonfigurasi lingkungan Tomcat Anda
](#java-tomcat-options)
+ [

## Namespace konfigurasi Tomcat
](#java-tomcat-namespaces)
+ [

# Paketan beberapa file WAR untuk lingkungan Tomcat
](java-tomcat-multiple-war-files.md)
+ [

# Menata folder proyek Anda
](java-tomcat-platform-directorystructure.md)
+ [

# Mengonfigurasi server proksi
](java-tomcat-proxy.md)

## Mengonfigurasi lingkungan Tomcat Anda
<a name="java-tomcat-options"></a>

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](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk.** Wilayah AWS

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

1. Pada panel navigasi, pilih **Konfigurasi**.

1. Dalam kategori konfigurasi **Pembaruan, pemantauan, dan pencatatan**, pilih **Edit**.

### Opsi kontainer
<a name="java-tomcat-options-container"></a>

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
<a name="java-tomcat-options-jvm"></a>

Ukuran tumpukan di mesin virtual Java (JVM) menentukan berapa banyak objek yang dapat dibuat aplikasi Anda di memori sebelum *[pengumpulan sampah](https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/introduction.html)* 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 tipe instans Amazon EC2. Untuk informasi selengkapnya tentang tipe instans EC2 yang tersedia untuk lingkungan Elastic Beanstalk Anda, lihat [Tipe Instans](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) 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.](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2023-07-13-al2023.html)  
Untuk informasi lebih lanjut, lihat sumber daya berikut.  
Situs dokumentasi Oracle Java: [Dihapus Java Options](https://docs.oracle.com/en/java/javase/17/docs/specs/man/java.html#removed-java-options) 
[Situs dokumentasi Oracle Java: Bagian *Metadata Kelas* dalam Pertimbangan Lain](https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/considerations.html)

*Untuk informasi selengkapnya tentang platform Elastic Beanstalk dan komponennya[, lihat](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html) Platform yang Didukung dalam panduan Platform.AWS Elastic Beanstalk *

### Opsi log
<a name="java-tomcat-options-logs"></a>

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 instans Amazon EC2 aplikasi Anda disalin ke bucket Amazon S3 yang terkait dengan aplikasi Anda.

### File statis
<a name="java-tomcat-options-staticfiles"></a>

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](environment-cfg-staticfiles.md)

### Properti lingkungan
<a name="java-tomcat-options-properties"></a>

Di bagian **Properti lingkungan**, Anda dapat menentukan pengaturan konfigurasi lingkungan di instans Amazon EC2 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\$1CONNECTION\$1STRING 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](java-rds.md).

Untuk versi platform Tomcat yang dirilis sebelum [26 Maret 2025,](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2025-03-26-windows.html) variabel lingkungan dapat diakses menggunakan. `System.getProperty()` Misalnya, Anda bisa membaca properti bernama `API_ENDPOINT` dari variabel dengan kode berikut.

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

Versi platform Tomcat yang dirilis pada atau setelah [26 Maret 2025,](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2025-03-26-windows.html) juga dapat digunakan `System.getenv` untuk mengakses variabel lingkungan teks biasa. Anda dapat terus menggunakan `System.getProperty` untuk mengakses variabel lingkungan plaintext. Namun, [variabel lingkungan yang disimpan sebagai rahasia](AWSHowTo.secrets.env-vars.md) hanya tersedia menggunakan`System.getenv`. Misalnya, Anda bisa membaca variabel lingkungan bernama `API_KEY` dengan kode berikut.

```
String apiKey = System.getenv("API_KEY");
```

**penting**  
Penambahan `System.getenv()` akses untuk variabel lingkungan dalam versi platform Tomcat yang dirilis pada atau setelah [26 Maret 2025](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2025-03-26-windows.html) dapat menyebabkan perilaku tak terduga dalam aplikasi yang memberikan prioritas variabel lingkungan daripada properti sistem Java atau ketika secara eksplisit beralih dari ke. `System.getProperty()` `System.getenv()`  
Karena properti sistem (diteruskan melalui baris perintah) memerlukan pelarian shell untuk karakter khusus sementara variabel lingkungan tidak, nilai dapat diselesaikan secara berbeda saat menggunakan variabel lingkungan alih-alih properti sistem Java.  
Jika aplikasi Anda terpengaruh, pertimbangkan:  
Menghapus karakter escape dari nilai properti lingkungan Anda saat menggunakan `System.getenv()`
Mengkonfigurasi aplikasi Anda untuk digunakan secara eksplisit `System.getProperty()`
Menguji aplikasi Anda secara menyeluruh saat memutakhirkan untuk memastikan perilaku yang konsisten

Lihat [Variabel lingkungan dan pengaturan perangkat lunak lainnya](environments-cfg-softwaresettings.md) untuk informasi selengkapnya.

## Namespace konfigurasi Tomcat
<a name="java-tomcat-namespaces"></a>

Anda dapat menggunakan [file konfigurasi](ebextensions.md) untuk mengatur opsi konfigurasi dan melakukan tugas-tugas konfigurasi instans lain selama deployment. Opsi konfigurasi dapat berupa [platform khusus](command-options-specific.md) atau berlaku untuk [semua platform di layanan](command-options-general.md) 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](command-options-general.md):
+ `aws:elasticbeanstalk:container:tomcat:jvmoptions` – Modifikasi pengaturan JVM. Opsi di namespace ini sesuai dengan opsi di konsol manajemen, sebagai berikut:
  + `Xms` – **Opsi baris perintah JVM**
  + `JVM Options` – **Opsi baris perintah JVM**
+ `aws:elasticbeanstalk:environment:proxy` – Pilih server proksi lingkungan.

File konfigurasi contoh berikut menunjukkan penggunaan opsi konfigurasi tertentu Tomcat.

**Example .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](command-options.md) untuk informasi selengkapnya.

## Platform Tomcat Amazon Linux AMI (Amazon Linux 2 terdahulu)
<a name="tomcat.alami"></a>

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 [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 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](using-features.migration-al.md)

### Ruang nama konfigurasi Tomcat - Amazon Linux AMI () AL1
<a name="tomcat.alami.namespaces"></a>

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:MaxPermSize` – **Ukuran 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.

**Example .ebextensions/tomcat-settings.config**  

```
option_settings:
  aws:elasticbeanstalk:environment:proxy:
    GzipCompression: 'true'
    ProxyServer: nginx
```

### Sertakan file konfigurasi Elastic Beanstalk - Amazon Linux AMI () AL1
<a name="java-tomcat-ebextensions"></a>

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:

**Example**  

```
zip -ur your_application.war .ebextensions
```

Untuk aplikasi yang membutuhkan beberapa file WAR, lihat [Paketan beberapa file WAR untuk lingkungan Tomcat](java-tomcat-multiple-war-files.md) untuk petunjuk lebih lanjut.

# Paketan beberapa file WAR untuk lingkungan Tomcat
<a name="java-tomcat-multiple-war-files"></a>

Jika aplikasi web Anda terdiri dari beberapa komponen aplikasi web, Anda dapat menyederhanakan deployment dan mengurangi biaya operasi dengan menjalankan komponen di satu lingkungan, bukan menjalankan lingkungan yang terpisah untuk setiap komponen. Strategi ini efektif untuk aplikasi ringan yang tidak memerlukan banyak sumber daya, dan untuk pengembangan dan pengujian lingkungan.

Untuk men-deploy beberapa aplikasi web ke lingkungan Anda, gabungkan setiap file arsip aplikasi web (WAR) komponen ke dalam satu [paket sumber](applications-sourcebundle.md).

Untuk membuat paket sumber aplikasi yang berisi beberapa file WAR, atur file WAR menggunakan struktur berikut.

```
MyApplication.zip
├── .ebextensions
├── .platform
├── foo.war
├── bar.war
└── ROOT.war
```

Saat Anda menerapkan bundel sumber yang berisi beberapa file WAR ke AWS Elastic Beanstalk lingkungan, setiap aplikasi dapat diakses dari jalur berbeda dari nama domain root. Contoh sebelumnya mencakup tiga aplikasi: `foo`, `bar`, dan `ROOT`. `ROOT.war` adalah nama file khusus yang memberitahu Elastic Beanstalk untuk menjalankan aplikasi di akar domain, sehingga tiga aplikasi tersedia di `http://MyApplication.elasticbeanstalk.com/foo`, `http://MyApplication.elasticbeanstalk.com/bar`, dan `http://MyApplication.elasticbeanstalk.com`.

Paket sumber dapat mencakup file WAR, folder `.ebextensions` opsional, dan folder `.platform` opsional. Untuk detail tentang folder konfigurasi opsional ini, lihat [Memperluas platform Linux Elastic Beanstalk](platforms-linux-extend.md).

**Untuk meluncurkan lingkungan (konsol)**

1. [Buka konsol Elastic Beanstalk dengan tautan yang telah dikonfigurasi sebelumnya: console.aws.amazon. com/elasticbeanstalk/home\$1/newApplication? applicationName=Tutorial&EnvironmentType= LoadBalanced](https://console.aws.amazon.com/elasticbeanstalk/home#/newApplication?applicationName=tutorials&environmentType=LoadBalanced)

1. Untuk **Platform**, pilih platform dan cabang platform yang sesuai dengan bahasa yang digunakan oleh aplikasi Anda, atau platform Docker untuk aplikasi berbasis kontainer.

1. Untuk **Kode aplikasi**, pilih **Unggah kode Anda**.

1. Pilih **File lokal**, pilih **Pilih file**, dan kemudian buka paket sumber.

1. Pilih **Tinjau dan Luncurkan**.

1. Tinjau pengaturan yang tersedia, dan kemudian pilih **Buat aplikasi**.

Untuk informasi selengkapnya tentang membuat paket sumber, lihat [Buat bundel sumber aplikasi Elastic Beanstalk](applications-sourcebundle.md).

# Menata folder proyek Anda
<a name="java-tomcat-platform-directorystructure"></a>

Untuk bekerja saat men-deploy ke server Tomcat, arsip aplikasi web (file WAR) Java Platform Enterprise Edition (*Java EE*) yang dikompilasi harus terstruktur sesuai dengan [pedoman](https://docs.oracle.com/javaee/7/tutorial/packaging003.htm). Direktori proyek Anda tidak harus memenuhi standar yang sama, tetapi sebaiknya Anda menyusunnya dengan cara yang sama untuk menyederhanakan kompilasi dan pengemasan. Penataan folder proyek Anda seperti konten file WAR juga membantu Anda memahami bagaimana file terkait dan bagaimana mereka berperilaku di web server.

Di hirarki yang direkomendasikan berikut ini, kode sumber untuk aplikasi web ditempatkan di direktori `src`, untuk mengisolasinya dari penulisan membangun dan file WAR yang dihasilkannya.

```
~/workspace/my-app/
|-- build.sh            - Build script that compiles classes and creates a WAR
|-- README.MD           - Readme file with information about your project, notes
|-- ROOT.war            - Source bundle artifact created by build.sh
`-- src                 - Source code folder
    |-- WEB-INF         - Folder for private supporting files
    |   |-- classes     - Compiled classes
    |   |-- lib         - JAR libraries
    |   |-- tags        - Tag files
    |   |-- tlds        - Tag Library Descriptor files
    |   `-- web.xml     - Deployment Descriptor
    |-- com             - Uncompiled classes
    |-- css             - Style sheets
    |-- images          - Image files
    |-- js              - JavaScript files
    `-- default.jsp     - JSP (JavaServer Pages) webpage
```

Konten folder `src` sesuai dengan apa yang akan Anda kemas dan deploy ke server, dengan pengecualian folder `com`. Folder `com` berisi kelas-kelas Anda yang tidak dikompilasi (file `.java`). Ini perlu dikompilasi dan ditempatkan di direktori `WEB-INF/classes` untuk dapat diakses dari kode aplikasi Anda.

Direktori `WEB-INF` berisi kode dan konfigurasi yang tidak dilayani secara publik di web server. Folder lain di akar direktori sumber (`css`, `images`, dan `js`) tersedia untuk umum di jalur yang sesuai di web server.

Contoh berikut identik dengan direktori proyek sebelumnya, kecuali direktori berisi lebih banyak file dan subdirektori. Proyek contoh ini mencakup tanda sederhana, model dan dukungan kelas, dan file Java Server Page (JSP) untuk sumber daya `record`. Ini juga mencakup style sheet dan JavaScript untuk [Bootstrap](http://getbootstrap.com/), file JSP default, dan halaman kesalahan untuk kesalahan 404.

`WEB-INF/lib` termasuk file Java Archive (JAR) yang berisi driver Java Database Connectivity (JDBC) untuk PostgreSQL. `WEB-INF/classes` kosong karena file kelas belum dikompilasi.

```
~/workspace/my-app/
|-- build.sh
|-- README.MD
|-- ROOT.war
`-- src
    |-- WEB-INF
    |   |-- classes
    |   |-- lib
    |   |   `-- postgresql-9.4-1201.jdbc4.jar
    |   |-- tags
    |   |   `-- header.tag
    |   |-- tlds
    |   |   `-- records.tld
    |   `-- web.xml
    |-- com
    |   `-- myapp
    |       |-- model
    |       |   `-- Record.java
    |       `-- web
    |           `-- ListRecords.java
    |-- css
    |   |-- bootstrap.min.css
    |   `-- myapp.css
    |-- images
    |   `-- myapp.png
    |-- js
    |   `-- bootstrap.min.js
    |-- 404.jsp
    |-- default.jsp
    `-- records.jsp
```

## Membangun file WAR dengan penulisan shell
<a name="java-tomcat-platform-directorystructure-building"></a>

`build.sh` adalah penulisan shell yang sangat sederhana yang mengompilasi kelas Java, membangun sebuah file WAR, dan menyalin ke direktori `webapps` Tomcat untuk pengujian lokal.

```
cd src
javac -d WEB-INF/classes com/myapp/model/Record.java
javac -classpath WEB-INF/lib/*:WEB-INF/classes -d WEB-INF/classes com/myapp/model/Record.java
javac -classpath WEB-INF/lib/*:WEB-INF/classes -d WEB-INF/classes com/myapp/web/ListRecords.java

jar -cvf ROOT.war *.jsp images css js WEB-INF
cp ROOT.war /Library/Tomcat/webapps
mv ROOT.war ../
```

Di dalam file WAR, Anda menemukan struktur yang sama yang ada di direktori `src` di contoh sebelumnya, tidak termasuk `src/com`. Perintah `jar` secara otomatis membuat file `META-INF/MANIFEST.MF`.

```
~/workspace/my-app/ROOT.war
|-- META-INF
|   `-- MANIFEST.MF
|-- WEB-INF
|   |-- classes
|   |   `-- com
|   |       `-- myapp
|   |           |-- model
|   |           |   `-- Records.class
|   |           `-- web
|   |               `-- ListRecords.class
|   |-- lib
|   |   `-- postgresql-9.4-1201.jdbc4.jar
|   |-- tags
|   |   `-- header.tag
|   |-- tlds
|   |   `-- records.tld
|   `-- web.xml
|-- css
|   |-- bootstrap.min.css
|   `-- myapp.css
|-- images
|   `-- myapp.png
|-- js
|   `-- bootstrap.min.js
|-- 404.jsp
|-- default.jsp
`-- records.jsp
```

## Menggunakan `.gitignore`
<a name="java-tomcat-platform-gitignore"></a>

Untuk menghindari melakukan kompilasi file kelas dan file WAR ke repositori Git Anda, atau melihat pesan tentang mereka muncul ketika Anda menjalankan perintah Git, tambahkan tipe file yang relevan ke file bernama `.gitignore` di folder proyek Anda.

**\$1/ruang kerja/myapp/.gitignore**

```
*.zip
*.class
```

# Mengonfigurasi server proksi
<a name="java-tomcat-proxy"></a>

Platform Tomcat menggunakan [nginx](https://www.nginx.com/) (default) atau [Server HTTP Apache](https://httpd.apache.org/) sebagai proksi terbalik untuk meneruskan permintaan dari port 80 di instans ke kontainer web Tomcat Anda yang mendengarkan port 8080. Elastic Beanstalk menyediakan konfigurasi proksi default yang dapat Anda perluas atau sepenuhnya diganti dengan konfigurasi Anda sendiri.

**Mengkonfigurasi server proxy pada versi platform Anda**  
Semua AL2023/AL2 platform mendukung fitur konfigurasi proxy yang seragam. Untuk informasi selengkapnya tentang mengonfigurasi server proxy pada versi platform yang menjalankan AL2023/AL2, lihat[Konfigurasi proksi terbalik](platforms-linux-extend.proxy.md). 

## Mengonfigurasi proksi di platform Tomcat Amazon Linux AMI (Amazon Linux 2 terdahulu)
<a name="java-tomcat-proxy.alami"></a>

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 [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 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](using-features.migration-al.md)

### Memilih server proxy untuk lingkungan Tomcat Anda - Amazon Linux AMI () AL1
<a name="java-tomcat-proxy.alami"></a>

Versi platform Tomcat berdasarkan Amazon Linux AMI (Amazon Linux 2 terdahulu) menggunakan [Apache 2.4](https://httpd.apache.org/docs/2.4/) untuk proksi secara default. Anda dapat memilih untuk menggunakan [Apache 2.2](https://httpd.apache.org/docs/2.2/) atau [nginx](https://www.nginx.com/) dengan menyertakan [file konfigurasi](ebextensions.md) di kode sumber Anda. Contoh berikut mengonfigurasi Elastic Beanstalk untuk menggunakan nginx.

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

```
option_settings:
  aws:elasticbeanstalk:environment:proxy:
    ProxyServer: nginx
```

### Migrasi dari Apache 2.2 ke Apache 2.4 - Amazon Linux AMI () AL1
<a name="java-tomcat-proxy-apache-migrate"></a>

Jika aplikasi Anda dikembangkan untuk [Apache 2.2](https://httpd.apache.org/docs/2.2/), baca bagian ini untuk mempelajari tentang migrasi ke [Apache 2.4](https://httpd.apache.org/docs/2.4/).

Dimulai dengan konfigurasi platform versi 3.0.0 Tomcat, yang dirilis dengan [Java dengan pembaruan platform Tomcat pada 24 Mei 2018](https://aws.amazon.com/releasenotes/release-aws-elastic-beanstalk-platform-update-for-the-java-with-tomcat-platform-on-may-24-2018/), Apache 2.4 adalah proksi default dari platform Tomcat. File `.conf` Apache 2.4 sebagian besar, tetapi tidak sepenuhnya, kompatibel dengan Apache 2.2. Elastic Beanstalk mencakup file `.conf` default yang bekerja dengan benar dengan setiap versi Apache. Jika aplikasi Anda tidak menyesuaikan konfigurasi Apache, seperti yang dijelaskan di [Memperluas dan mengganti konfigurasi Apache default - Amazon Linux AMI () AL1](#java-tomcat-proxy-apache), aplikasi harus bermigrasi ke Apache 2.4 tanpa masalah apa pun.

Jika aplikasi Anda memperluas atau mengganti konfigurasi Apache, Anda mungkin harus membuat beberapa perubahan untuk bermigrasi ke Apache 2.4. Untuk informasi selengkapnya, lihat [Meningkatkan ke 2.4 dari 2.2](https://httpd.apache.org/docs/current/upgrading.html) di situs *Apache Software Foundation*. Sebagai tindakan sementara, sampai Anda berhasil bermigrasi ke Apache 2.4, Anda dapat memilih untuk menggunakan Apache 2.2 dengan aplikasi Anda dengan menyertakan [file konfigurasi](ebextensions.md) di kode sumber Anda.

**Example .ebextensions/ .config apache-legacy-proxy**  

```
option_settings:
  aws:elasticbeanstalk:environment:proxy:
    ProxyServer: apache/2.2
```

Untuk perbaikan cepat, Anda juga dapat memilih server proksi di konsol Elastic Beanstalk.

**Untuk memilih proksi di lingkungan Tomcat Anda di konsol Elastic Beanstalk**

1. **Buka konsol [Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk.** Wilayah AWS

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

1. Pada panel navigasi, pilih **Konfigurasi**.

1. Dalam kategori konfigurasi **Pembaruan, pemantauan, dan pencatatan**, pilih **Edit**.

1. Untuk **server proksi**, pilih `Apache 2.2 (deprecated)`.

1. Untuk menyimpan perubahan pilih **Terapkan** di bagian bawah halaman.

![\[Memilih proksi untuk lingkungan Tomcat di kategori konfigurasi perangkat lunak konsol Elastic Beanstalk\]](http://docs.aws.amazon.com/id_id/elasticbeanstalk/latest/dg/images/java-tomcat-proxy-selection.png)


### Memperluas dan mengganti konfigurasi Apache default - Amazon Linux AMI () AL1
<a name="java-tomcat-proxy-apache"></a>

Anda dapat memperpanjang konfigurasi Apache default Elastic Beanstalk dengan file konfigurasi tambahan Anda. Atau, Anda dapat sepenuhnya mengganti konfigurasi Apache default Elastic Beanstalk.

**catatan**  
Semua platform Amazon Linux 2 mendukung fitur konfigurasi proksi yang seragam. Untuk detail tentang mengonfigurasi server proxy pada versi platform Tomcat yang menjalankan Amazon Linux 2, lihat. [Konfigurasi proksi terbalik](platforms-linux-extend.proxy.md)
Jika Anda memigrasi aplikasi Elastic Beanstalk Anda ke platform Amazon Linux 2, pastikan untuk juga membaca informasi di [Memigrasi aplikasi Elastic Beanstalk Linux Anda ke Amazon Linux 2023 atau Amazon Linux 2](using-features.migration-al.md).

Untuk memperpanjang konfigurasi Apache default Elastic Beanstalk, tambahkan file konfigurasi `.conf` ke folder bernama `.ebextensions/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
|      -- conf.d
|         -- myconf.conf
|         -- ssl.conf
-- index.jsp
```

Sebagai contoh, konfigurasi Apache 2.4 berikut menambahkan listener di port 5000.

**Example . ebextensions/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 mengambil alih konfigurasi Apache default Elastic Beanstalk sepenuhnya, sertakan konfigurasi di paket sumber Anda di `.ebextensions/httpd/conf/httpd.conf`.

```
~/workspace/my-app/
|-- .ebextensions
|   `-- httpd
|       `-- conf
|           `-- httpd.conf
`-- index.jsp
```

Jika Anda mengganti konfigurasi Apache Elastic Beanstalk, tambahkan baris berikut ke `httpd.conf` untuk menarik konfigurasi Elastic Beanstalk untuk [Peningkatan pelaporan dan pemantauan kesehatan di Elastic Beanstalk](health-enhanced.md), kompresi respons, dan file statis.

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

Jika lingkungan Anda menggunakan Apache 2.2 sebagai proksi, ganti arahan `IncludeOptional` dengan `Include`. Untuk detail tentang perilaku kedua arahan ini dalam dua versi Apache, lihat [Sertakan di Apache 2.4, di Apache 2.4](https://httpd.apache.org/docs/2.4/mod/core.html#include), dan [Sertakan IncludeOptional ](https://httpd.apache.org/docs/2.2/mod/core.html#include) [di Apache 2.2](https://httpd.apache.org/docs/2.4/mod/core.html#includeoptional).

**catatan**  
Untuk mengganti listener default di port 80, termasuk sebuah file bernama `00_application.conf` di `.ebextensions/httpd/conf.d/elasticbeanstalk/` untuk menimpa konfigurasi Elastic Beanstalk.

Untuk contoh kerja, lihatlah file konfigurasi default Elastic Beanstalk di `/etc/httpd/conf/httpd.conf` pada instans di lingkungan Anda. Semua file di folder `.ebextensions/httpd` di paket sumber Anda akan disalin ke `/etc/httpd` selama deployment.

### Memperluas konfigurasi nginx default - Amazon Linux AMI () AL1
<a name="java-tomcat-proxy-nginx"></a>

Untuk memperpanjang konfigurasi nginx default Elastic beanstalk, tambahkan file konfigurasi `.conf` ke folder bernama `.ebextensions/nginx/conf.d/` di paket sumber aplikasi Anda. Konfigurasi nginx Elastic Beanstalk mencakup file `.conf` di folder ini secara otomatis.

```
~/workspace/my-app/
|-- .ebextensions
|   `-- nginx
|       `-- conf.d
|           |-- elasticbeanstalk
|           |   `-- my-server-conf.conf
|           `-- my-http-conf.conf
`-- index.jsp
```

File dengan ekstensi .conf di folder `conf.d` yang disertakan di blok `http` dari konfigurasi default. File di folder `conf.d/elasticbeanstalk` yang disertakan di blok `server` di dalam blok `http`.

Untuk mengganti konfigurasi nginx default Elastic Beanstalk sepenuhnya, sertakan konfigurasi di paket sumber Anda di `.ebextensions/nginx/nginx.conf`.

```
~/workspace/my-app/
|-- .ebextensions
|   `-- nginx
|       `-- nginx.conf
`-- index.jsp
```

**Catatan**  
Jika Anda mengganti konfigurasi nginx Elastic Beanstalk, tambahkan baris berikut ke blok `server` konfigurasi Anda untuk menarik konfigurasi Elastic Beanstalk untuk listener port 80, kompresi respons, dan file statis.  

  ```
   include conf.d/elasticbeanstalk/*.conf;
  ```
Untuk mengganti listener default di port 80, termasuk sebuah file bernama `00_application.conf` di `.ebextensions/nginx/conf.d/elasticbeanstalk/` untuk menimpa konfigurasi Elastic Beanstalk.
Juga sertakan baris berikut di blok `http` konfigurasi Anda untuk menarik dalam konfigurasi Elastic Beanstalk untuk [Peningkatan pelaporan dan pemantauan kesehatan di Elastic Beanstalk](health-enhanced.md) dan logging.  

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

Untuk contoh kerja, lihatlah file konfigurasi default Elastic Beanstalk di `/etc/nginx/nginx.conf` pada instans di lingkungan Anda. Semua file di folder `.ebextensions/nginx` di paket sumber Anda akan disalin ke `/etc/nginx` selama deployment.

# Menggunakan platform Java SE Elastic Beanstalk
<a name="java-se-platform"></a>

Topik ini menjelaskan cara mengkonfigurasi, membangun, dan menjalankan aplikasi Java Anda yang berjalan di platform AWS Elastic Beanstalk Java SE.

Platform Elastic Beanstalk Java SE adalah [seperangkat versi platform untuk aplikasi web Java yang dapat berjalan sendiri dari](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.javase) file JAR yang dikompilasi. Anda dapat mengompilasi aplikasi Anda secara lokal atau mengunggah kode sumber dengan penulisan membangun untuk mengompilasinya pada instans. Versi platform Java SE dikelompokkan ke dalam cabang platform, yang masing-masing sesuai dengan versi utama Java.

**catatan**  
Elastic Beanstalk tidak mengurai file JAR aplikasi Anda. Jauhkan file yang dibutuhkan Elastic Beanstalk di luar file JAR. Sebagai contoh, sertakan file `cron.yaml` [lingkungan pekerja](using-features-managing-env-tiers.md) di akar paket sumber aplikasi Anda, di sebelah file JAR.

Opsi konfigurasi tersedia di konsol Elastic Beanstalk untuk [memodifikasi konfigurasi dari lingkungan yang sedang berjalan](environment-configuration-methods-after.md). Agar Anda tidak kehilangan konfigurasi lingkungan ketika mengakhirinya, Anda dapat menggunakan [konfigurasi tersimpan](environment-configuration-savedconfig.md) untuk menyimpan pengaturan dan kemudian menerapkannya ke lingkungan lain.

Untuk menyimpan pengaturan di kode sumber, Anda dapat menyertakan [file konfigurasi](ebextensions.md). 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 Java SE Elastic Beanstalk mencakup server [nginx](https://www.nginx.com/) yang bertindak sebagai proksi terbalik, melayani cache konten statis dan meneruskan permintaan ke aplikasi Anda. Platform menyediakan 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](java-se-nginx.md) di paket sumber Anda untuk memperluas konfigurasi proksi Elastic Beanstalk atau menimpa sepenuhnya. 

Jika Anda hanya menyediakan satu file JAR untuk sumber aplikasi Anda (sendiri, tidak di paket sumber), Elastic Beanstalk mengganti nama file JAR Anda menjadi `application.jar`, dan kemudian menjalankannya menggunakan `java -jar application.jar`. Untuk mengonfigurasi proses yang berjalan di instans server di lingkungan Anda, sertakan [Procfile](java-se-procfile.md) opsional di paket sumber Anda. `Procfile` diperlukan jika Anda memiliki lebih dari satu JAR di akar paket sumber Anda, atau jika Anda ingin menyesuaikan perintah java untuk mengatur opsi JVM.

Kami merekomendasikan agar Anda selalu menyediakan `Procfile` di paket sumber di samping aplikasi Anda. Dengan cara ini, Anda secara tepat mengontrol proses mana yang dijalankan Elastic Beanstalk untuk aplikasi Anda dan argumen yang diterima proses ini.

Untuk mengkompilasi kelas Java dan menjalankan perintah build lainnya pada EC2 instance di lingkungan Anda pada waktu penerapan, sertakan [Buildfile](java-se-buildfile.md) dalam bundel sumber aplikasi Anda. A `Buildfile` memungkinkan Anda menerapkan kode sumber apa adanya dan membangun di server alih-alih mengkompilasi JARs secara lokal. Platform Java SE termasuk alat membangun umum untuk membiarkan Anda membangun pada server.

Untuk detail tentang berbagai cara memperluas platform berbasis Linux Elastic Beanstalk, lihat [Memperluas platform Linux Elastic Beanstalk](platforms-linux-extend.md).

## Mengonfigurasi lingkungan Java SE Anda
<a name="java-se-options"></a>

Pengaturan platform Java SE memungkinkan Anda menyempurnakan perilaku instans Amazon EC2 Anda. Anda dapat mengedit konfigurasi instans Amazon lingkungan Elastic Beanstalk menggunakan konsol EC2 Elastic Beanstalk.

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

**Untuk mengonfigurasi lingkungan Java SE Anda di konsol Elastic Beanstalk**

1. **Buka konsol [Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk.** Wilayah AWS

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

1. Pada panel navigasi, pilih **Konfigurasi**.

1. Dalam kategori konfigurasi **Pembaruan, pemantauan, dan pencatatan**, pilih **Edit**.

### Opsi log
<a name="java-se-options-logs"></a>

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
<a name="java-se-options-staticfiles"></a>

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](environment-cfg-staticfiles.md)

### Properti lingkungan
<a name="java-se-options-properties"></a>

Bagian **Properti Lingkungan** memungkinkan Anda menentukan pengaturan konfigurasi lingkungan pada EC2 instance Amazon yang menjalankan aplikasi Anda. Properti lingkungan diberikan sebagai pasangan nilai kunci ke aplikasi.

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

```
String endpoint = System.getenv("API_ENDPOINT");
```

Lihat [Variabel lingkungan dan pengaturan perangkat lunak lainnya](environments-cfg-softwaresettings.md) untuk informasi selengkapnya.

## Namespace konfigurasi Java SE
<a name="java-se-namespaces"></a>

Anda dapat menggunakan [file konfigurasi](ebextensions.md) untuk mengatur opsi konfigurasi dan melakukan tugas-tugas konfigurasi instans lain selama deployment. Opsi konfigurasi dapat berupa [platform khusus](command-options-specific.md) atau berlaku untuk [semua platform di layanan](command-options-general.md) Elastic Beanstalk secara keseluruhan. Opsi konfigurasi diatur ke dalam *ruang nama*.

Platform Java SE tidak menentukan namespace tertentu platform manapun. Anda dapat mengonfigurasi proksi untuk menyajikan file statis dengan menggunakan namespace `aws:elasticbeanstalk:environment:proxy:staticfiles`. Untuk detail dan contoh, lihat [Menyajikan file statis](environment-cfg-staticfiles.md).

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](command-options.md) untuk informasi selengkapnya.

## Platform Java SE Amazon Linux AMI (Amazon Linux 2 terdahulu)
<a name="java-se.alami"></a>

Jika lingkungan Java SE 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 [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 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](using-features.migration-al.md)

### Ruang nama konfigurasi Java SE - Amazon Linux AMI () AL1
<a name="java-se.alami.namespaces"></a>

Anda dapat menggunakan [file konfigurasi](ebextensions.md) untuk mengatur opsi konfigurasi dan melakukan tugas-tugas konfigurasi instans lain selama deployment. Opsi konfigurasi dapat berupa [platform khusus](command-options-specific.md) atau berlaku untuk [semua platform di layanan](command-options-general.md) Elastic Beanstalk secara keseluruhan. Opsi konfigurasi diatur ke dalam *ruang nama*.

Platform Java SE mendukung satu namespace konfigurasi tertentu platform selain [namespace yang didukung oleh semua platform](command-options-general.md). Namespace `aws:elasticbeanstalk:container:java:staticfiles` memungkinkan Anda menentukan opsi yang memetakan jalur di aplikasi web Anda ke folder di paket sumber aplikasi Anda yang berisi konten statis.

Sebagai contoh, snippet [option\$1settings](ebextensions-optionsettings.md) menentukan dua opsi di namespace file statis. Yang pertama memetakan jalur `/public` ke folder bernama `public`, dan yang kedua memetakan jalur `/images` ke folder bernama `img`:

```
option_settings:
  aws:elasticbeanstalk:container:java:staticfiles:
    /html: statichtml
    /images: staticimages
```

Folder yang Anda petakan menggunakan namespace ini harus folder yang sebenarnya di akar paket sumber Anda. Anda tidak dapat memetakan jalur ke folder di file JAR.

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](command-options.md) untuk informasi selengkapnya.

# Membangun JARs di server dengan Buildfile
<a name="java-se-buildfile"></a>

Anda dapat membangun file kelas aplikasi dan JAR (s) pada EC2 instance di lingkungan Anda dengan menjalankan perintah build dari `Buildfile` file dalam bundel sumber Anda.

Perintah di `Buildfile` hanya berjalan sekali dan harus diakhiri setelah selesai, sedangkan perintah di [Procfile](java-se-procfile.md) diharapkan untuk menjalankan demi kehidupan aplikasi dan akan dimulai ulang jika mereka mengakhirinya. Untuk menjalankan aplikasi Anda, gunakan file`Procfile`. JARs 

Untuk detail tentang penempatan dan sintaks a`Buildfile`, lihat[Buildfile dan Procfile](platforms-linux-extend.build-proc.md).

Contoh `Buildfile` berikut ini menjalankan Apache Maven untuk membangun aplikasi web dari kode sumber. Untuk aplikasi sampel yang menggunakan fitur ini, lihat [sampel aplikasi web Java](java-getstarted.md#java-getstarted-samples).

**Example Buildfile**  

```
build: mvn assembly:assembly -DdescriptorId=jar-with-dependencies
```

Platform Java SE mencakup alat membangun berikut, yang dapat Anda panggil dari penulisan membangun Anda:
+ `javac` – Java compiler
+ `ant` – Apache Ant
+ `mvn` – Apache Maven
+ `gradle` – Gradle

# Mengonfigurasi proses aplikasi dengan Procfile
<a name="java-se-procfile"></a>

Jika Anda memiliki lebih dari satu file JAR di akar paket sumber aplikasi Anda, Anda harus menyertakan file `Procfile` yang memberitahu Elastic Beanstalk JAR mana yang dijalankan. Anda juga dapat menyertakan file `Procfile` untuk satu aplikasi JAR untuk mengonfigurasi mesin virtual Java (JVM) yang menjalankan aplikasi Anda.

Kami merekomendasikan agar Anda selalu menyediakan `Procfile` di paket sumber di samping aplikasi Anda. Dengan cara ini, Anda secara tepat mengontrol proses mana yang dijalankan Elastic Beanstalk untuk aplikasi Anda dan argumen yang diterima proses ini.

Untuk detail tentang menulis dan menggunakan `Procfile` lihat[Buildfile dan Procfile](platforms-linux-extend.build-proc.md).

**Example Procfile**  

```
web: java -Xms256m -jar server.jar 
cache: java -jar mycache.jar
web_foo: java -jar other.jar
```

Perintah yang menjalankan JAR utama di aplikasi Anda harus disebut `web`, dan menjadi perintah pertama yang tercantum di `Procfile`. Server nginx meneruskan semua permintaan HTTP yang diterima dari penyeimbang beban lingkungan Anda ke aplikasi ini.

Elastic Beanstalk mengasumsikan bahwa semua entri di Procfile harus berjalan setiap saat dan secara otomatis memulai ulang aplikasi yang ditentukan di Procfile yang berakhir. Untuk menjalankan perintah yang akan mengakhiri dan tidak harus dimulai ulang, gunakan [`Buildfile`](java-se-buildfile.md).

## Menggunakan Procfile di Amazon Linux AMI (Amazon Linux 2 terdahulu)
<a name="java-se-procfile.alami"></a>

Jika lingkungan Java SE 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 [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 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](using-features.migration-al.md)

### Port lewat - Amazon Linux AMI (AL1)
<a name="java-se-procfile.alami.ports"></a>

Secara default, Elastic Beanstalk mengonfigurasi proksi nginx untuk meneruskan permintaan ke aplikasi Anda di port 5000. Anda dapat mengganti port default dengan mengatur `PORT` [properti lingkungan](java-se-platform.md#java-se-options) ke port yang didengarkan aplikasi utama Anda.

Jika Anda menggunakan `Procfile` untuk menjalankan beberapa aplikasi, Elastic Beanstalk di versi platform Amazon Linux AMI mengharapkan setiap aplikasi tambahan untuk mendengarkan di port 100 yang lebih tinggi dari sebelumnya. Elastic Beanstalk mengatur variabel PORT dapat diakses dari dalam setiap aplikasi ke port yang mengharapkan untuk menjalankan aplikasi. Anda dapat mengakses variabel ini dalam kode aplikasi Anda dengan memanggil `System.getenv("PORT")`.

Pada contoh `Procfile` sebelumnya, aplikasi `web` mendengarkan di port 5000, `cache` mendengarkan di port 5100, dan `web_foo` mendengarkan di port 5200. `web` mengonfigurasi port mendengarkannya dengan membaca variabel `PORT`, dan menambahkan 100 ke jumlah tersebut untuk menentukan port `cache` mana yang mendengarkan sehingga dapat mengirimkan permintaan.

# Mengonfigurasi server proksi
<a name="java-se-nginx"></a>

Elastic Beanstalk menggunakan [nginx](https://www.nginx.com/) sebagai proksi terbalik untuk memetakan aplikasi Anda ke penyeimbang beban Elastic Load Balancing di port 80. Elastic Beanstalk menyediakan konfigurasi nginx default yang dapat Anda perluas atau sepenuhnya diganti dengan konfigurasi Anda sendiri.

Secara default, Elastic Beanstalk mengonfigurasi proksi nginx untuk meneruskan permintaan ke aplikasi Anda di port 5000. Anda dapat mengganti port default dengan mengatur `PORT` [properti lingkungan](java-se-platform.md#java-se-options) ke port yang didengarkan aplikasi utama Anda.

**catatan**  
Port yang didengar aplikasi Anda tidak mempengaruhi port yang didengar server nginx untuk menerima permintaan dari penyeimbang beban.

**Mengkonfigurasi server proxy pada versi platform Anda**  
Semua AL2 AL2 023/platform mendukung fitur konfigurasi proxy yang seragam. Untuk informasi selengkapnya tentang mengonfigurasi server proxy pada versi platform Anda yang menjalankan AL2 023/AL2, lihat. [Konfigurasi proksi terbalik](platforms-linux-extend.proxy.md) 

## Mengonfigurasi proksi di Amazon Linux AMI (Amazon Linux 2 terdahulu)
<a name="java-se-nginx.alami"></a>

Jika lingkungan Java SE 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 [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 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](using-features.migration-al.md)

### Memperluas dan mengganti konfigurasi proxy default — Amazon Linux AMI () AL1
<a name="java-se-nginx.alami.extending"></a>

Untuk memperpanjang konfigurasi nginx default Elastic beanstalk, tambahkan file konfigurasi `.conf` ke folder bernama `.ebextensions/nginx/conf.d/` di paket sumber aplikasi Anda. Konfigurasi nginx Elastic Beanstalk mencakup file `.conf` di folder ini secara otomatis.

```
~/workspace/my-app/
|-- .ebextensions
|   `-- nginx
|       `-- conf.d
|           `-- myconf.conf
`-- web.jar
```

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

```
~/workspace/my-app/
|-- .ebextensions
|   `-- nginx
|       `-- nginx.conf
`-- web.jar
```

Jika Anda mengganti konfigurasi nginx Elastic Beanstalk, tambahkan baris berikut ke `nginx.conf` untuk menarik 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;
```

Contoh konfigurasi berikut dari [Aplikasi sampel Scorekeep](https://github.com/aws-samples/eb-java-scorekeep/) mengganti konfigurasi default Elastic Beanstalk untuk melayani aplikasi web statis dari subdirektori `public` dari `/var/app/current`, saat platform Java SE menyalin kode sumber aplikasi. lokasi `/api` meneruskan lalu lintas ke rute di bawah `/api/` ke aplikasi Spring yang mendengarkan di port 5000. Semua lalu lintas lainnya dilayani oleh aplikasi web di jalur akar.

**Example**  

```
user                    nginx;
error_log               /var/log/nginx/error.log warn;
pid                     /var/run/nginx.pid;
worker_processes        auto;
worker_rlimit_nofile    33282;

events {
    worker_connections  1024;
}

http {
  include       /etc/nginx/mime.types;
  default_type  application/octet-stream;

  log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';

  include       conf.d/*.conf;

  map $http_upgrade $connection_upgrade {
      default     "upgrade";
  }

  server {
      listen        80 default_server;
      root /var/app/current/public;

      location / {
      }git pull
      

      location /api {
          proxy_pass          http://127.0.0.1:5000;
          proxy_http_version  1.1;

          proxy_set_header    Connection          $connection_upgrade;
          proxy_set_header    Upgrade             $http_upgrade;
          proxy_set_header    Host                $host;
          proxy_set_header    X-Real-IP           $remote_addr;
          proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
      }

      access_log    /var/log/nginx/access.log main;

      client_header_timeout 60;
      client_body_timeout   60;
      keepalive_timeout     60;
      gzip                  off;
      gzip_comp_level       4;

      # Include the Elastic Beanstalk generated locations
      include conf.d/elasticbeanstalk/01_static.conf;
      include conf.d/elasticbeanstalk/healthd.conf;
  }
}
```

# Menambahkan instans Amazon RDS DB ke lingkungan Java Elastic Beanstalk
<a name="java-rds"></a>

Topik ini memberikan instruksi untuk membuat Amazon RDS menggunakan konsol Elastic Beanstalk. Anda dapat menggunakan instans DB Amazon Relational Database Service (Amazon RDS) untuk menyimpan data yang dikumpulkan dan dimodifikasi oleh aplikasi Anda. Basis data dapat dilampirkan ke lingkungan Anda dan dikelola oleh Elastic Beanstalk, atau dibuat dan dikelola secara eksternal.

Jika Anda menggunakan Amazon RDS untuk pertama kalinya, tambahkan instans DB ke lingkungan uji dengan menggunakan konsol Elastic Beanstalk dan verifikasi apakah aplikasi Anda dapat terhubung ke sana. 

**Untuk menambahkan instans DB ke lingkungan Anda**

1. **Buka konsol [Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk.** Wilayah AWS

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

1. Pada panel navigasi, pilih **Konfigurasi**.

1. Di kategori konfigurasi **Basis data**, pilih **Edit**.

1. Pilih mesin DB, dan masukkan nama pengguna dan kata sandi.

1. Untuk menyimpan perubahan pilih **Terapkan** di bagian bawah halaman.

Menambahkan instans DB memakan waktu sekitar 10 menit. Ketika pembaruan lingkungan selesai, nama host instans DB dan informasi koneksi lainnya tersedia untuk aplikasi Anda melalui properti lingkungan berikut:


| Nama properti | Deskripsi | Nilai properti | 
| --- | --- | --- | 
|  `RDS_HOSTNAME`  |  Nama host instans DB.  |  Di tab **Konektivitas & keamanan** di konsol Amazon RDS: **Titik akhir**.  | 
|  `RDS_PORT`  |  Port tempat instans DB menerima koneksi. Nilai default bervariasi di antara mesin DB.  |  Di tab **Konektivitas & keamanan** di konsol Amazon RDS: **Port**.  | 
|  `RDS_DB_NAME`  |  Nama basis data, **ebdb**.  |  Di tab **Konfigurasi** di konsol Amazon RDS: **Nama DB**.  | 
|  `RDS_USERNAME`  |  Nama pengguna yang Anda konfigurasi untuk basis data Anda.  |  Di tab **Konfigurasi** di konsol Amazon RDS: **Nama pengguna utama**.  | 
|  `RDS_PASSWORD`  |  Kata sandi yang Anda konfigurasi untuk basis data Anda.  |  Tidak tersedia untuk referensi di konsol Amazon RDS.  | 

Untuk informasi selengkapnya tentang mengonfigurasi instans DB internal, lihat [Menambahkan basis data ke lingkungan Elastic Beanstalk Anda](using-features.managing.db.md). Untuk petunjuk tentang konfigurasi basis data eksternal untuk digunakan dengan Elastic Beanstalk, lihat [Menggunakan Elastic Beanstalk dengan Amazon RDS](AWSHowTo.RDS.md).

Untuk terhubung ke basis data, tambahkan driver file JAR yang sesuai ke aplikasi Anda, muat kelas driver di kode Anda, dan buat objek koneksi dengan properti lingkungan yang disediakan oleh Elastic Beanstalk.

**Topics**
+ [

## Mengunduh driver JDBC
](#java-rds-drivers)
+ [

## Menghubungkan ke basis data (platform Java SE)
](#java-rds-javase)
+ [

## Menghubungkan ke basis data (platform Tomcat)
](#java-rds-tomcat)
+ [

## Pemecahan masalah koneksi basis data
](#create_deploy_Java.rds.troubleshooting)

## Mengunduh driver JDBC
<a name="java-rds-drivers"></a>

Anda akan membutuhkan file JAR driver JDBC untuk mesin DB yang Anda pilih. Simpan file JAR di kode sumber Anda dan sertakan ke dalam classpath Anda ketika Anda mengompilasi kelas yang membuat koneksi ke basis data.

Anda dapat menemukan driver terbaru untuk mesin DB Anda di lokasi-lokasi berikut:
+ **MySQL** – [MySQL Connector/J](https://dev.mysql.com/downloads/connector/j/)
+ **Oracle SE-1** – [Oracle JDBC Driver](http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html)
+ **Postgres** – [PostgreSQL JDBC Driver](https://jdbc.postgresql.org/)
+ **SQL Server** – [Microsoft JDBC Driver](https://msdn.microsoft.com/en-us/sqlserver/aa937724.aspx)

Untuk menggunakan driver JDBC, panggil `Class.forName()` untuk memuatnya sebelum membuat koneksi dengan `DriverManager.getConnection()` di kode Anda.

JDBC menggunakan string koneksi dengan format berikut:

```
jdbc:driver://hostname:port/dbName?user=userName&password=password
```

Anda dapat mengambil hostname, port, nama basis data, nama pengguna, dan kata sandi dari variabel lingkungan yang disediakan Elastic Beanstalk untuk aplikasi Anda. Nama driver khusus untuk tipe basis data dan versi driver Anda. Berikut ini adalah contoh nama driver:
+ `mysql` untuk MySQL
+ `postgresql` untuk PostgreSQL
+ `oracle:thin` untuk Oracle Thin
+ `oracle:oci` untuk Oracle OCI
+ `oracle:oci8` untuk Oracle OCI 8
+ `oracle:kprb` untuk Oracle KPRB
+ `sqlserver` untuk SQL Server

## Menghubungkan ke basis data (platform Java SE)
<a name="java-rds-javase"></a>

Di lingkungan Java SE, gunakan `System.getenv()` untuk membaca variabel koneksi dari lingkungan. Contoh kode berikut menunjukkan kelas yang membuat koneksi ke basis data PostgreSQL.

```
private static Connection getRemoteConnection() {
    if (System.getenv("RDS_HOSTNAME") != null) {
      try {
      Class.forName("org.postgresql.Driver");
      String dbName = System.getenv("RDS_DB_NAME");
      String userName = System.getenv("RDS_USERNAME");
      String password = System.getenv("RDS_PASSWORD");
      String hostname = System.getenv("RDS_HOSTNAME");
      String port = System.getenv("RDS_PORT");
      String jdbcUrl = "jdbc:postgresql://" + hostname + ":" + port + "/" + dbName + "?user=" + userName + "&password=" + password;
      logger.trace("Getting remote connection with connection string from environment variables.");
      Connection con = DriverManager.getConnection(jdbcUrl);
      logger.info("Remote connection successful.");
      return con;
    }
    catch (ClassNotFoundException e) { logger.warn(e.toString());}
    catch (SQLException e) { logger.warn(e.toString());}
    }
    return null;
  }
```

## Menghubungkan ke basis data (platform Tomcat)
<a name="java-rds-tomcat"></a>

Di lingkungan Tomcat, properti lingkungan disediakan sebagai properti sistem yang dapat diakses dengan `System.getProperty()`.

Contoh kode berikut menunjukkan kelas yang membuat koneksi ke basis data PostgreSQL.

```
private static Connection getRemoteConnection() {
    if (System.getProperty("RDS_HOSTNAME") != null) {
      try {
      Class.forName("org.postgresql.Driver");
      String dbName = System.getProperty("RDS_DB_NAME");
      String userName = System.getProperty("RDS_USERNAME");
      String password = System.getProperty("RDS_PASSWORD");
      String hostname = System.getProperty("RDS_HOSTNAME");
      String port = System.getProperty("RDS_PORT");
      String jdbcUrl = "jdbc:postgresql://" + hostname + ":" + port + "/" + dbName + "?user=" + userName + "&password=" + password;
      logger.trace("Getting remote connection with connection string from environment variables.");
      Connection con = DriverManager.getConnection(jdbcUrl);
      logger.info("Remote connection successful.");
      return con;
    }
    catch (ClassNotFoundException e) { logger.warn(e.toString());}
    catch (SQLException e) { logger.warn(e.toString());}
    }
    return null;
  }
```

Jika Anda mengalami kesulitan mendapatkan koneksi atau menjalankan pernyataan SQL, cobalah menempatkan kode berikut di file JSP. Kode ini menghubungkan ke instans DB, membuat tabel, dan menuliskannya.

```
<%@ page import="java.sql.*" %>
<%
  // Read RDS connection information from the environment
  String dbName = System.getProperty("RDS_DB_NAME");
  String userName = System.getProperty("RDS_USERNAME");
  String password = System.getProperty("RDS_PASSWORD");
  String hostname = System.getProperty("RDS_HOSTNAME");
  String port = System.getProperty("RDS_PORT");
  String jdbcUrl = "jdbc:mysql://" + hostname + ":" +
    port + "/" + dbName + "?user=" + userName + "&password=" + password;
  
  // Load the JDBC driver
  try {
    System.out.println("Loading driver...");
    Class.forName("com.mysql.jdbc.Driver");
    System.out.println("Driver loaded!");
  } catch (ClassNotFoundException e) {
    throw new RuntimeException("Cannot find the driver in the classpath!", e);
  }

  Connection conn = null;
  Statement setupStatement = null;
  Statement readStatement = null;
  ResultSet resultSet = null;
  String results = "";
  int numresults = 0;
  String statement = null;

  try {
    // Create connection to RDS DB instance
    conn = DriverManager.getConnection(jdbcUrl);
    
    // Create a table and write two rows
    setupStatement = conn.createStatement();
    String createTable = "CREATE TABLE Beanstalk (Resource char(50));";
    String insertRow1 = "INSERT INTO Beanstalk (Resource) VALUES ('EC2 Instance');";
    String insertRow2 = "INSERT INTO Beanstalk (Resource) VALUES ('RDS Instance');";
    
    setupStatement.addBatch(createTable);
    setupStatement.addBatch(insertRow1);
    setupStatement.addBatch(insertRow2);
    setupStatement.executeBatch();
    setupStatement.close();
    
  } catch (SQLException ex) {
    // Handle any errors
    System.out.println("SQLException: " + ex.getMessage());
    System.out.println("SQLState: " + ex.getSQLState());
    System.out.println("VendorError: " + ex.getErrorCode());
  } finally {
    System.out.println("Closing the connection.");
    if (conn != null) try { conn.close(); } catch (SQLException ignore) {}
  }

  try {
    conn = DriverManager.getConnection(jdbcUrl);
    
    readStatement = conn.createStatement();
    resultSet = readStatement.executeQuery("SELECT Resource FROM Beanstalk;");

    resultSet.first();
    results = resultSet.getString("Resource");
    resultSet.next();
    results += ", " + resultSet.getString("Resource");
    
    resultSet.close();
    readStatement.close();
    conn.close();

  } catch (SQLException ex) {
    // Handle any errors
    System.out.println("SQLException: " + ex.getMessage());
    System.out.println("SQLState: " + ex.getSQLState());
    System.out.println("VendorError: " + ex.getErrorCode());
  } finally {
       System.out.println("Closing the connection.");
      if (conn != null) try { conn.close(); } catch (SQLException ignore) {}
  }
%>
```

Untuk menampilkan hasil, tempatkan kode berikut di bodi bagian HTML dari file JSP.

```
<p>Established connection to RDS. Read first two rows: <%= results %></p>
```

## Pemecahan masalah koneksi basis data
<a name="create_deploy_Java.rds.troubleshooting"></a>

**Coba Amazon Q Developer CLI untuk pemecahan masalah yang dibantu AI**  
 Amazon Q Developer CLI dapat membantu Anda memecahkan masalah lingkungan dengan cepat. Q CLI memberikan solusi dengan memeriksa status lingkungan, meninjau peristiwa, menganalisis log, dan mengajukan pertanyaan klarifikasi. Untuk informasi selengkapnya dan penelusuran terperinci, lihat [Memecahkan Masalah Lingkungan Elastic Beanstalk dengan CLI](https://aws.amazon.com/blogs/devops/troubleshooting-elastic-beanstalk-environments-with-amazon-q-developer-cli/) Pengembang Amazon Q di blog. AWS 

Jika Anda mengalami masalah menghubungkan ke basis data dari dalam aplikasi Anda, tinjau log kontainer web dan basis data.

### Meninjau log
<a name="create_deploy_Java.rds.troubleshooting.logs"></a>

Anda dapat melihat semua log dari lingkungan Elastic Beanstalk Anda dari dalam Eclipse. Jika Anda tidak membuka tampilan AWS Explorer, pilih panah di sebelah AWS ikon oranye di bilah alat, lalu pilih **Tampilkan Tampilan AWS Explorer**. Perluas **AWS Elastic Beanstalk** dan nama lingkungan Anda, dan kemudian buka menu konteks (klik kanan) untuk server. Pilih **Buka di WTP Editor Server**. 

 Pilih tab **Log** tampilan **Server** untuk melihat log agregat dari lingkungan Anda. Untuk membuka log terbaru, pilih tombol **Segarkan** di sudut kanan atas halaman. 

 Gulir ke bawah untuk menemukan log Tomcat di `/var/log/tomcat7/catalina.out`. Jika Anda memuat halaman web dari contoh kami sebelumnya beberapa kali, Anda mungkin melihat berikut ini. 

```
-------------------------------------
/var/log/tomcat7/catalina.out
-------------------------------------
INFO: Server startup in 9285 ms
Loading driver...
Driver loaded!
SQLException: Table 'Beanstalk' already exists
SQLState: 42S01
VendorError: 1050
Closing the connection.
Closing the connection.
```

Semua informasi yang aplikasi web kirim ke output standar muncul di log kontainer web. Di contoh sebelumnya, aplikasi mencoba untuk membuat tabel setiap kali halaman dimuat. Hal ini menyebabkan penangkapan pengecualian SQL di setiap memuat halaman setelah yang pertama. 

Sebagai contoh, sebelumnya dapat diterima. Tetapi, di aplikasi yang sebenarnya, jaga definisi basis data Anda di objek skema, lakukan transaksi dari dalam kelas model, dan koordinasikan permintaan dengan pengendali servlet.

### Menghubungkan ke instans DB RDS
<a name="create_deploy_Java.rds.troubleshooting.connecting"></a>

 Anda dapat terhubung langsung ke instans DB RDS di lingkungan Elastic Beanstalk Anda dengan menggunakan aplikasi klien MySQL. 

 Pertama, buka grup keamanan untuk instans DB RDS Anda untuk mengizinkan lalu lintas dari komputer Anda. 

1. **Buka konsol [Elastic Beanstalk, dan di daftar Wilayah, pilih konsol Elastic](https://console.aws.amazon.com/elasticbeanstalk) Beanstalk.** Wilayah AWS

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

1. Pada panel navigasi, pilih **Konfigurasi**.

1. Di kategori konfigurasi **Basis data**, pilih **Edit**.

1. Di samping **Titik akhir**, pilih tautan konsol Amazon RDS.

1. Di halaman detail instans **Dasbor RDS**, di bawah **Keamanan dan Jaringan**, pilih grup keamanan yang dimulai dengan *RDS* di samping **Grup Keamanan**.
**catatan**  
Basis data mungkin memiliki beberapa entri berlabel **Grup Keamanan**. Gunakan yang pertama, yang dimulai dengan *awseb*, hanya jika Anda memiliki akun lama yang tidak memiliki [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/) (Amazon VPC) default.

1. Di **Detail grup keamanan**, pilih tab **Masuk**, dan kemudian pilih **Edit**.

1. Tambahkan aturan untuk MySQL (port 3306) yang mengizinkan lalu lintas dari alamat IP Anda, ditentukan dalam format CIDR.

1. Pilih **Simpan**. Perubahan segera berlaku.

 Kembali ke detail konfigurasi Elastic Beanstalk untuk lingkungan Anda dan perhatikan titik akhir. Anda akan menggunakan nama domain untuk terhubung ke instans DB RDS. 

 Instal klien MySQL dan mulai koneksi ke basis data di port 3306. Di Windows, instal MySQL Workbench dari beranda MySQL dan ikuti petunjuknya. 

 Di Linux, instal klien MySQL menggunakan manajer paket untuk distribusi Anda. Contoh berikut bekerja di Ubuntu dan turunan Debian lainnya. 

```
// Install MySQL client
$ sudo apt-get install mysql-client-5.5
...
// Connect to database
$ mysql -h aas839jo2vwhwb.cnubrrfwfka8.us-west-2.rds.amazonaws.com -u username -ppassword ebdb
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 117
Server version: 5.5.40-log Source distribution
...
```

Setelah Anda terhubung, Anda dapat menjalankan perintah SQL untuk melihat status basis data, apakah tabel dan baris Anda sudah dibuat, dan informasi lainnya. 

```
mysql> SELECT Resource from Beanstalk;
+--------------+
| Resource     |
+--------------+
| EC2 Instance |
| RDS Instance |
+--------------+
2 rows in set (0.01 sec)
```

# Alat dan sumber daya Java
<a name="create_deploy_Java.resources"></a>

Ada beberapa tempat yang dapat dikunjungi untuk mendapatkan bantuan tambahan ketika mengembangkan aplikasi Java Anda.


****  

|  Sumber Daya  |  Deskripsi  | 
| --- | --- | 
|  [Forum Pengembangan AWS Java](https://forums.aws.amazon.com/forum.jspa?forumID=70)  | Sampaikan pertanyaan Anda dan dapatkan umpan balik.  | 
|  [Pusat Pengembang Java](https://aws.amazon.com/java/)  | Tempat yang lengkap untuk kode sampel, dokumentasi, alat, dan sumber daya tambahan. | 