欢迎访问深圳敏捷云计算科技有限公司!

在 OCI 基础设施上部署Spring Boot框架与MySQL数据库服务

2024-04-30 原创文章

在云中设置一个多层拓扑结构,包括Spring Boot框架,用于部署使用MySQL数据库的高可用性应用程序。

Spring Boot是一个基于Java的开源框架,您可以使用它来创建生产级应用程序。Spring Boot简化了应用程序的部署,最小化配置和自定义,并包括第三方库以简化流程。

架构

这个多层参考架构包括用于在Oracle云基础设施上部署高可用性应用程序的基础设施资源和Spring Boot框架。

架构部署了一个负载均衡器、一个堡垒主机、三个安装了应用程序的虚拟机(VM)和Oracle MySQL数据库服务。

架构包括两个分区,这两个分区都启用了云卫士,根据Oracle的安全最佳实践提供最大的安全性。此外,部署了Oracle MySQL数据库服务的分区是一个安全区分区。

组件位于不同的子网和故障域中,以提供高可用性。Oracle MySQL数据库服务只能通过堡垒主机访问,应用程序VM通过负载均衡器访问。

以下图表展示了这一架构。

架构包含以下组件:

区域

Oracle云基础设施区域是一个地理上的局部区域,包含一个或多个数据中心,称为可用性域。区域彼此独立,相距遥远(跨越国家甚至大洲)。

可用性域

可用性域是区域内独立的、自成一体的数据中心。每个可用性域内的物理资源与其他可用性域的资源相隔离,这提供了容错能力。可用性域不共享基础设施如电源或冷却系统,或内部的可用性域网络。因此,一个可用性域的故障不太可能影响区域内的其他可用性域。

故障域

故障域是在一个可用性域内部的硬件和基础设施的分组。每个可用性域有三个故障域,拥有独立的电源和硬件。当您将资源分布在多个故障域时,您的应用程序可以容忍物理服务器故障、系统维护和故障域内的电力故障。

虚拟云网络(VCN)和子网

VCN是您在Oracle云基础设施区域中设置的可定制的、软件定义的网络。就像传统数据中心网络一样,VCN使您完全控制您的网络环境。VCN可以有多个不重叠的CIDR块,创建VCN后您可以更改这些块。您可以将VCN划分为子网,这些子网可以被限定在一个区域或一个可用性域。每个子网包含一个连续的地址范围,不与VCN中的其他子网重叠。创建后您可以更改子网的大小。子网可以是公开的或私有的。

安全列表

对于每个子网,您可以创建安全规则,指定必须允许进出子网的流量的源、目的地和类型。

堡垒

在堡垒主机和Oracle云基础设施堡垒选项之间选择:

堡垒主机是一种计算实例,作为从云外部进入拓扑的安全、受控的入口点。堡垒主机通常在非军事区(DMZ)中配置。它使您能够通过将敏感资源放置在不能直接从云外部访问的私有网络中来保护这些资源。拓扑有一个单一的、已知的入口点,您可以定期监控和审计。因此,您可以避免暴露拓扑中更敏感的组件,同时不影响对它们的访问。

Oracle云基础设施堡垒提供对没有公开端点且需要严格资源访问控制的资源的受限和限时安全访问,如裸机和虚拟机、Oracle MySQL数据库服务、自治事务处理(ATP)、Oracle容器引擎为Kubernetes(OKE)以及任何其他允许安全壳协议(SSH)访问的资源。使用Oracle云基础设施堡垒服务,您可以启用对私有主机的访问,而无需部署和维护跳转主机。此外,您还能通过基于身份的权限和中心化、审计的、时间限定的SSH会话,提高安全姿态。Oracle云基础设施堡垒消除了为堡垒访问设置公网IP的需要,从而消除了提供远程访问时的麻烦和潜在攻击面。

负载均衡器

Oracle云基础设施负载均衡服务提供了从单一入口点到后端多个服务器的自动流量分配。

云卫士

您可以使用Oracle云卫士来监控和维护您在Oracle云基础设施中资源的安全。云卫士使用您可以定义的检测器配方来检查您的资源是否存在安全弱点,并监控操作者和用户是否有风险活动。当检测到任何配置错误或不安全活动时,云卫士推荐纠正措施并协助根据您可以定义的响应者配方采取这些措施。

安全区域

安全区域从一开始就确保了Oracle的安全最佳实践,通过执行策略如加密数据和防止网络的公共访问来保护整个分区。安全区域与同名的分区相关联,并包括适用于该分区及其子分区的安全区域策略或“配方”。您不能将标准分区添加或移动到安全区域分区。

本地对等网关(LPG)

LPG允许您将一个VCN与同一区域内的另一个VCN对等连接。对等连接意味着VCN之间使用私有IP地址通信,流量不经过互联网或通过您的本地网络路由。

数据库

此架构使用MySQL数据库服务,该服务运行在E形状的VM上。

建议

您的需求可能与此处描述的架构不同。以下建议可作为起点。

云卫士

克隆并自定义Oracle提供的默认配方,以创建自定义的检测器和响应器配方。这些配方使您能够指定哪种类型的安全违规行为会生成警告,以及允许对它们执行哪些操作。例如,对象存储桶可以将可见性设置为公共。

在租户级别应用云卫士,以覆盖最广泛的范围,并减少维护多种配置的管理负担。

您还可以使用托管列表功能,将某些配置应用于检测器。

安全区域

对于需要最高安全级别的资源,Oracle推荐您使用安全区域。安全区域是一个与Oracle定义的基于最佳实践的安全策略配方相关联的分区。例如,安全区域中的资源不得从公共互联网访问,且必须使用客户管理的密钥加密。在安全区域中创建和更新资源时,Oracle云基础设施会根据安全区域配方中的策略验证操作,并拒绝违反任何策略的操作。

虚拟云网络(VCN)

创建VCN时,根据您计划附加到VCN中的子网的资源数量,确定所需的CIDR块数量及每个块的大小。使用标准私有IP地址空间内的CIDR块。

选择不与您打算建立私有连接的任何其他网络(在Oracle云基础设施、您的本地数据中心或另一云提供商中)重叠的CIDR块。

创建VCN后,您可以更改、添加和删除其CIDR块。

在设计子网时,考虑您的流量流向和安全需求。将特定层或角色内的所有资源附加到同一子网,这可以作为安全边界。

使用区域子网。

安全列表

使用安全列表来定义适用于整个子网的入站和出站规则。

虚拟机

VM分布在多个故障域中,以实现高可用性。使用VM.Standard.E3.Flex形状,四核OCPU,64-GB内存和4-Gbps网络带宽(Oracle Linux 7)。

堡垒主机

使用VM.Standard.E3.Flex形状,1 OCPU和2 GB内存。或者,使用Oracle云基础设施堡垒服务。

负载均衡器

负载均衡器将进入流量分配给应用程序VM。创建负载均衡器时,您可以选择一个预定义形状,提供固定带宽,或指定一个自定义(灵活)形状,您设置带宽范围并让服务根据流量模式自动扩展带宽。无论哪种方法,您都可以在创建负载均衡器后的任何时间更改形状。

数据库服务

使用VM.Standard.E2.8,为应用程序提供足够的CPU和内存。

考虑因素

可扩展性

您可以通过更改计算实例的形状来垂直扩展应用服务器。具有更高核心计数的形状提供了更多的内存和网络带宽。如果需要更多存储,增加附加到应用服务器的块存储卷的大小。

可用性

故障域为单个可用性域内部署的工作负载提供了最佳的弹性。为了在应用层实现高可用性,根据需要部署更多的应用服务器。

成本

在应用层,根据应用程序需要的核心、内存和网络带宽选择计算形状。您可以从四核形状的应用服务器开始。如果需要更多的性能、内存或网络带宽,您可以更换为更大的形状。

备份

Oracle云基础设施自动备份MySQL数据库。您创建的Oracle云基础设施对象存储桶存储手动备份,并保留它们60天。

Oracle云基础设施块存储卷允许您创建块存储卷上数据的时间点备份。您可以随时将这些备份恢复到新卷上。您还可以使用该服务在不中断应用程序或停机的情况下,对启动卷进行时间点、一致性备份。启动和块卷具有相同的备份能力。

安全

对于访问控制,使用策略限制谁可以访问您的云资源以及他们可以执行的操作。

对于网络安全,安全列表和网络安全组(NSG)使用安全规则在数据包级控制流量。NSG由一组适用于您选择的单个VCN中的一组VNIC的入站和出站安全规则组成。例如,您可以选择将规则应用于VCN中多层应用程序的Web层中充当Web服务器的所有计算实例。

NSG安全规则的功能与安全列表规则相同。然而,对于NSG安全规则的源或目的地,您可以指定NSG而不是CIDR块。因此,您可以轻松编写安全规则来控制同一个VCN中两个NSG之间的流量或单个NSG内的流量。当您创建数据库系统时,您可以指定一个或多个NSG。您还可以更新现有的数据库系统以使用一个或多个NSG。

部署

要部署此参考架构,请在Oracle云基础设施中创建所需的资源,然后安装Spring Boot框架。

1. 在Oracle云基础设施中创建所需的资源。

2. 在GitHub上提供了部署云中资源的Terraform代码。您可以单击一下将代码拉入Oracle云基础设施资源管理器,创建堆栈并部署它。或者,从GitHub下载代码到您的计算机,自定义代码,并使用Terraform命令行界面部署架构。

使用Oracle云基础设施资源管理器部署Terraform代码:

i. 单击,如果您还没有登录,请输入租户和用户凭证。

ii. 选择您希望部署堆栈的区域。

iii. 按照屏幕上的提示和指示创建堆栈。

iv. 创建堆栈后,单击Terraform操作,然后选择计划。

v. 等待作业完成,然后查看计划。

vi. 如果需要进行任何更改,请返回到堆栈详情页面,单击编辑堆栈,并进行所需的更改。然后,再次运行计划操作。

vii. 如果不需要进一步更改,请返回到堆栈详情页面,单击Terraform操作,并选择应用。

使用Terraform命令行界面部署Terraform代码:

i. 前往GitHub。

ii. 克隆或下载仓库到您的本地计算机。

iii. 按照README文档中的说明操作。

3. 部署架构后,您可以安装GitHub上提供的Spring Boot框架:

a. 前往GitHub。

b. 克隆或下载仓库到您的本地计算机。

c. 使用README文档中的信息访问额外的信息和资源。按照入门文档中的说明安装Spring Boot。

开启您的Oracle云之旅:Agilewing - 您的智能云服务伙伴

作为Oracle的高级合作伙伴,Agilewing正重新定义企业体验Oracle云服务的方式。借助于其简化的开户流程和一流的技术支持,Agilewing将复杂的开户和操作流程转化为一种轻松、直观的体验。通过我们的一站式服务,您可以迅速开启并享受Oracle云的全方位服务,从而无缝融入云端世界。

Agilewing的AgileCDN服务,结合了OCI的云基础服务,提供了一流的全球内容加速解决方案。超过2800个全球POP节点和7000个直连点的强大网络,确保了无论您的业务扩展到全球哪个角落,都能保持高效稳定的运行。

利用Oracle云的先进技术,Agilewing致力于简化云服务搭建、云迁移和业务出海的过程。我们的合作模式为客户带来经济高效的解决方案,使他们能够更加专注于核心业务,同时享受Oracle云的高性能和安全保障。

Oracle云服务,作为一个充满潜力的领域,以其高性能、安全性和全球统一的服务标准,为各类企业开启了新的机遇之门。通过Agilewing的专业服务,无论是个人用户还是企业,都能轻松步入这个充满技术革新和高效能的新时代。现在,就让Agilewing引领您开始探索Oracle云服务,打开一个全新的世界大门