部署連線至 MySQL Database Service 的 Apache Tomcat
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-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 進行部署:
- 按一下
如果您尚未登入,請輸入租用戶和使用者證明資料。
- 複查並接受條款與條件。
- 選取要部署堆疊的區域。
- 依照畫面上的提示和指示建立堆疊。
- 建立堆疊之後,按一下 Terraform 動作,然後選取計畫。
- 等待工作完成,然後複查計畫。
若要進行任何變更,請返回「堆疊詳細資訊」頁面,按一下編輯堆疊,然後進行必要的變更。然後,再次執行「計劃」動作。
- 如果不需要進一步的變更,請返回「堆疊詳細資訊」頁面,按一下 Terraform 動作,然後選取套用。
- 按一下
- 使用 GitHub 中的 Terraform 程式碼進行部署:
- 前往 GitHub。
- 將儲存區域複製或下載到您的本機電腦。
- 依照
README
文件中的指示進行。
更多資訊
- 使用 MySQL 階段作業保存建立 Tomcat 叢集
- 使用 JDBCStore 來保存階段作業
- MySQL Database 服務入門
- 使用 MySQL Yum 儲存區域的快速指南 (用於更新 MySQL Client 及安裝 MySQL Shell)