Bermigrasi dari Server WebSphere Aplikasi IBM ke Apache Tomcat di Amazon EC2 dengan Auto Scaling - AWS Prescriptive Guidance

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

Arsitektur target

AWS Cloud architecture with VPC, two availability zones, load balancer, and database components.

Alat

Epik

TugasDeskripsiKeterampilan 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.
TugasDeskripsiKeterampilan 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.
TugasDeskripsiKeterampilan 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.
TugasDeskripsiKeterampilan 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.
TugasDeskripsiKeterampilan yang dibutuhkan
Matikan infrastruktur yang ada.
Kembalikan database dari produksi ke Amazon RDS.
Potong aplikasi dengan membuat perubahan DNS.

Referensi

Tutorial dan video