部署連線至 MySQL Database Service 的 Apache Tomcat

Apache Tomcat ®是開放原始碼 Java 應用程式伺服器。它實行 Java Servlet、JavaServer Pages、Java 表示式語言以及 Java WebSocket 技術。

MySQL Database Service 是一項完全受管理的 Oracle Cloud Infrastructure 原生服務。它是由 MySQL 團隊在 Oracle 開發、管理和支援。備份與復原、資料庫和作業系統修正等作業都會自動化。您僅負責管理您的資料、綱要設計以及存取原則。

架構

參照架構包含一個負載平衡器、一個應用程式層與 Apache Tomcat,以及一個具有已啟用 HA 之 MySQL Database 服務的資料庫層。

元件位於不同的子網路中。負載平衡器位於公用子網路中。Tomcat 伺服器會共用專用子網路,而資料庫則位於自己的專用子網路中。所有外部存取都是透過網際網路閘道透過負載平衡器進行。

「HA-enabled MySQL Database 服務」是叢集的抽象概念。它有三個 MySQL 執行處理,但有一個單一端點。一個執行處理是「主要」,另一個兩個執行處理是「次要」。「主要」有單一端點,允許讀取和寫入資料庫。第二個步驟會從主要資料庫接收複製的資料。不允許直接存取「第二個」。

如果失敗或手動切換,其中一個「次要」會變成新的「主要」,並將端點重新導向至該處。這表示端點 IP 位址永遠不會變更,也不需要更新應用程式。

包含使用資料庫顯示應用程式階段作業管理的範例應用程式。

下圖說明此參考架構。

architecture-deploy-tomcat-mds-ha.png 描述如下
architecture-deploy-tomcat-mds-ha.png 圖解描述

architecture-Deploy-tomcat-mds-oracle.zip

如果子網路是區域子網路,這三個 MySQL 執行處理會放在不同的可用性網域和容錯域。在具有單一可用性網域的區域中,MySQL 執行處理會置於相同可用性網域內的不同容錯域。

架構包含下列元件:

  • 區域

    Oracle Cloud Infrastructure 區域是包含一或多個資料中心 (稱為可用性網域) 的本地化地理區域。區域與其他區域無關,而且大型距離可以區隔 (跨國家或甚至洲)。

  • 可用性網域

    可用性網域是區域內獨立的獨立資料中心。每個可用性網域中的實體資源都會與其他可用性網域中的資源隔離,以提供容錯。可用性網域不會共用基礎架構,例如電源、冷卻或內部可用性網域網路。因此,一個可用性網域的失敗並不會影響區域中的其他可用性網域。

  • 容錯域

    容錯域是一組可用性網域內的硬體和基礎架構。每個可用性網域都有三個具有獨立電源和硬體的容錯域。當您將資源分配到多個容錯域時,應用程式可能會容許容錯域內的實體伺服器故障、系統維護和電源故障。

  • 虛擬雲端網路 (VCN) 和子網路

    VCN 是您在 Oracle Cloud Infrastructure 區域中設定的可客製化的軟體定義網路。與傳統的資料中心網路一樣,VCN 會提供您完整的網路環境控制。VCN 建立 VCN 之後,便可以有多個非重疊的 CIDR 區塊。您可以將 VCN 區隔到子網路,成為區域或可用性網域的範圍。每個子網路都會包含連續的位址範圍,而不會與 VCN 中的其他子網路重疊。您可以在建立子網路後變更其大小。子網路可以是公用或專用子網路。

  • 負載平衡器

    Oracle Cloud Infrastructure Load Balancing 服務提供自動化的流量分佈,從單一進入點到後端的多部伺服器。

  • 安全清單

    您可以為每個子網路建立安全規則,以指定子網路中必須允許的來源、目的地以及流量類型。

  • 路由表

    虛擬路由表包含將流量從子網路路由至 VCN 外部之目的地的規則,通常會透過閘道。

  • 網路閘道

    網際網路閘道可讓 VCN 中的公用子網路與公用網際網路之間的流量。

  • Tomcat 伺服器

    Tomcat 伺服器代管 Java Servlet、JavaServer Pages、Java 表示式語言以及 Java WebSockets。您的應用程式存在於此層。

  • 資料庫伺服器

    Tomcat 可以連線至提供 Java Database Connectivity (JDBC) 的任何資料庫。此架構使用 MySQL Database Service。

  • 防禦主機

    防禦主機是一個運算執行處理,可作為雲端外部拓樸的安全、受控制的進入點。防禦主機通常是在非軍事區域 (DMZ) 中啟動設定。它可讓您將機密資源放在無法直接從雲端存取的專用網路中,以保護機密資源。拓樸有一個您可以定期監督及稽核的單一已知進入點。因此,您可以避免暴露拓樸的更敏感元件,而不會暴露它們的存取權。

推薦

您的需求可能會與此處描述的架構不同。使用下列建議作為起點。

  • VCN

    建立 VCN 時,請根據您要連附至 VCN 子網路的資源數目,判斷所需的 CIDR 區塊數目和每個區塊的大小。使用位於標準專用 IP 位址空間內的 CIDR 區塊。

    選取不想與任何其他網路 (在 Oracle Cloud Infrastructure、您的企業內部部署資料中心或其他雲端提供者) 重疊的 CIDR 區塊,以設定專用連線。

    建立 VCN 之後,您可以變更、新增及移除其 CIDR 區塊。

    設計子網路時,請考量您的流量和安全需求。將特定層或角色內的所有資源連附至可作為安全界限的相同子網路。

  • 負載平衡器

    此架構使用 10-Mbps 負載平衡器,此平衡器包含在永遠免費層中。視所需的同時連線數目和總傳輸量而定,您可以使用較大的資源配置。您可以隨時編輯傳輸量。

    因為無法保留負載平衡器的 IP 位址,所以建議您使用 DNS 名稱。

  • 執行處理

    所有租用戶都會取得此架構用於 Tomcat 伺服器的兩個永遠免費運算虛擬機器 (VM) 執行處理。

    如果需要更多的處理能力,您可以選取不同的圖形。

  • 資料庫系統

    連線至 MySQL:安裝最新的 MySQL 從屬端,並從 MySQL Yum 儲存區域安裝 MySQL Shell。如需使用 MySQL Yum 儲存區域的連結,請參閱詳細資訊段落。

  • 儲存體

    此架構中的執行處理使用一般區塊儲存體;不需要額外的效能。

  • 網路連線

    您可以使用站對站 VPN 或 FastConnect 的專用連線,連線至現有的企業內部部署基礎架構來管理環境。

    如果環境必須與現有的基礎架構隔離或從外部存取,防禦主機可以保護管理連線。防禦主機通常是在非軍事區域 (DMZ) 中啟動設定。它會將機密資源放在無法直接從雲端存取的專用網路中,以保護機密資源。您可以避免暴露更機密的架構元件,而不會暴露它們的存取權。

注意事項

部署此參照架構時,請注意下列幾點。

  • 效能

    您可以分別變更執行處理資源配置 (如果使用 Intel 系列) 或 OCPU 和記憶體 (如果使用 AMD 序列),根據應用程式特定的需求來調整效能。

    目前無法變更資料庫執行處理。建立時,請選擇適當的大小。

  • 安全性

    除了防禦主機 (如果有的話) 和負載平衡器之外,所有元件都必須置於專用子網路中。

    如果需要嚴格的安全性,請考量利用 Oracle Security Zones。它不包含額外成本。

  • 使用狀態

    負載平衡器隨附於待命執行處理,如果發生容錯移轉,則不需要介入。

    Tomcat 伺服器會部署為配對,並由負載平衡程式進行平衡。每個 Tomcat 執行處理都位於不同的容錯域。

    視需要頻率備份資料庫,以符合您的預期復原點目標 (RPO)。

    雖然不常見,請調整 MySQL Database Service 的維護時段以符合您組織的需求。

  • 成本

    此架構的費用會根據執行處理、資料庫以及負載平衡器的大小和資源配置而有所不同。沒有含變動成本的元件。

建置

GitHub 中提供部署此參照架構所需的程式碼。只要按一下即可將程式碼提取至 Oracle Cloud Infrastructure Resource Manager,然後建立堆疊並加以部署。或者,從 GitHub 下載程式碼至您的電腦、自訂程式碼,以及使用 Terraform CLI 建置架構。

  • 使用 Oracle Cloud Infrastructure Resource Manager 進行部署:
    1. 一下部署到 Oracle Cloud

      如果您尚未登入,請輸入租用戶和使用者證明資料。

    2. 複查並接受條款與條件。
    3. 選取要部署堆疊的區域。
    4. 依照畫面上的提示和指示建立堆疊。
    5. 建立堆疊之後,按一下 Terraform 動作,然後選取畫。
    6. 等待工作完成,然後複查計畫。

      若要進行任何變更,請返回「堆疊詳細資訊」頁面,按一下編輯堆疊,然後進行必要的變更。然後,再次執行「劃」動作。

    7. 如果不需要進一步的變更,請返回「堆疊詳細資訊」頁面,按一下 Terraform 動作,然後選取用。
  • 使用 GitHub 中的 Terraform 程式碼進行部署:
    1. 前往 GitHub
    2. 將儲存區域複製或下載到您的本機電腦。
    3. 依照 README 文件中的指示進行。

變更日誌

此日誌僅列出重要的變更: