建立自訂 Tomcat 伺服器 Layer - AWS OpsWorks

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

建立自訂 Tomcat 伺服器 Layer

重要

該 AWS OpsWorks Stacks 服務於 2024 年 5 月 26 日終止使用壽命,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載移轉至其他解決方案。如果您對移轉有任何疑問,請透過 AWS Re: post 或透過進AWS 階 Support 與 AWS Support 團隊聯絡。

注意

本主題說明如何實作 Linux 堆疊的自訂 layer。不過,基本原則和部分程式碼經改寫後也能用於實作 Windows 堆疊的自訂 layer,特別是應用程式部署一節的內容。

在 AWS OpsWorks Stacks 實例上使用非標準包最簡單的方法是擴展現有層。但是,此方法會在 layer 的執行個體上同時安裝及執行標準和非標準套件,而這並非是您所想要的。有一種要求較高也更強大的方式,便是實作自訂 layer,讓您幾乎可以完全控制 layer 的執行個體,包含下列項目:

  • 要安裝的套件

  • 每個套件的設定方式

  • 從儲存庫將應用程式部署到執行個體的方式

無論您是使用主控台還是 API,您建立和管理自訂 layer 的方式與其他 layer 幾乎一模一樣,如自訂 Layer所述。但是,自訂 layer 的內建配方會執行一些非常基本的任務,例如安裝 Ganglia 用戶端以將指標報告給 Ganglia 主機。若要使自訂 layer 執行個體不僅具有最低限度的功能,您必須使用 Chef 配方和相關檔案實作一或多個自訂技術指南,以處理安裝及設定套件、部署應用程式等任務。但您不一定需要從頭開始實作所有東西。例如,若您在其中一個標準儲存庫中存放應用程式,您可以使用內建的部署配方處理在 layer 的執行個體上安裝應用程式的大部分工作。

注意

如果您是第一次使用 Chef,建議您先閱讀技術指南 101,該教學介紹如何實作技術指南以執行各種常見任務的基本概念。

下列演練說明如何實作支援 Tomcat 應用程式伺服器的自訂 layer。layer 是以名為 Tomcat 的自訂技術指南為基礎,其中包含處理套件安裝、部署等的配方。演練包含摘錄自 Tomcat 技術指南的摘要。您可以從其GitHub 存儲庫下載完整的食譜。若您不熟悉 Opscode Chef,建議您先閱讀技術指南和配方

注意

AWS OpsWorks 堆棧包括用於生產使用的全功能 Java 應用程序服務器層。Tomcat 技術指南的目的是示範如何實作自訂 layer,使其支援 Tomcat 限制版本 (不包含諸如 SSL 等功能)。如需完整實作的範例,請參閱內建的 opsworks_java 技術指南。

Tomcat 技術指南支援執行個體具有下列特性的自訂 layer:

  • 他們支援使用 Apache 前端的 Tomcat Java 應用程式伺服器。

  • Tomcat 被配置為允許應用程序使用 JDBC DataSource 對象連接到一個單獨的 MySQL 實例,它作為一個後端數據存儲。

此專案的技術指南涉及幾項主要元件:

  • 屬性檔案包含各種配方會使用的組態設定。

  • 安裝配方會指派給 layer 的安裝生命週期事件。他們會在執行個體啟動並執行像是安裝套件和建立組態檔案等任務後執行。

  • 設定配方會指派給 layer 的設定生命週期事件。它們會在堆疊的組態變更之後執行,主要是在執行個體上線或離線時執行,並處理任何必要的組態變更。

  • 部署配方會指派給 layer 的部署生命週期事件。他們會在安裝配方之後,以及您手動部署應用程式,然後在 layer 的執行個體上安裝程式碼和相關檔案時執行,並會處理相關任務 (例如重新啟動服務)。

最後一節說明如何建立包含以 Tomcat 食譜為基礎的自訂層的堆疊,以及如何部署和執行簡單的 JSP 應用程式,該應用程式會顯示在屬於個別 MySQL 層的執行個體上執行的 MySQL 資料庫中的資料。建立堆疊和執行應用程式

注意

Tomcat 食譜食譜取決於一些 AWS OpsWorks 堆棧內置食譜。為使每個配方的來源更為清晰,本主題會使用 Chef cookbookname::recipename 慣例識別配方。