使用 Auto Scaling 能從 IBM 網路應用程式伺服器遷移到 Amazon EC2 上的阿帕奇 - AWS Prescriptive Guidance

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Auto Scaling 能從 IBM 網路應用程式伺服器遷移到 Amazon EC2 上的阿帕奇

由容凱文 (AWS) 創作

R 類型 平台重建

來源:應用程式

目標:在已啟用 Auto Scaling 的 Amazon EC2 執行個體上的 Apache

建立者:AWS

:环境 PoC 或試驗

:Technologies 網站與網路應用程式;移轉

工作負載:開放原始碼;IBM

:AWS 服務:Amazon EC2

Summary

此模式提供指導,可在 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上將 Java 應用程式從 IBM WebSphere 應用程式伺服器遷移到 Apache Tomcat,且已啟用 Amazon EC2 Auto Scaling 執行個體。 

通過使用這種模式,您可以實現:

  • 減少 IBM 授權成本

  • 使用多個可用區部署的高可用性

  • Amazon EC2 Auto Scaling 改善了應用程式恢復能力

先決條件和限制

先決條件

  • Java 應用程式 (版本 7.x或 8.x)應該在 LAMP 堆棧中開發。

  • 目標狀態是在 Linux 主機上託管 Java 應用程序。此模式已經成功地在 Red Hat Enterprise Linux (RHEL) 7 環境中實作。其他 Linux 發行版可以遵循這種模式,但應該引用 Apache Tomcat 發行版的配置。

  • 您應該了解 Java 應用程序的依賴關係。

  • 您必須具有 Java 應用程式原始程式碼的存取權,才能進行變更。

限制與重新平台變更

  • 您應該瞭解企業歸檔 (EAR) 元件,並確認所有程式庫都封裝在 Web 元件 WAR 檔案中。您需要設定Apache Maven 的戰爭插件並生成 WAR 文件工件。

  • 當使用阿帕奇 Tomcat 8 時,存在 servlet-api.jar 和應用程序包內置的 jar 文件之間的已知衝突。若要解決此問題,請從應用程式套件刪除 servlet-api.jar。

  • 您必須設定位於類別路徑阿帕奇 Tomcat 配置。依預設,JAR 程式庫不會載入目錄中。或者,您可以在 src/main/資源下部署所有資源

  • 檢查 Java 應用程序中的任何硬編碼上下文根目錄,並更新新的上下文根目錄。

  • 要設置 JVM 運行時選項,您可以創建配置文件 setenv.sh 在 Apache 的 Tomcat bin 文件夾; 例如,JAVA_HOME等等。 

  • 身份驗證是在容器級別進行配置,並在 Apache Tomcat 配置中設置為領域。已針對下列三個範圍中的任何一個建立驗證: 

    • JDBC 資料庫範圍查找 JDBC 驅動程序訪問的關係數據庫中的用戶。

    • DataSource 資料庫範圍查找 JNDI 訪問的數據庫中的用戶。

    • JNDI 目錄範圍會查詢 JNDI 提供者存取的輕量型目錄存取通訊協定 (LDAP) 目錄中的使用者。 查詢需要: 

      • LDAP 連線詳細資料:使用者搜尋基礎、搜尋篩選器、角色基礎、角色篩選器 

      • 金鑰 JNDI 目錄範圍:連線至 LDAP、認證使用者,以及擷取使用者屬於其成員的所有群組

  • 授權:如果容器具有以角色為基礎的授權檢查 web.xml 中的授權約束,則必須定義 Web 資源,並與約束中定義的角色進行比較。如果 LDAP 沒有群組角色對應,您必須 <security-role-ref> 在 web.xml 中設定屬性才能達到群組角色對應。若要查看組態文件的範例,請參閱Oracle 文件。 

  • 資料庫連線:使用 Amazon Relative Database Service (Amazon RDS) 端點 URL 和連線詳細資訊,在 Apache Tomcat 中建立資源定義。使用 JNDI 查閱更新應用程式程式碼,以參考 DataSource。在 WebSphere 中定義的現有數據庫連接將不起作用,因為它使用 WebSphere 的 JNDI 名稱。您可以 <resource-ref> 在 web.xml 中新增具有 JNDI 名稱和 DataSource 類型定義的項目。若要查看範例組態文件,請參閱阿帕奇 Tomcat 文件

  • 記錄:默認情況下,Apache Tomcat 日誌到控制台或日誌文件。您可以啟用範圍層次追蹤,方法是更新記錄. 性質(請參閱登入 Tomcat。如果您使用 Apache Log4j 將日誌追加到文件中,則必須下載 tomcat-juli 並將其添加到類別路徑

  • 工作階段管理:如果您要保留 IBM WebSeal 以進行應用程式負載平衡和工作階段管理,則不需要變更。如果您在 AWS 上使用 Application Load Balancer 或 Network Load Balancer 來取代 IBM WebSeal 元件,則必須使用具有 Memcached 叢集的 Amazon ElastiCache 執行個體來設定工作階段管理,並將 Apache Tomcat 設定為使用開放原始碼工作階段管理。 

  • 如果您使用的是 IBM WebSeal 轉發代理,則必須在 AWS 上設定新的 Network Load Balancer。使用 Network Load Balancer 提供的 IP 進行 WebSeal 結合配置。

  • SSL 組態:建議您將 Secure Sockets Layer (SSL) 用於端對端通訊。要在 Apache Tomcat 中設置 SSL Server 配置,請依照阿帕奇 Tomcat 文件。 

Architecture

來源堆疊

  • IBM Web Sphere 應用程式伺服器

目標堆疊

目標架構

Tools

Epics

任務描述所需技能
建立虛擬私有雲端 (VPC)。

建立子網路。

如有必要,請建立路由表。

建立網路存取控制清單 (ACL)。

設定 AWS Direct Connect 線或公司 VPN 連線。

任務描述所需技能
重構應用程序構建 Maven 配置來生成 WAR 工件。

重構 Apache Tomcat 中的應用程序依賴數據源。

重構應用程序源代碼以在 Apache Tomcat 中使用 JNDI 名稱。

將戰爭工件部署到阿帕奇的雄貓。

完成應用程式驗證與測試。

任務描述所需技能
設定公司防火牆以允許連線到相依性服務。

設定公司防火牆以允許使用者存取 AWS 上的 Elastic Load Balancing。

任務描述所需技能
在 EC2 執行個體上建立和部署應用程式。

為 Memcached 叢集創建一個用於會話管理的 Amazon ElastiCache for Memcached。

建立後端資料庫的 Amazon RDS 異地同步備份執行個體。

建立 SSL 憑證,並將其匯入 AWS Certificate Manager (ACM)。

在負載平衡器上安裝 SSL 憑證。

安裝安裝 SSL 憑證的 Apache Tomcat 伺服器。

完成應用程式驗證與測試。

任務描述所需技能
關機現有基礎結構。

將資料庫從生產環境還原到 Amazon RDS。

透過進行 DNS 變更來減少應用程式。

References

教學和影片