在连接到自治数据库的基于 Arm 的 Ampere A1 计算上部署 Apache Tomcat
Apache Tomcat 是开源 Java 应用程序服务器。它实现 Java Servlet、JavaServer Pages、Java 表达式语言和 Java WebSocket 技术。
体系结构
这是一个多弧引用体系结构,其中包含负载平衡器、在 Arm AArch64 形状(基于 Arm 的 Ampere A1 计算)上运行 Apache Tomcat 的应用程序层以及 Oracle Autonomous Database 在 x86 上运行的数据库层。
作为 Java 开发人员,您可以利用此灵活性,并使用 OCI 中 Arm 形状的安全性和性能部署 Tomcat Web 应用程序。在此方案中,您可以根据应用程序要求更改核心计数。
组件位于不同的子网中。负载平衡器位于公共子网中。Tomcat 服务器共享专用子网,数据库位于自己的专用子网中。所有外部访问都通过 Internet 网关通过负载平衡器。
包括使用数据库显示应用程序会话管理的示例应用程序。
下图说明了此引用体系结构。

插图 architecture-deploy-tomcat-adb.png 的说明
architecture-deploy-tomcat-adb-oracle.zip
体系结构包含以下组成部分:
- 区域
区域是一个或多个可用性域的本地化地理区域。区域独立于其他区域,它们之间的巨大距离可以分开(跨越国家或大陆)。
- 可用性域
可用性域是区域内的独立独立数据中心。每个可用性域中的物理资源与其他可用性域中的资源隔离,这些资源提供了容错功能。可用性域不共享基础设施,例如电源、冷却或内部可用性域网络。因此,一个可用性域的故障不可能影响该区域中的其他可用性域。
- 故障域
故障域是可用性域中的一组硬件和基础结构。每个可用性域都有三个具有独立电源和硬件的故障域。将计算实例放置到多个故障域时,应用程序可以容忍物理服务器故障、系统维护以及可用性域中的许多常见网络和电源故障。
- 虚拟云网络 (VCN) 和子网
VCN 是在 Oracle Cloud Infrastructure 区域中设置的软件定义的网络。VCN 可以分为特定于某个区域或可用性域的子网。特定于区域的子网和可用性域特定的子网都可以在同一 VCN 中共存。子网可以是公共的或专用的。
- 负载平衡器
Oracle Cloud Infrastructure Load Balancing 服务提供了从一个入口点到可从 VCN 访问的多个服务器的自动流量分发。在群集模式下创建应用程序层时,可以将负载平衡器配置为在 Tomcat 服务器之间分配流量。负载平衡器为应用服务器提供前端,隔离并防止对内部层进行不必要或未经授权的访问。
- 安全列表
对于每个子网,可以创建安全规则来指定必须允许进出子网的流量源、目标和类型。
- 路由表
虚拟路由表包含用于将流量从子网路由到 VCN 外部的目标的规则,通常是通过网关路由。
- Internet 网关
Internet 网关允许 VCN 与公共 Internet 之间的通信。
- Tomcat 服务器
Tomcat 服务器托管 Java Servlet、JavaServer Pages、Java 表达式语言和 Java WebSockets。Tomcat 服务器安装在此体系结构中基于 Arm 的 Ampere A1 形状上。
- 数据库服务器
Tomcat 可以连接到提供 JDBC Java 数据库连接的任何数据库。此体系结构使用 Oracle Autonomous Database。
- 堡垒主机
堡垒主机是一个计算实例,用作云外部拓扑的安全受控入口点。堡垒主机通常预配在非军事区 (DMZ) 中。它使您可以将敏感资源放置在无法直接从云外部访问的专用网络中,从而保护这些资源。拓扑有一个已知的单个入口点,您可以定期监视和审计。因此,可以避免公开拓扑的更敏感的组件,而不损害对它们的访问。
建议
您的要求可能不同于此处介绍的体系结构。将以下建议案用作起点。
- VCN
创建 VCN 时,确定每个子网所需的云资源的 IP 地址。使用无类域间路由 (CIDR) 表示法,指定对于所需 IP 地址足够大的子网掩码和网络地址范围。使用标准专用 IP 地址块内的地址空间。
选择不与内部部署网络重叠的地址范围,以便在必要时在 VCN 与内部部署网络之间设置连接。
创建 VCN 后,无法更改其地址范围。
设计子网时,请考虑您的功能和安全要求。将同一层或角色中的所有计算实例附加到可用作安全边界的同一子网。
使用区域子网。
- 负载平衡器
此体系结构使用始终免费的 10-Mbps 负载平衡器。
非树负载平衡器的形状从 100 Mbps 开始。根据所需的同步连接数和总吞吐量,您可以使用更大的形状。
建议您使用 DNS 名称,因为无法保留负载平衡器的 IP 地址。
- 实例
作为灵活配置的一部分,所有租户都可以免费获得 4 个 Ampere A1 计算配置的核心,内存总计为 24GB。
- 数据库 (DB) 系统
所有租户均可获得两个始终免费的 Oracle 自治数据库。自治数据库使用共享 Exadata 基础结构,Oracle 在其中处理基础结构的预配和维护。
如果需要两个以上的数据库,请使用非树 Oracle Autonomous Database。
- 存储
此体系结构中的实例使用常规块存储;不需要额外的性能。
- 网络连接
可以通过使用站点到站点的 VPN 或与 FastConnect 的专用连接来连接到现有内部部署基础结构来管理环境。
如果需要将环境与现有基础结构隔离或在外部访问,则堡垒主机可以保护管理连接。堡垒主机通常预配在非军事区 (DMZ) 中。它通过将敏感资源置于无法直接从云外部访问的专用网络中来保护敏感资源。可以避免公开体系结构中更敏感的组件,而不会影响对这些组件的访问。
考虑事项
部署此引用体系结构时请考虑以下几点。
- 性能
此体系结构使用 Oracle Cloud Infrastructure 的始终免费资源。由于加工能力有限,此体系结构不适用于生产。对于更强的工作负载,应使用实例、负载平衡器和数据库的正常形状。
- 安全性
除了堡垒主机(如果存在)和负载平衡器之外,所有组件都应放置在专用子网中。
- 可用性
负载平衡器和数据库是冗余的,不需要任何干预来利用这些功能。Tomcat 服务器将作为对部署,并由负载平衡器进行平衡。可以添加更多节点,但它们不包含在“始终免费”层中。
- 成本
此体系结构使用始终免费层。如果使用标准部署配置,则无成本。
部署
此引用体系结构的 Terraform 代码在 GitHub 上可用。单击一次即可将代码拉入 Oracle Cloud Infrastructure Resource Manager,创建堆栈并部署该堆栈。或者,也可以使用 Terraform CLI 将代码从 GitHub 下载到计算机,定制代码并部署体系结构。
- 使用 Oracle Cloud Infrastructure Resource Manager 进行部署:
- 在 GitHub 中使用 Terraform 代码进行部署:
- 转至 GitHub。
- 将资料档案库克隆或下载到本地计算机。
- 按照
README文档中的说明操作。
更多信息
链接到可帮助您了解、修改、使用或实施此体系结构的其他信息。
-
在 Oracle LiveLabs 上免费上机研讨会,您可以在其中将 Tomcat 迁移到 Oracle Cloud Infrastructure 并连接到 Autonomous Database。
-
描述如何使用 JDBC、Universal Connection Pool 和嵌入式 JVM 连接到 Oracle Database 的技术文章、白皮书、代码示例、常见问题等。
-
GitHub 上的资料档案库,其中包含使用 Oracle JDBC 驱动程序连接到 Oracle Database 的 Java Servlet 的代码示例。