使用 MySQL Database 服務在 Oracle Cloud Infrastructure 上部署 Spring 啟動架構
在雲端設定多層拓樸,其中包括建置使用 MySQL 資料庫之高可用性應用程式的 Spring Boot 架構。
Spring Boot 是以 Java 為基礎的開放原始碼架構,可用來建立實際環境執行成績應用程式。Spring Boot 會以最少的組態和自訂來簡化應用程式的部署,並包含協力廠商程式庫以簡化程序。
架構
此多層參照架構包含基礎架構資源和 Spring Boot 架構,這些架構在 Oracle Cloud Infrastructure 上部署高可用性應用系統。
架構會建置負載平衡器、防禦主機、安裝應用程式的三個虛擬機器 (VM) 以及 Oracle MySQL Database Service。
此架構包括兩個區間,其中兩個區間都已啟用雲端保全,以提供以 Oracle 安全最佳做法為基礎的最佳安全。此外,部署 Oracle MySQL Database Service 的區間是安全區域區間。
元件位於不同的子網路和容錯域,以提供高可用性。「Oracle MySQL 資料庫服務」只能透過防禦主機存取,而應用程式 VM 則是透過負載平衡器存取。
下圖說明此架構。
springboot-mysql-oci-oracle.zip
架構包含下列元件:
- 區域
Oracle Cloud Infrastructure 區域是包含一或多個資料中心 (稱為可用性網域) 的本地化地理區域。區域與其他區域無關,而且大型距離可以區隔 (跨國家或甚至洲)。
- 可用性網域
可用性網域是區域內獨立的獨立資料中心。每個可用性網域中的實體資源都會與其他可用性網域中的資源隔離,以提供容錯。可用性網域不會共用基礎設施 (例如電力或散熱冷卻系統) 或內部可用性網域網路。因此,一個可用網域發生故障並不會影響該區域中的其他可用網域。
- 容錯域
容錯域是可用性網域內的一組硬體和基礎設施。每個可用性網域都有三個具有獨立電源和硬體的容錯域。當您將資源分配到多個容錯域時,應用程式可能會容許容錯域內的實體伺服器故障、系統維護和電源故障。
- 虛擬雲端網路 (VCN) 和子網路
VCN 是您在 Oracle Cloud Infrastructure 區域中設定的可自訂軟體定義網路。VCN 就像傳統資料中心網路一樣,可讓您完整控制網路環境。VCN 可以有多個非重疊的 CIDR 區塊,供您在建立 VCN 之後變更。您可以將 VCN 區隔為子網路,子網路範圍可為區域或可用性網域。每個子網路均包含一個未與 VCN 中其他子網路重疊的連續位址範圍。您可以在建立子網路之後變更子網路的大小。子網路可以是公用或專用。
- 安全清單
您可以為每個子網路建立安全規則,以指定子網路中必須允許的來源、目的地以及流量類型。
- 巴斯丁
選擇防禦主機與 Oracle Cloud Infrastructure 防禦主機選項:
-
防禦主機是一個運算執行處理,可作為雲端外部拓樸的安全、受控制的進入點。防禦主機通常是在非軍事區域 (DMZ) 中啟動設定。它可讓您將機密資源放在無法直接從雲端存取的專用網路中,以保護機密資源。拓樸有一個您可以定期監督及稽核的單一已知進入點。因此,您可以避免暴露拓樸的更敏感元件,而不會暴露它們的存取權。
-
Oracle Cloud Infrastructure Bastion 為沒有公用端點的資源提供限制和時間限制的安全存取,而且這類資源需要嚴格的資源存取控制,例如裸機和虛擬機器、Oracle MySQL Database Service、Autonomous Transaction Processing (ATP)、Oracle Container Engine for Kubernetes (OKE),以及任何其他允許安全 Shell 協定 (SSH) 存取的資源。有了 Oracle Cloud Infrastructure 防禦主機,您便無須部署及維護跳板主機,即可啟用對專用主機的存取。此外,您還可以使用身分識別式權限和集中式、稽核且時間導向 SSH 階段作業來改善安全狀態。Oracle Cloud Infrastructure 防禦主機不需使用公用 IP 進行防禦存取,提供遠端存取時可免於麻煩和潛在攻擊面向。
-
- 負載平衡器
Oracle Cloud Infrastructure Load Balancing 服務提供自動化的流量分佈,從單一進入點到後端的多部伺服器。
- 雲端保全
您可以使用 Oracle Cloud Guard 來監督及維護您在 Oracle Cloud Infrastructure 中的資源安全。「雲端保全」使用可定義的偵測器方法來檢查安全弱點的資源,以及監督操作員和使用者是否有風險活動。偵測到任何組態錯誤或不安全的活動時,雲端保全會建議更正動作,並根據您可以定義的回應器方法來協助採取這些動作。
- 安全區域
安全區域會強制實行加密資料及防止公開存取整個區間的網路,以確保 Oracle 的安全最佳做法從頭開始。安全區域與相同名稱的區間關聯,並且包括安全區域原則或套用至區間及其子區間的「處方」。您無法新增或移動標準區間至安全區域區間。
- 本地對等互連閘道 (LPG)
LPG 可讓您將一個 VCN 與同一區域中的另一個 VCN 對等。對等互連表示 VCN 使用專用 IP 位址進行通訊,而不需要透過內部部署網路周遊網際網路或路由。
- 資料庫
此架構使用在 E-shape VM 上執行的 MySQL Database 服務。
建議
您的需求可能會與此處描述的架構不同。使用下列建議作為起點。
- 雲端保全
複製並自訂 Oracle 提供的預設方法,以建立自訂偵測器和回應器方法。這些處方可讓您指定哪些類型的安全違規會產生警告,以及允許對它們執行哪些動作。例如,物件儲存的儲存桶可見性可以設為公用。
在租用戶層次套用雲端保全、以涵蓋最廣泛的範圍、並減少維護多個組態的管理間接成本。
您也可以使用「受管理清單」功能,將特定組態套用至偵測器。
- 安全區域
對於需要最高安全性的資源,Oracle 建議您使用安全區域。安全區域是與以最佳做法為基礎之 Oracle 定義的安全原則方法關聯的區間。例如,安全區域中的資源不得從公用網際網路存取,且必須使用客戶管理的金鑰加密。當您在安全區域中建立及更新資源時,Oracle Cloud Infrastructure 會根據 security-zone 處方中的原則驗證作業,並拒絕違反任何原則的作業。
- VCN
建立 VCN 時,請根據計畫連附至 VCN 中子網路的資源數目,判斷所需的 CIDR 區塊數目和各個區塊的大小。使用標準專用 IP 位址空間內的 CIDR 區塊。
選取未與想要設定專用連線之任何其他網路 (在 Oracle Cloud Infrastructure 中、您的內部部署資料中心或其他雲端提供者) 重疊的 CIDR 區塊。
建立 VCN 之後,您可以變更、新增及移除其 CIDR 區塊。
設計子網路時,請考量您的流量和安全需求。將特定層或角色內的所有資源連附至可作為安全界限的相同子網路。
使用區域子網路。
- 安全清單
您可以使用安全清單來定義套用至整個子網路的傳入和傳出規則。
- 虛擬機器
VM 會分散至多個容錯域以獲得高可用性。使用 VM.Standard。E3。Flex、四核心 OCPU、64-GB 記憶體以及 4-Gbps 網路頻寬 (Oracle Linux 7)。
- 防禦主機
使用具備 1 個 OCPU 和 2 Gig RAM 的 VM.Standard.E3.Flex 資源配置。或者,使用 Oracle Cloud Infrastructure 防禦主機服務。
- 負載平衡器
負載平衡器會將內送流量分配給應用程式 VM。建立負載平衡器時,您可以選取提供固定頻寬的預先定義資源配置,或指定自訂 (彈性) 資源配置,供您設定頻寬範圍,並讓服務根據流量樣式自動調整頻寬。您可以使用任一方式,在建立負載平衡器之後隨時變更資源配置。
- 資料庫服務
使用 VM.Standard。E2.8,為應用程式提供足夠的 CPU 和記憶體。
注意事項
- 擴展性
您可以變更運算執行處理的資源配置,以垂直方式擴展應用程式伺服器。核心數目較高的資源配置提供更多的記憶體和網路頻寬。如果您需要更多儲存體,請增加連附至應用程式伺服器的區塊磁碟區大小。
- 使用狀態
容錯域可為單一可用性網域內部署的工作負載提供最佳復原能力。如需瞭解應用程式層的高可用性,請視需要建置更多應用程式伺服器。
- 成本
在應用程式層中,根據應用程式所需的核心、記憶體以及網路頻寬選取運算型態。您可以從應用程式伺服器的四核心資源配置開始。如果您需要更多效能、記憶體或網路頻寬,可以變更大的資源配置。
- 備份
Oracle Cloud Infrastructure 會自動備份 MySQL 資料庫。您建立的 Oracle Cloud Infrastructure Object Storage 儲存桶會儲存手動備份,並保留 60 天。
Oracle Cloud Infrastructure Block Volumes 可讓您建立區塊磁碟區上資料的時間點備份。您可以隨時將這些備份回復至新的磁碟區。您也可以使用服務來建立開機磁碟區的時間點、當機一致的備份,而不需要應用程式中斷或停止工作。開機磁碟區和區塊磁碟區的備份功能相同。
- 安全
若要進行存取控制,請使用原則來限制誰可以存取您在雲端中的資源,以及他們可以執行的動作。
基於網路安全性,安全清單和網路安全群組 (NSG) 會使用安全規則來控制封包層次的流量。NSG 包含一組傳入和傳出安全規則,僅適用於單一 VCN 中您選擇的一組 VNIC。例如,您可以選擇將規則套用至作為 VCN 中多層應用程式之 Web 層中的 Web 伺服器的所有運算執行處理。
NSG 安全規則的運作方式與安全清單規則相同。不過,對於 NSG 安全規則的來源或目的地,您可以指定 NSG 而非 CIDR 區塊。因此,您可以輕鬆撰寫安全規則,以控制相同 VCN 中兩個 NSG 之間的流量,或單一 NSG 內的流量。建立資料庫系統時,您可以指定一或多個 NSG。您也可以更新現有的資料庫系統,以使用一或多個 NSG。
變更日誌
此日誌僅列出重要的變更:
2021 年 11 月 18 日 |
|
2021 年 6 月 28 日 | 已更新「部署」區段中「部署」按鈕的目標。 |
2021 年 2 月 8 日 |
已更新「建置」段落以使用 Terraform 建置基礎架構資源,方法是按一下建置按鈕,透過 Oracle Cloud Infrastructure Resource Manager 自動建置資源,或下載 Terraform 程式碼,然後使用 Terraform 命令行介面來建置資源。 已更新負載平衡器建議、以包括預先定義的資源配置或彈性的資源配置、供您設定頻寬範圍、並讓服務根據流量樣式自動調整頻寬。 |