

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

# Buat Stack dan Jalankan Aplikasi
<a name="create-custom-stack"></a>

**penting**  
 AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

Bagian ini menunjukkan bagaimana menggunakan buku masak Tomcat untuk mengimplementasikan pengaturan tumpukan dasar yang menjalankan aplikasi halaman server Java sederhana (JSP) bernama SimpleJSP. Tumpukan terdiri dari lapisan kustom berbasis TomCustom TomCat bernama dan lapisan MySQL. SimpleJSP dikerahkan ke TomCustom dan menampilkan beberapa informasi dari database MySQL. Jika Anda belum terbiasa dengan dasar-dasar cara menggunakan OpsWorks Stacks, Anda harus membaca [Memulai dengan Chef 11 Linux Stacks](gettingstarted.md) terlebih dahulu.

## Aplikasi SimpleJSP
<a name="create-custom-stack-jsp"></a>

Aplikasi SimpleJSP menunjukkan dasar-dasar cara mengatur koneksi database dan mengambil data dari database MySQL stack.

```
<html>
  <head>
    <title>DB Access</title>
  </head>
  <body>
    <%@ page language="java" import="java.sql.*,javax.naming.*,javax.sql.*" %>
    <%
      StringBuffer output = new StringBuffer();
      DataSource ds = null;
      Connection con = null;
      Statement stmt = null;
      ResultSet rs = null;
      try {
        Context initCtx = new InitialContext();
        ds = (DataSource) initCtx.lookup("java:comp/env/jdbc/mydb");
        con = ds.getConnection();
        output.append("Databases found:<br>");
        stmt = con.createStatement();
        rs = stmt.executeQuery("show databases");
        while (rs.next()) {
          output.append(rs.getString(1));
          output.append("<br>");
        }
      }
      catch (Exception e) {
        output.append("Exception: ");
        output.append(e.getMessage());
        output.append("<br>");
      }
      finally {
        try {
          if (rs != null) {
            rs.close();
          }
          if (stmt != null) {
            stmt.close();
          }
          if (con != null) {
            con.close();
          }
        }
        catch (Exception e) {
          output.append("Exception (during close of connection): ");
          output.append(e.getMessage());
          output.append("<br>");
        }
      }
    %>
    <%= output.toString() %>
  </body>
</html>
```

SimpleJSP menggunakan `DataSource` objek untuk berkomunikasi dengan database MySQL. Tomcat menggunakan data dalam [file konfigurasi konteks aplikasi web](create-custom-configure.md#create-custom-configure-context) untuk membuat dan menginisialisasi `DataSource` objek dan mengikatnya ke nama logis. Kemudian mendaftarkan nama logis dengan layanan penamaan Java Naming and Directory Interface (JNDI). Untuk mendapatkan instance dari `DataSource` objek yang sesuai, Anda membuat `InitialContext` objek dan meneruskan nama logis sumber daya ke `lookup` metode objek, yang mengambil objek yang sesuai. Nama logis contoh SimpleJSP,`java:comp/env/jdbc/mydb`, memiliki komponen berikut:
+ Namespace root,`java`, yang dipisahkan dari sisa nama dengan titik dua (:). 
+ Setiap ruang nama tambahan, dipisahkan oleh garis miring maju (/).

  Tomcat secara otomatis menambahkan sumber daya ke `comp/env` namespace.
+ Nama resource, yang didefinisikan dalam file konfigurasi konteks aplikasi web dan dipisahkan dari ruang nama dengan garis miring ke depan.

  Nama sumber daya untuk contoh ini adalah`jdbc/mydb`. 

Untuk membuat koneksi ke database, SimpleJSP melakukan hal berikut:

1. Memanggil `getConnection` metode `DataSource` objek, yang mengembalikan `Connection` objek.

1. Memanggil `createStatement` metode `Connection` objek untuk membuat `Statement` objek, yang Anda gunakan untuk berkomunikasi dengan database.

1. Berkomunikasi dengan database dengan memanggil `Statement` metode yang sesuai.

   SimpleJSP memanggil `executeQuery` untuk mengeksekusi query SHOW DATABASES, yang mencantumkan database server.

`executeQuery`Metode mengembalikan `ResultSet` objek, yang berisi hasil query. SimpleJSP mendapatkan nama database dari `ResultSet` objek yang dikembalikan dan menggabungkan mereka untuk membuat string output. Akhirnya, contoh menutup`ResultSet`,`Statement`, dan `Connection` objek. Untuk informasi lebih lanjut tentang JSP dan JDBC, lihat [JavaServer Pages Technology](http://docs.oracle.com/javaee/5/tutorial/doc/bnagx.html) dan [JDBC](http://docs.oracle.com/javase/tutorial/jdbc/basics/) Basics, masing-masing.

Untuk menggunakan SimpleJSP dengan tumpukan, Anda harus memasukkannya ke dalam repositori. Anda dapat menggunakan salah satu repositori yang didukung, tetapi untuk menggunakan SimpleJSP dengan tumpukan contoh yang dibahas di bagian berikut, Anda harus memasukkannya ke dalam arsip S3 publik. Untuk informasi tentang cara menggunakan repositori standar lainnya, lihat. [Repositori Buku Masak](workingcookbook-installingcustom-repo.md)

**Untuk menempatkan SimpleJSP di repositori arsip S3**

1. Salin kode contoh ke file bernama `simplejsp.jsp` dan letakkan file dalam direktori bernama`simplejsp`.

1. Buat `.zip` arsip `simplejsp` direktori.

1. Buat bucket Amazon S3 publik, unggah `simplejsp.zip` ke bucket, dan buat file menjadi publik.

   Untuk penjelasan tentang cara melakukan tugas ini, lihat [Memulai Dengan Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/gsg/GetStartedWithS3.html).

## Membuat Tumpukan
<a name="create-custom-stack-stack"></a>

Untuk menjalankan SimpleJSP Anda memerlukan tumpukan dengan lapisan berikut.
+ Lapisan MySQL, yang mendukung server MySQL back end.
+ Lapisan khusus yang menggunakan buku masak Tomcat untuk mendukung instance server Tomcat.

**Untuk membuat tumpukan**

1. Di dasbor OpsWorks Stacks, klik **Add Stack** untuk membuat tumpukan baru dan klik **Advanced >>** untuk menampilkan semua opsi. Konfigurasikan tumpukan sebagai berikut.
   + **Nama —Nama** tumpukan yang ditentukan pengguna; contoh ini menggunakan. TomStack
   + **Gunakan buku masak Chef kustom** —Atur sakelar ke **Ya**, yang menampilkan beberapa opsi tambahan.
   + **Jenis repositori —Git**.
   + **URL Repositori** —. `git://github.com/amazonwebservices/opsworks-example-cookbooks.git`
   + **Custom Chef JSON** —Tambahkan JSON berikut:

     ```
     {
       "tomcat": {
         "base_version": 7,
         "java_opts": "-Djava.awt.headless=true -Xmx256m"
       },
       "datasources": {
         "ROOT": "jdbc/mydb"
       }
     }
     ```

   Untuk opsi yang tersisa, Anda dapat menerima default.

   JSON kustom melakukan hal berikut:
   + Mengganti `['base_version']` atribut buku masak Tomcat untuk mengatur versi Tomcat ke 7; nilai defaultnya adalah 6.
   + Mengganti `['java_opts']` atribut buku masak Tomcat untuk menentukan bahwa instance tanpa kepala dan menyetel ukuran heap maksimum JVM ke 256MB; nilai default tidak menetapkan opsi untuk instance yang menjalankan Amazon Linux.
   + Menentukan nilai `['datasources]` atribut, yang menetapkan nama sumber daya JDBC (jdbc/mydb) ke nama konteks aplikasi web (ROOT), seperti yang dibahas dalam. [kucing jantan: :konteks](create-custom-configure.md#create-custom-configure-context)

     Atribut terakhir ini tidak memiliki nilai default; Anda harus mengaturnya dengan JSON kustom.  
![\[Configuration Management interface showing Chef version options and custom JSON input field.\]](http://docs.aws.amazon.com/id_id/opsworks/latest/userguide/images/tom_add_stack.png)

1. Klik **Tambahkan layer**. Untuk **tipe Layer**, pilih **MySQL**. Kemudian klik **Add Layer**.

1. Klik **Instans** di panel navigasi dan kemudian klik **Tambahkan instance**. Klik **Add Instance** untuk menerima default. Pada baris untuk contoh, klik **mulai**.

1. Kembali ke halaman **Layers** dan klik **\$1 Layer** untuk menambahkan layer. Untuk **jenis Layer**, klik **Custom** .s Contoh menggunakan **TomCustom** dan **tomcustom** sebagai nama layer dan nama pendek, masing-masing.  
![\[Add Layer form with Custom layer type, Name, and Short name fields for creating a customized layer.\]](http://docs.aws.amazon.com/id_id/opsworks/latest/userguide/images/tom_add_custom_layer.png)

1. Pada halaman **Layers**, untuk layer kustom, klik **Resep** dan kemudian klik **Edit**. Di bawah **Resep Koki Kustom**, tetapkan resep buku masak Tomcat ke acara siklus hidup lapisan, sebagai berikut:
   + Untuk **Pengaturan**, ketik **tomcat::setup** dan klik **\$1**.
   + Untuk **Konfigurasi**, ketik **tomcat::configure** dan klik **\$1**.
   + Untuk **Deploy**, ketik **tomcat::deploy** dan klik **\$1**. Kemudian klik **Simpan**.

     .  
![\[Custom Chef Recipes interface showing setup, configure, and deploy steps with options.\]](http://docs.aws.amazon.com/id_id/opsworks/latest/userguide/images/tom_events.png)

1. Klik **Aplikasi** di panel navigasi dan kemudian klik **Tambahkan aplikasi**. Tentukan opsi berikut, lalu klik **Tambahkan Aplikasi**:
   + **Nama —Nama** aplikasi; contohnya menggunakan SimpleJSP dan nama pendek yang dihasilkan oleh OpsWorks Stacks adalah simplejsp.
   + **Jenis aplikasi** —Atur opsi ini ke **Lainnya**.

     OpsWorks Stacks secara otomatis menerapkan tipe aplikasi standar ke instance server terkait. Jika Anda menyetel **jenis Aplikasi** ke yang lain, OpsWorks Stacks cukup menjalankan resep Deploy, dan memungkinkan mereka menangani penerapan.
   + **Root dokumen** —Atur opsi ini ke**ROOT**.

     Nilai **root Document** menentukan nama konteks.
   + **Jenis repositori** **—Atur opsi ini ke Arsip S3.**
   + **URL Repositori** —Setel ini ke URL Amazon S3 aplikasi yang Anda buat sebelumnya.

   Gunakan pengaturan default untuk opsi lain.  
![\[Application settings form with fields for name, app type, document root, and source details.\]](http://docs.aws.amazon.com/id_id/opsworks/latest/userguide/images/tom_app.png)

1. Gunakan halaman **Instances** untuk menambahkan instance ke TomCustom layer dan memulainya. OpsWorks Stacks secara otomatis menjalankan resep Deploy pada instance baru setelah resep Setup selesai, jadi memulai instance juga menyebarkan SimpleJSP.

1. Saat TomCustom instans sedang online, klik nama instance pada halaman **Instances** untuk melihat detailnya. Salin alamat IP publik. Kemudian buat URL sebagai berikut: http:///tc/*publicIP*. *appname.jsp* Sebagai contoh, URL ini akan terlihat seperti**http://50.218.191.172/tc/simplejsp.jsp**.
**catatan**  
URL Apache yang meneruskan permintaan ke Tomcat diatur ke atribut default`['tomcat']['apache_tomcat_bind_path']`,. `/tc/` Root dokumen SimpleJSP diatur ke `ROOT` mana merupakan nilai khusus yang diselesaikan. `/` Oleh karena itu URL adalah “... /tc/simplejsp.jsp”.

1. Tempel URL dari langkah sebelumnya ke browser Anda. Anda akan melihat yang berikut ini:

   ```
   Databases found:
   information_schema
   simplejsp
   test
   ```
**catatan**  
Jika tumpukan Anda memiliki instance MySQL OpsWorks , Stacks secara otomatis membuat database untuk setiap aplikasi, dinamai dengan nama pendek aplikasi.