Menerapkan Aplikasi Java - AWS OpsWorks

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

Menerapkan Aplikasi Java

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 Support Tim di AWS re:Post atau melalui AWS Dukungan Premium.

Topik berikut menjelaskan cara menerapkan aplikasi ke instance lapisan Java App Server. Contohnya adalah untuk aplikasi JSP, tetapi pada dasarnya Anda dapat menggunakan prosedur yang sama untuk menginstal jenis aplikasi Java lainnya.

Anda dapat menyebarkan halaman JSP dari salah satu repositori yang didukung. Jika Anda ingin menyebarkan file WAR, perhatikan bahwa AWS OpsWorks Stacks secara otomatis mengekstrak file WAR yang disebarkan dari arsip Amazon S3 atau HTTP, tetapi tidak dari repositori Git atau Subversion. Jika Anda ingin menggunakan Git atau Subversion untuk file WAR, Anda dapat melakukan salah satu hal berikut:

  • Simpan arsip yang diekstraksi di repositori.

  • Simpan file WAR di repositori dan gunakan hook penyebaran Chef untuk mengekstrak arsip, seperti yang dijelaskan dalam contoh berikut.

Anda dapat menggunakan kait penerapan Chef untuk menjalankan aplikasi Ruby yang disediakan pengguna pada instance di salah satu dari empat tahap penerapan. Nama aplikasi menentukan tahapan. Berikut ini adalah contoh aplikasi Ruby bernamabefore_migrate.rb, yang mengekstrak file WAR yang telah digunakan dari repositori Git atau Subversion. Nama tersebut mengaitkan aplikasi dengan hook penerapan Checkout sehingga berjalan di awal operasi penyebaran, setelah kode diperiksa tetapi sebelum migrasi. Untuk informasi selengkapnya tentang cara menggunakan contoh ini, lihatMenggunakan Chef Deployment Hooks.

::Dir.glob(::File.join(release_path, '*.war')) do |archive_file| execute "unzip_#{archive_file}" do command "unzip #{archive_file}" cwd release_path end end
catatan

Saat Anda menerapkan pembaruan ke aplikasi JSP, Tomcat mungkin tidak mengenali pembaruan dan sebagai gantinya terus menjalankan versi aplikasi yang ada. Hal ini dapat terjadi, misalnya, jika Anda menerapkan aplikasi Anda sebagai file.zip yang hanya berisi halaman JSP. Untuk memastikan bahwa Tomcat menjalankan versi yang paling baru digunakan, direktori root proyek harus menyertakan direktori WEB-INF yang berisi file. web.xml web.xmlFile dapat berisi berbagai konten, tetapi berikut ini cukup untuk memastikan bahwa Tomcat mengenali pembaruan dan menjalankan versi aplikasi yang saat ini digunakan. Anda tidak perlu mengubah versi untuk setiap pembaruan. Tomcat akan mengenali pembaruan meskipun versinya tidak berubah.

<context-param> <param-name>appVersion</param-name> <param-value>0.1</param-value> </context-param>

Menerapkan Aplikasi JSP

Untuk menerapkan aplikasi JSP, tentukan nama dan informasi repositori. Anda juga dapat menentukan domain dan pengaturan SSL secara opsional. Untuk informasi selengkapnya tentang cara membuat aplikasi, lihatMenambahkan Aplikasi. Prosedur berikut menunjukkan cara membuat dan menyebarkan halaman JSP sederhana dari arsip Amazon S3 publik. Untuk informasi tentang cara menggunakan jenis repositori lain, termasuk arsip Amazon S3 pribadi, lihat. Sumber Aplikasi

Contoh berikut menunjukkan halaman JSP, yang hanya menampilkan beberapa informasi sistem.

<%@ page import="java.net.InetAddress" %> <html> <body> <% java.util.Date date = new java.util.Date(); InetAddress inetAddress = InetAddress.getLocalHost(); %> The time is <% out.println( date ); out.println("<br>Your server's hostname is "+inetAddress.getHostName()); %> <br> </body> </html>
catatan

Prosedur berikut mengasumsikan bahwa Anda sudah terbiasa dengan dasar-dasar membuat tumpukan, menambahkan instance ke lapisan, dan sebagainya. Jika Anda baru mengenal AWS OpsWorks Stacks, Anda harus melihatnya Memulai dengan Chef 11 Linux Stacks terlebih dahulu.

Untuk menyebarkan halaman JSP dari arsip Amazon S3
  1. Buat tumpukan dengan lapisan Java App Server, tambahkan instance 24/7 ke layer, dan mulai.

  2. Salin kode ke file bernamasimplejsp.jsp, letakkan file di folder bernamasimplejsp, dan buat .zip arsip folder. Namanya sewenang-wenang; Anda dapat menggunakan nama file atau folder apa pun yang Anda inginkan. Anda juga dapat menggunakan jenis arsip lain, termasuk file gzip, bzip2, tarball, atau Java WAR. Perhatikan bahwa AWS OpsWorks Stacks tidak mendukung tarball yang tidak terkompresi. Untuk menyebarkan beberapa halaman JSP, sertakan mereka dalam arsip yang sama.

  3. Unggah arsip ke bucket Amazon S3 dan buat file menjadi publik. Salin URL file untuk digunakan nanti. Untuk informasi selengkapnya tentang cara membuat bucket dan mengunggah file, buka Memulai Dengan Amazon Simple Storage Service.

  4. Tambahkan aplikasi ke tumpukan dan tentukan pengaturan berikut:

    • NamaSimpleJSP

    • Jenis aplikasi - Java

    • Jenis repositori - Http Archive

    • URL Repositori — URL Amazon S3 dari file arsip Anda.

    Gunakan nilai default untuk setelan yang tersisa, lalu klik Tambah Aplikasi untuk membuat aplikasi.

  5. Menerapkan aplikasi ke instance Java App Server.

Anda sekarang dapat pergi ke URL aplikasi dan melihat aplikasi. Jika Anda belum menentukan domain, Anda dapat membuat URL dengan menggunakan alamat IP publik instans atau nama DNS publiknya. Untuk mendapatkan alamat IP publik instans atau nama DNS publik, buka konsol AWS OpsWorks Stacks dan klik nama instans pada halaman Instances untuk membuka halaman detailnya.

URL lainnya bergantung pada nama pendek aplikasi, yang merupakan nama huruf kecil yang dihasilkan AWS OpsWorks Stacks dari nama aplikasi yang Anda tentukan saat membuat aplikasi. Misalnya nama pendek SimpleJSP adalah simplejsp. Anda bisa mendapatkan nama pendek aplikasi dari halaman detailnya.

  • Jika nama singkatnyaroot, Anda dapat menggunakan salah satu http://public_DNS/appname.jsp atauhttp://public_IP/appname.jsp.

  • Jika tidak, Anda dapat menggunakan salah satu http://public_DNS/app_shortname/appname.jsp atauhttp://public_IP/app_shortname/appname.jsp.

Jika Anda telah menentukan domain untuk aplikasi, URL-nya adalahhttp://domain/appname.jsp.

URL untuk contoh akan menjadi sesuatu sepertihttp://192.0.2.0/simplejsp/simplejsp.jsp.

Jika Anda ingin menerapkan beberapa aplikasi ke instance yang sama, sebaiknya jangan gunakan root sebagai nama pendek. Ini dapat menyebabkan konflik URL yang mencegah aplikasi berfungsi dengan baik. Sebagai gantinya, tetapkan nama domain yang berbeda untuk setiap aplikasi.

Menyebarkan Aplikasi JSP dengan Back-End Database

Halaman JSP dapat menggunakan DataSource objek JDBC untuk terhubung ke database back end. Anda membuat dan menerapkan aplikasi semacam itu dengan menggunakan prosedur di bagian sebelumnya, dengan satu langkah tambahan untuk mengatur koneksi.

Halaman JSP berikut menunjukkan bagaimana menghubungkan ke DataSource objek.

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

AWS OpsWorks Stacks membuat dan menginisialisasi DataSource objek, mengikatnya ke nama logis, dan mendaftarkan nama dengan layanan penamaan Java Naming and Directory Interface (JNDI). Nama logis lengkapnya adalahjava:comp/env/user-assigned-name. Anda harus menentukan bagian nama yang ditetapkan pengguna dengan menambahkan atribut JSON khusus ke konfigurasi tumpukan dan atribut penerapan untuk menentukan ['opsworks_java']['datasources'] atribut, seperti yang dijelaskan di bawah ini.

Untuk menyebarkan halaman JSP yang terhubung ke database MySQL
  1. Buat tumpukan dengan lapisan Java App Server, tambahkan instance 24/7 ke setiap lapisan, dan mulai.

  2. Tambahkan lapisan database ke tumpukan. Detailnya tergantung pada database mana yang Anda gunakan.

    Untuk menggunakan instance MySQL sebagai contoh, tambahkan layer MySQL ke tumpukan, tambahkan instance 24/7 ke layer, dan mulai.

    Untuk menggunakan instance Amazon RDS (MySQL) sebagai contoh:

    • Tentukan mesin database MySQL untuk contoh tersebut.

    • Tetapkan grup keamanan AWS- OpsWorks -DB-Master-Server (security_group_id) dan AWS - -Java-App-Server (security_group_id) ke instance. OpsWorks AWS OpsWorks Stacks membuat grup keamanan ini untuk Anda saat Anda membuat tumpukan pertama di wilayah tersebut.

    • Buat database bernamasimplejspdb.

    • Pastikan bahwa nama pengguna dan kata sandi master tidak mengandung & atau karakter lain yang dapat menyebabkan kesalahan Tomcat.

      Khususnya selama startup Tomcat harus mengurai file konteks aplikasi web, yang merupakan file XMLyang menyertakan kata sandi utama dan nama pengguna. Jika salah satu string menyertakan & karakter, parser XMLmemperlakukannya sebagai entitas XHTML yang cacat dan melempar pengecualian parsing, yang mencegah Tomcat memulai. Untuk informasi selengkapnya tentang file konteks aplikasi web, lihatkucing jantan: :konteks.

    • Tambahkan driver MySQL ke lapisan Java App Server.

    • Daftarkan instance RDS dengan tumpukan Anda.

    Untuk informasi selengkapnya tentang cara menggunakan instans Amazon RDS dengan AWS OpsWorks Stacks, lihat. Lapisan Layanan Amazon RDS

  3. Salin kode contoh ke file bernamasimplejspdb.jsp, letakkan file di folder bernamasimplejspdb, dan buat .zip arsip folder. Namanya sewenang-wenang; Anda dapat menggunakan nama file atau folder apa pun yang Anda inginkan. Anda juga dapat menggunakan jenis arsip lain, termasuk gzip, bzip2, atau tarball. Untuk menyebarkan beberapa halaman JSP, sertakan mereka dalam arsip yang sama. Untuk informasi tentang cara menerapkan aplikasi dari jenis repositori lain, lihat. Sumber Aplikasi

  4. Unggah arsip ke bucket Amazon S3 dan buat file menjadi publik. Salin URL file untuk digunakan nanti. Untuk informasi selengkapnya tentang cara membuat bucket dan mengunggah file, buka Memulai Dengan Amazon Simple Storage Service.

  5. Tambahkan aplikasi ke tumpukan dan tentukan pengaturan berikut:

    • NamaSimpleJSPDB

    • Jenis aplikasi - Java

    • Jenis sumber dataOpsWorks(untuk instance MySQL) atau RDS (untuk instans Amazon RDS).

    • Instance Database - Instance MySQL yang Anda buat sebelumnya, yang biasanya bernama db-master1 (mysql), atau instance Amazon RDS, yang akan diberi nama db_instance_name (mysql).

    • Nama basis datasimplejspdb.

    • Jenis repositori - Http Archive

    • URL Repositori — URL Amazon S3 dari file arsip Anda.

    Gunakan nilai default untuk setelan yang tersisa, lalu klik Tambah Aplikasi untuk membuat aplikasi.

  6. Tambahkan atribut JSON kustom berikut ke atribut konfigurasi tumpukan, di mana simplejspdb adalah nama pendek aplikasi.

    { "opsworks_java": { "datasources": { "simplejspdb": "jdbc/mydb" } } }

    AWS OpsWorks Stacks menggunakan pemetaan ini untuk menghasilkan file konteks dengan informasi database yang diperlukan.

    Untuk informasi selengkapnya tentang cara menambahkan atribut JSON kustom ke atribut konfigurasi tumpukan, lihatMenggunakan JSON Kustom.

  7. Menerapkan aplikasi ke instance Java App Server.

Anda sekarang dapat menggunakan URL aplikasi untuk melihat aplikasi. Untuk deskripsi tentang cara membuat URL, lihatMenerapkan Aplikasi JSP.

URL untuk contoh akan menjadi sesuatu sepertihttp://192.0.2.0/simplejspdb/simplejspdb.jsp.

catatan

datasourcesAtribut dapat berisi beberapa atribut. Setiap atribut diberi nama dengan nama pendek aplikasi dan disetel ke bagian yang ditetapkan pengguna yang sesuai dari nama logis. Jika Anda memiliki beberapa aplikasi, Anda dapat menggunakan nama logis terpisah, yang memerlukan JSON khusus seperti berikut ini.

{ "opsworks_java": { "datasources": { "myjavaapp": "jdbc/myappdb", "simplejsp": "jdbc/myjspdb", ... } } }