Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bermigrasi dari Server WebSphere Aplikasi IBM ke Apache Tomcat di Amazon EC2 dengan Auto Scaling
Kevin Yung dan Afroz Khan, Amazon Web Services
Ringkasan
Pola ini memberikan panduan untuk memigrasikan aplikasi Java dari IBM WebSphere Application Server ke Apache Tomcat pada instans Amazon Elastic Compute Cloud (Amazon EC2) dengan Amazon Auto EC2 Scaling diaktifkan.
Dengan menggunakan pola ini, Anda dapat mencapai:
Pengurangan biaya lisensi IBM
Ketersediaan tinggi menggunakan penyebaran Multi-AZ
Peningkatan ketahanan aplikasi dengan Amazon EC2 Auto Scaling
Prasyarat dan batasan
Prasyarat
Aplikasi Java (versi 7. x atau 8. x) harus dikembangkan di tumpukan LAMP.
Status target adalah untuk meng-host aplikasi Java di host Linux. Pola ini telah berhasil diterapkan di lingkungan Red Hat Enterprise Linux (RHEL) 7. Distribusi Linux lainnya dapat mengikuti pola ini, tetapi konfigurasi distribusi Apache Tomcat harus direferensikan.
Anda harus memahami dependensi aplikasi Java.
Anda harus memiliki akses ke kode sumber aplikasi Java untuk membuat perubahan.
Keterbatasan dan perubahan replatforming
Anda harus memahami komponen arsip perusahaan (EAR) dan memverifikasi bahwa semua pustaka dikemas dalam file WAR komponen web. Anda perlu mengkonfigurasi Plugin Apache Maven WAR
dan menghasilkan artefak file WAR. Saat menggunakan Apache Tomcat 8, ada konflik yang diketahui antara servlet-api.jar dan paket aplikasi built-in file jar. Untuk mengatasi masalah ini, hapus servlet-api.jar dari paket aplikasi.
Anda harus mengkonfigurasi WEB-INF/sumber daya yang terletak di classpath konfigurasi Apache Tomcat.
Secara default, pustaka JAR tidak dimuat dalam direktori. Atau, Anda dapat menyebarkan semua sumber daya di bawahsrc/main/resources. Periksa akar konteks hard-code dalam aplikasi Java, dan perbarui root konteks baru Apache Tomcat.
Untuk mengatur opsi runtime JVM, Anda dapat membuat file konfigurasi setenv.sh di folder bin Apache Tomcat; misalnya, JAVA_OPTS, JAVA_HOME, dll.
Otentikasi dikonfigurasi pada tingkat kontainer dan diatur sebagai ranah dalam konfigurasi Apache Tomcat. Otentikasi dibuat untuk salah satu dari tiga bidang berikut:
JDBC Database Realm
mencari pengguna dalam database relasional yang diakses oleh driver JDBC. DataSource Database Realm
mencari pengguna dalam database yang diakses oleh JNDI. JNDI Directory Realm
mencari pengguna di direktori Lightweight Directory Access Protocol (LDAP) yang diakses oleh penyedia JNDI. Pencarian membutuhkan: Detail koneksi LDAP: basis pencarian pengguna, filter pencarian, basis peran, filter peran
Kunci JNDI Directory Realm: Menghubungkan ke LDAP, mengautentikasi pengguna, dan mengambil semua grup di mana pengguna menjadi anggota
Otorisasi: Dalam kasus wadah dengan otorisasi berbasis peran yang memeriksa batasan otorisasi di web.xml, sumber daya web harus didefinisikan dan dibandingkan dengan peran yang ditentukan dalam batasan. Jika LDAP tidak memiliki pemetaan peran grup, Anda harus menyetel atribut < security-role-ref > di web.xml untuk mencapai pemetaan peran grup. Untuk melihat contoh dokumen konfigurasi, lihat dokumentasi Oracle
. Koneksi database: Buat definisi sumber daya di Apache Tomcat dengan URL titik akhir Amazon Relational Database Service (Amazon RDS) dan detail koneksi. Perbarui kode aplikasi untuk referensi DataSource dengan menggunakan pencarian JNDI. Koneksi DB yang ada yang didefinisikan tidak WebSphere akan berfungsi, karena menggunakan nama WebSphere JNDI. Anda dapat menambahkan <resource-ref>entri di web.xml dengan nama JNDI dan definisi DataSource tipe. Untuk melihat contoh dokumen konfigurasi, lihat dokumentasi Apache Tomcat
. Logging: Secara default, Apache Tomcat log ke konsol atau ke file log. Anda dapat mengaktifkan penelusuran tingkat alam dengan memperbarui logging.properties (lihat Logging in Tomcat).
Jika Anda menggunakan Apache Log4j untuk menambahkan log ke file, Anda harus mengunduh tomcat-Juli dan menambahkannya ke classpath. Manajemen sesi: Jika Anda mempertahankan IBM WebSeal untuk penyeimbangan beban aplikasi dan manajemen sesi, tidak diperlukan perubahan. Jika Anda menggunakan Application Load Balancer atau Network Load Balancer di AWS untuk mengganti komponen IBM WebSeal, Anda harus menyiapkan manajemen sesi dengan menggunakan instans ElastiCache Amazon dengan klaster Memcached dan menyiapkan Apache Tomcat untuk menggunakan manajemen sesi sumber terbuka.
Jika Anda menggunakan proxy forward IBM WebSeal, Anda harus menyiapkan Network Load Balancer baru di AWS. Gunakan yang IPs disediakan oleh Network Load Balancer untuk konfigurasi persimpangan WebSeal.
Konfigurasi SSL: Kami menyarankan Anda menggunakan Secure Sockets Layer (SSL) untuk end-to-end komunikasi. Untuk mengatur konfigurasi server SSL di Apache Tomcat, ikuti petunjuk dalam dokumentasi Apache
Tomcat.
Arsitektur
Tumpukan teknologi sumber
Server WebSphere Aplikasi IBM
Tumpukan teknologi target
Arsitekturnya menggunakan Elastic Load Balancing (versi 2). Jika Anda menggunakan IBM WebSeal untuk manajemen Identifikasi dan penyeimbangan beban, Anda dapat memilih Network Load Balancer di AWS untuk diintegrasikan dengan proxy balik IBM WebSeal.
Aplikasi Java dikerahkan ke server aplikasi Apache Tomcat, yang berjalan pada EC2 instance dalam grup Amazon Auto Scaling. EC2 Anda dapat menyiapkan kebijakan penskalaan berdasarkan CloudWatch metrik Amazon seperti pemanfaatan CPU.
Jika Anda menghentikan penggunaan IBM WebSeal untuk load balancing, Anda dapat menggunakan Amazon untuk Memcached ElastiCache untuk manajemen sesi.
Untuk database back-end, Anda dapat menerapkan Ketersediaan Tinggi (Multi-AZ) untuk Amazon RDS dan memilih jenis mesin database.
Arsitektur target

Alat
Apache Tomcat (versi 7. x atau 8. x)
RHEL 7 atau Centos 7
Epik
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Buat cloud pribadi virtual (VPC). | ||
Buat subnet. | ||
Buat tabel routing jika perlu. | ||
Buat daftar kontrol akses jaringan (ACLs). | ||
Siapkan AWS Direct Connect atau koneksi VPN perusahaan. |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Refactor aplikasi membangun konfigurasi Maven untuk menghasilkan artefak WAR. | ||
Refactor sumber data ketergantungan aplikasi di Apache Tomcat. | ||
Refactor kode sumber aplikasi untuk menggunakan nama JNDI di Apache Tomcat. | ||
Menyebarkan artefak WAR ke Apache Tomcat. | ||
Validasi dan tes aplikasi lengkap. |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Konfigurasikan firewall perusahaan untuk memungkinkan koneksi ke layanan ketergantungan. | ||
Konfigurasikan firewall perusahaan untuk memungkinkan akses pengguna akhir ke Elastic Load Balancing di AWS. |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Membuat dan menyebarkan aplikasi pada sebuah EC2 instance. | ||
Buat Amazon ElastiCache untuk klaster Memcached untuk manajemen sesi. | ||
Buat instans Amazon RDS Multi-AZ untuk database backend. | ||
Buat sertifikat SSL dan impor ke AWS Certificate Manager (ACM). | ||
Instal sertifikat SSL pada penyeimbang beban. | ||
Instal sertifikat SSL untuk server Apache Tomcat. | ||
Validasi dan tes aplikasi lengkap. |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Matikan infrastruktur yang ada. | ||
Kembalikan database dari produksi ke Amazon RDS. | ||
Potong aplikasi dengan membuat perubahan DNS. |
Sumber daya terkait
Referensi
Tutorial dan video