Oracle Cloud Infrastructure API 网关部署灾难恢复解决方案

Oracle Cloud Infrastructure API Gateway 在受服务级别协议 (SLA) 监管的 OCI 区域中可用。此参考架构详细介绍了 OCI API Gateway 的跨区域客户管理的灾难恢复解决方案实施基础架构。

此灾难恢复解决方案支持:
  • “主动 - 被动”拓扑,其中只有一个网关处理整个负载,即使两个网关预计都已启动并运行。活动网关不是由其状态(活动/删除/更新)确定,而是由流量定向到的网关确定,并启用该网关来执行所有功能。
  • 客户管理的 OCI API 网关类别复制;例如 API 部署、使用计划和 API 订户。
If both primary and secondary OCI API Gateways use the same API categories and authorization providers, after the switchover, you can access the APIs the same way across the regions.

使用须知

在开始为集成配置灾难恢复配置之前,必须:
  • 在其他 OCI 区域中预配另一个 OCI API 网关
  • 获取定制 DNS/主机名(在您选择的域中)和关联的 SSL 证书。

体系结构

OCI API 网关参考架构由两个不同云区域中的两个 OCI API 网关组成,使用单个定制端点 (URL) 进行访问。要实施单个定制端点,您可以使用 OCI 域名系统 (Domain Name System,DNS) 区域解析定制端点名称。

您可以使用这些定制 URL 作为 OCI API 网关的入口点,例如 api.mycompany.com。有关配置定制端点的更多信息,请参见下文的“管理 DNS 服务区域”,您可以从“了解详细信息”访问该区域。

体系结构中的两个 OCI API 网关被指定为主网关和辅助网关,并且两个网关同时运行;但是,只有一个网关接收流量。最初,主网关接收流量流。如果主区域变得不可用,则可以更新 DNS 记录以将流量路由到辅助区域。

下图说明了公共网关的此参考体系结构( OCI API 网关的登陆区域模式):


下面是 apigw-oci-customer-managed-dr-topology.png 的说明
插图 apigw-oci-customer-managed-dr-topology.png 的说明

apigw-oci-customer-managed-dr-topology-oracle.zip

这些体系结构具有以下组件:
  • Tenancy

    租户是 Oracle 在您注册 Oracle Cloud Infrastructure 时在 Oracle Cloud 中设置的安全隔离分区。您可以在租户内的 Oracle Cloud 中创建、组织和管理资源。租户是公司或组织的同义词。通常,公司将具有单个租户并反映其在该租户中的组织结构。单个租户通常与单个订阅关联,单个订阅通常只有一个租户。

  • 区域

    Oracle Cloud Infrastructure 区域是包含一个或多个数据中心(称为可用性域)的本地化地理区域。地区独立于其他地区,远距离可以把它们分开(跨越国家甚至大陆)。

  • 区间

    区间是 Oracle Cloud Infrastructure 租户中的跨区域逻辑分区。使用区间来组织、控制访问并设置 Oracle Cloud 资源的使用限额。在给定的区间中,您可以定义用于控制资源访问和设置权限的策略。

  • 可用性域

    可用性域是区域中的独立数据中心。每个可用性域中的物理资源与其他可用性域中的资源隔离,从而提供容错能力。可用性域不共用电源、冷却设施或内部可用性域网络等基础设施。因此,一个可用性域出现故障不会影响区域中的其他可用性域。

  • 虚拟云网络 (VCN) 和子网

    VCN 是一个可定制的软件定义网络,您可以在 Oracle Cloud Infrastructure 区域中设置。与传统的数据中心网络一样,VCN 允许您控制您的网络环境。VCN 可以具有多个不重叠的 CIDR 块,您可以在创建 VCN 后更改这些块。您可以将 VCN 划分为子网,子网可以限定为区域或可用性域。每个子网都包含一系列不与 VCN 中的其他子网重叠的连续地址。可以在创建后更改子网的大小。子网可以是公共子网,也可以是专用子网。

  • 路由表

    虚拟路由表包含用于将流量从子网路由到 VCN 之外目的地的规则,通常是通过网关。

  • 安全列表

    对于每个子网,可以创建安全规则来指定必须允许进出子网的通信的源、目标和类型。

  • Oracle Cloud Infrastructure DNS 服务

    公共 DNS 区域存储驻留在 OCI 名称服务器上的权威 DNS 记录。您可以创建公共区域,并在互联网上访问公共可用的域名。有关详细信息,请参阅“DNS 概述”,您可以从下面的“了解更多”访问它。

  • Internet 网关

    通过互联网网关,可以在 VCN 中的公共子网与公共互联网之间进行流量传输。

  • Oracle Cloud Infrastructure Web Application Firewall (WAF)

    WAF 通过基于云且符合 PCI 标准的全局 Web 应用防火墙服务保护应用免受恶意和不需要的互联网流量攻击。通过在 OCI Flexible Network Load Balancer 上将威胁情报与一致的规则实施相结合,Oracle Cloud Infrastructure Web Application Firewall 可增强防御并保护面向互联网的应用服务器和内部应用。(此组件是可选的)

  • 弹性负载平衡器

    负载平衡器可以跨并行运行的应用服务引导请求,从而提高资源利用率。随着需求的增加,应用程序服务的数量可以增加,负载平衡器将使用它们来平衡请求的处理。(此组件是可选的)

  • 堡垒服务

    Oracle Cloud Infrastructure Bastion 提供对没有公共端点且需要严格资源访问控制的资源(例如裸金属和虚拟机、Oracle MySQL Database ServiceAutonomous Transaction Processing (ATP)、Oracle Cloud Infrastructure Kubernetes Engine ( OKE ) 以及允许安全 Shell 协议 (SSH) 访问的任何其他资源)的受限和限时安全访问。通过 OCI Bastion 服务,您可以启用对专用主机的访问,而无需部署和维护跳转主机。此外,您还可以利用基于身份的权限以及集中、经过审计和有时限的 SSH 会话来改善安全状况。OCI Bastion 消除了对堡垒访问的公共 IP 的需求,消除了提供远程访问的麻烦和潜在攻击面。

  • API 网关

    使用 Oracle Cloud Infrastructure API Gateway ,您可以发布具有可从网络内访问的专用端点的 API,并根据需要向公共互联网公开这些 API。这些端点支持 API 验证、请求和响应转换、CORS、验证和授权以及请求限制。

  • 分析

    Oracle Analytics Cloud 是一项可扩展且安全的公有云服务,可为业务分析师提供基于 AI 的现代自助分析功能,以支持数据准备、可视化、企业报告、增强分析以及自然语言处理和生成。借助 Oracle Analytics Cloud ,您还可以获得灵活的服务管理功能,包括快速设置、轻松扩展和打补丁以及自动化生命周期管理。

  • 身份和访问管理 (IAM)

    Oracle Cloud Infrastructure Identity and Access Management (IAM) 是 Oracle Cloud Infrastructure (OCI) 和 Oracle Cloud Applications 的访问控制层。通过 IAM API 和用户界面,您可以管理身份域和身份域中的资源。每个 OCI IAM 身份域代表一个独立的身份和访问管理解决方案或不同的用户群体。

  • 身份域 (IDom)

    IAM 使用身份域 (IDom) 为 Oracle Cloud 以及 Oracle 和非 Oracle 应用(无论是 SaaS、云托管还是内部部署)提供身份和访问管理功能,例如身份验证、单点登录 (SSO) 和身份生命周期管理。

  • 策略

    Oracle Cloud Infrastructure Identity and Access Management 策略指定谁可以访问哪些资源以及如何访问这些资源。可以在组和区间级别授予访问权限,这意味着您可以编写策略来为组提供特定区间内或租户的特定类型的访问权限。

  • 审计

    Oracle Cloud Infrastructure Audit 服务将对所有受支持的 Oracle Cloud Infrastructure 公共应用编程接口 (API) 端点的调用自动记录为日志事件。所有 OCI 服务都支持 Oracle Cloud Infrastructure Audit 日志记录。

  • 日志记录
    日志记录是一项高度可扩展且完全托管的服务,它允许您从云端资源访问以下类型的日志:
    • 审计日志:与审计服务发出的事件相关的日志。
    • 服务日志:由各个服务(例如 API 网关、事件、函数、负载平衡、对象存储和 VCN 流日志)发出的日志。
    • 定制日志:包含来自定制应用程序、其他云提供商或内部部署环境的诊断信息的日志。
  • 日志分析

    Logging Analytics 是一项基于机器学习的云服务,用于监视、聚合、索引和分析来自内部部署和多云环境的所有日志数据。使用户能够搜索、浏览和关联这些数据,更快地排除和解决问题,并获得洞察,从而做出更明智的运营决策。

推荐

OCI API 网关部署灾难恢复解决方案时,请使用以下建议作为起点。您的要求可能与此处描述的体系结构不同。
  • VCN

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

    选择不与要设置专用连接的任何其他网络(在 Oracle Cloud Infrastructure 、您的内部部署数据中心或其他云提供商中)重叠的 CIDR 块。

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

    设计子网时,请考虑流量和安全要求。将特定层或角色中的所有资源附加到可以用作安全边界的同一子网。

    使用区域子网。

  • 连接(专用 API 网关)

    将资源部署到 OCI 时,您可以从小规模起步,与本地部署网络建立单一连接。此单一连接可通过 OCI FastConnect 或 IPSec VPN 建立。要规划冗余,请考虑内部部署网络与 OCI 之间的所有组件(硬件设备、设备、电路和电源)。还要考虑多样性,以确保在路径之间不共享设施。

注意事项

OCI API 网关部署灾难恢复解决方案时,请考虑以下因素。

  • 使用 OCI DNS 管理区域

    OCI API 网关配置 DNS 记录。您可以使用 OCI DNS 区域来管理 DNS 记录并为 OCI API 网关提供主机名解析。

    为 API 网关获取域(或子域)后,请通过 OCI 控制台或 API 添加 OCI DNS 区域。有关创建 OCI DNS 区域并向其添加记录的详细信息,请参阅“管理 DNS 服务区域”,您可以从下面的“了解详细信息”访问该区域。
    • 在区域中,将 OCI API 网关的定制主机名添加为 CNAME 记录。
    • 成功发布区域更改后,请更新域以使用 OCI DNS 名称服务器。
  • 安全

    使用 OCI Identity and Access Management (IAM) 策略控制谁可以访问您的云资源以及可以执行哪些操作。OCI 云服务使用 IAM 策略,例如允许 OCI API 网关调用函数。OCI API 网关还可以使用 OAuth 验证和授权来控制访问。IAM 允许通过 IAM 进行联合验证和授权。因此, OCI API Gateway 能够针对各种服务和身份验证设置进行身份验证。

  • 性能和成本

    OCI API 网关通过与外部高速缓存服务器(例如 Redis 或 KeyDB 服务器)集成来支持响应高速缓存,这有助于避免后端服务出现不必要的负载。缓存响应时,如果收到类似请求,则可以通过从响应高速缓存检索数据来完成这些请求,而不是将请求发送到后端服务。这样可以减少后端服务的负载,从而提高性能并降低成本。OCI API 网关还缓存授权令牌(基于其离开 TTL 的时间),减少身份提供者上的负载并提高性能。

  • 可用性

    请考虑根据您的部署要求和区域来使用高可用性选项。这些选件包括:在一个区域中跨多个可用性域分配资源,在一个可用性域中跨容错域分配资源。

  • 监视和预警

    设置 API 网关指标的监视和预警。

部署

您可以通过执行以下步骤在 Oracle Cloud Infrastructure 上部署此参考架构:

可从 GitHub 获取 Terraform 代码 oci_apigateway_api。有关链接,请参见下文的“了解更多”。

  1. 使用 Oracle Cloud 凭据登录 Oracle Cloud Infrastructure 控制台
  2. 设置必需的辅助站点网络基础设施,如体系结构图中所示;这些组件包括:VCN、子网、DRG/Internet 网关(专用/公共 API 网关)、安全列表、路由表、服务网关、FastConnect/VPN 以及 CPE、DNS 公共区域
  3. 创建 OCI API 网关。请参阅“创建 API 网关”说明,以准备和创建 OCI API 网关实例。您可以从下面的“浏览更多”访问此文档。
  4. 如果需要,通过配置安全列表、路由表和网络安全组来限制可以访问 API 网关的网络。
  5. 自动执行部署同步。此步骤可确保使用 CI/CD 在主实例与备用实例之间定期同步 API 部署、API 使用计划和 API 订阅的堆栈。

    注意:

    基于 OCI API 管理资源 API 部署、API 使用计划和 API 订阅的每项配置和更改都可以保存并作为 Terraform 堆栈进行管理。然后,可以使用 OCI DevOps 将堆栈上载到辅助端或应用到其他站点。
  6. 执行故障转移任务。
    • 切换到灾难恢复环境。
    • 在中断期间,通过更新 DNS 提供商或 OCI DNS 区域中的 DNS 记录,将流量通过 API 网关路由到辅助站点,从主实例切换到备用实例。您可以通过 OCI 控制台或使用 OCI REST API 手动执行此操作。故障转移过程结束后,备用/辅助站点 API 网关将成为主 API 网关,之前指定为主 API 网关将成为新的备用 API 网关。

确认

  • 作者Peter Obert
  • 贡献者Robert Wunderlich