在 Amazon Outposts 上使用 Amazon RDS - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

在 Amazon Outposts 上使用 Amazon RDS

Amazon RDS 上的 Amazon Outposts 将 RDS for SQL Server、RDS for MySQL 和 RDS for PostgreSQL 数据库扩展到 Amazon Outposts 环境中。Amazon Outposts 使用与公共 Amazon 区域中相同的硬件将 Amazon 服务、基础设施和操作模型引入本地。通过使用 Outposts 上的 RDS,您可以在必须本地运行的业务应用程序附近配置托管数据库实例。有关 Amazon Outposts 的更多信息,请参阅 Amazon Outposts

您可以使用相同的 Amazon Web Services Management Console、Amazon CLI 和 RDS API 来配置和管理本地 Outposts 上的 RDS 数据库实例,就像您对 Amazon 云中运行的 RDS 数据库实例所做的一样。Outposts 上的 RDS 自动执行 Amazon S3 中的数据库配置、操作系统和数据库修补、备份和长期存档等任务。

Outposts 上的 RDS 支持数据库实例的自动备份。要备份和还原数据库实例,需要 Outpost 和 Amazon 区域之间的网络连接。Outpost 中的所有数据库快照和事务日志都存储在您的 Amazon 区域中。从您的 Amazon 区域中,您可以将数据库快照中的数据库实例还原到其他 Outpost。有关更多信息,请参阅使用备份

Outposts 上的 RDS 支持数据库实例的自动维护和升级。有关更多信息,请参阅 维护数据库实例

Outposts 上的 RDS 使用 Amazon Key Management Service (Amazon KMS) 密钥对数据库实例和数据库快照进行静态加密。有关静态加密的更多信息,请参阅加密 Amazon RDS 资源

默认情况下,Outposts 子网中的 EC2 实例可以使用 Amazon Route 53 DNS 服务将域名解析为 IP 地址。使用 Route 53,您的 DNS 解析时间可能会更长,这取决于 Outposts 和 Amazon 区域之间的路径延迟。在这种情况下,您可以使用在本地环境中以本地方式安装的 DNS 服务器。有关更多信息,请参阅 Amazon Outposts 用户指南中的 DNS

与 Amazon 区域的网络连接不可用时,您的数据库实例将继续在本地运行。您可以将本地 DNS 服务器配置为辅助服务器,使用 DNS 名称解析继续访问数据库实例。但是,您无法创建新的数据库实例或对现有数据库实例执行新操作。没有连接时,不会进行自动备份。如果某个数据库实例发生故障,则在恢复连接之前不会自动替换该数据库实例。我们建议尽快恢复网络连接。

Amazon RDS 上的 Amazon Outposts 的先决条件

以下是使用 Amazon RDS 上的 Amazon Outposts 的先决条件:

  • 在您的本地数据中心安装 Amazon Outposts。有关 Amazon Outposts 的更多信息,请参阅 Amazon Outposts

  • 确保您至少有一个子网可用于 Outposts 上的 RDS。您可以将同一子网用于其他工作负载。

  • 确保 Outpost 和 Amazon 区域之间具有可靠的网络连接。

Amazon RDS 上的 Amazon Outposts 对 Amazon RDS 功能的支持

功能 支持 备注 更多信息

数据库实例配置

您只能为 RDS for SQL Server、RDS for MySQL 和 RDS for PostgreSQL 数据库引擎创建数据库实例。支持以下版本:

  • 支持以下 Microsoft SQL Server 版本:

    • 15.00.4043.16.v1 及更高的 15 版本

    • 14.00.3294.2.v1 及更高的 14 版本

    • 13.00.5820.21.v1 及更高的 13 版本

  • MySQL 版本 8.0.17、8.0.19、8.0.20 和 8.0.21

  • PostgreSQL 版本 12.5、12.6、13.1 和 13.2

为 Amazon RDS 上的 Amazon Outposts 创建数据库实例

使用 Microsoft SQL Server Management Studio 连接到 Microsoft SQL Server 数据库实例

某些 TLS 版本和加密密码可能不安全。要关闭它们,请按照自定义 RDS for SQL Server 上的安全参数中的说明进行操作。

连接到运行 Microsoft SQL Server 数据库引擎的数据库实例

修改主用户密码

修改 Amazon RDS 数据库实例

重命名数据库实例

修改 Amazon RDS 数据库实例

重启数据库实例

重启中的数据库实例

停止数据库实例

暂时停止 Amazon RDS 数据库实例

启动数据库实例

启动之前停止的 Amazon RDS 数据库实例

多可用区部署

Amazon RDS 的高可用性(多可用区)

数据库参数组

使用数据库参数组

只读副本

使用只读副本

静态加密

Outposts 上的 RDS 不支持未加密的数据库实例。

加密 Amazon RDS 资源

Amazon Identity and Access Management (IAM) 数据库身份验证

适用于 MySQL 和 PostgreSQL 的 IAM 数据库身份验证

将 IAM 角色与数据库实例关联

add-role-to-db-instance CLI 命令和 AddRoleToDBInstance RDS API 操作

Kerberos 身份验证

Kerberos 身份验证

为 Amazon RDS 资源添加标签

为 Amazon RDS 资源添加标签

选项组

使用选项组

修改维护时段

维护数据库实例

自动次要版本升级

自动升级次要引擎版本

修改备份时段

使用备份修改 Amazon RDS 数据库实例

数据库实例扩展

要扩展数据库实例,请修改其本地数据库实例类。不支持存储扩展。

修改 Amazon RDS 数据库实例

手动和自动数据库实例快照

手动和自动数据库实例快照存储在您的 Amazon 区域中。

创建数据库快照

从数据库快照还原

从数据库快照还原

从 Amazon S3 还原数据库实例

将备份还原到 MySQL 数据库实例

将快照数据导出到 Amazon S3

将数据库快照数据导出到 Amazon S3

时间点恢复

将数据库实例还原至指定时间

增强监控

使用增强监测来监控操作系统指标

Amazon CloudWatch 监控

您可以查看适用于Amazon区域中数据库的同一组指标。

使用 Amazon CloudWatch 监控 Amazon RDS 指标

将数据库引擎日志发布到 CloudWatch Logs

将数据库日志发布到 Amazon CloudWatch Logs

事件通知

使用 Amazon RDS 事件通知

Amazon RDS Performance Insights

在 Amazon RDS 上使用 Performance Insights 进行监控

查看或下载数据库日志

Outposts 上的 RDS 不支持使用控制台查看数据库日志或使用 CLI 或 RDS API 描述数据库日志。

Outposts 上的 RDS 不支持使用控制台下载数据库日志或使用 CLI 或 RDS API 下载数据库日志。

使用 Amazon RDS 数据库日志文件

Amazon RDS 代理

使用 Amazon RDS Proxy 管理连接

Amazon RDS for MySQL 存储过程

Amazon RDS SQL 上的 MySQL 参考

使用 RDS for MySQL 的外部数据库进行复制

利用 Amazon RDS 外部运行的 MySQL 或 MariaDB 实例进行复制

Microsoft SQL Server Amazon RDS 本机备份和还原

导入和导出 SQL Server 数据库
注意

Outposts 上的 RDS 不支持要求所有数据都保留在数据中心中的使用案例。

Outposts 上的 RDS 将数据库备份和日志存储在您的 Amazon 区域中。

Amazon RDS 上的 Amazon Outposts 支持的数据库实例类

Amazon RDS 上的 Amazon Outposts 支持以下数据库实例类:

  • 通用数据库实例类

    • db.m5.24xlarge

    • db.m5.12xlarge

    • db.m5.4xlarge

    • db.m5.2xlarge

    • db.m5.xlarge

    • db.m5.large

  • 内存优化型数据库实例类

    • db.r5.24xlarge

    • db.r5.12xlarge

    • db.r5.4xlarge

    • db.r5.2xlarge

    • db.r5.xlarge

    • db.r5.large

Outposts 上的 RDS 数据库实例仅支持通用 SSD 存储。有关数据库实例类的更多信息,请参阅数据库实例类

Amazon RDS 负责管理数据库实例的维护和恢复,并需要 Outpost 上的活动容量来执行此操作。我们建议您为生产环境中的每个数据库实例类配置 N+1 个 EC2 实例。Outposts 上的 RDS 可以将这些 EC2 实例的额外容量用于维护和修复操作。例如,如果您的生产环境有 3 个 db.m5.large 和 5 个 db.r5.xlarge 数据库实例类,那么我们建议它们至少配置 4 个 m5.large EC2 实例和 6 个 r5.xlarge EC2 实例。有关更多信息,请参阅 Amazon Outposts 用户指南中的 Amazon Outposts 中的弹性

适用于 Outposts 上的 RDS 的客户拥有的 IP 地址

Amazon Outposts 使用您提供的有关本地网络的信息来创建地址池,该地址池称为客户拥有的 IP 地址池(CoIP 池)。客户拥有的 IP 地址 (COIP) 通过您的本地网络提供连接到 Outpost 子网中资源的本地或外部连接。有关 CoIP 的更多信息,请参阅 Amazon Outposts 用户指南中的客户拥有的 IP 地址

每个 Outposts 上的 RDS 数据库实例都有一个用于其 Virtual Private Cloud (VPC) 内流量的私有 IP 地址。此私有 IP 地址不可公开访问。您可以使用公开选项指定数据库实例除了私有 IP 地址之外是否还具有公有 IP 地址。使用公有 IP 地址进行连接是通过互联网路由它们,在某些情况下可能会导致较高的延迟。

Outposts 上的 RDS 支持通过子网为数据库实例启用 CoIP,而不是使用这些私有和公有 IP 地址。在为 Outposts 上的 RDS 数据库实例启用 CoIP 时,您将使用数据库实例终端节点连接到数据库实例。Outposts 上的 RDS 自动将 CoIP 用于来自 VPC 内部和外部的所有连接。

COIP 可以为 Outposts 上的 RDS 数据库实例带来以下好处:

  • 降低连接延迟

  • 增强安全性

您可以使用 Amazon Web Services Management Console、Amazon CLI 或 RDS API 为 Outposts 上的 RDS 数据库实例启用或禁用 CoIP:

  • 通过 Amazon Web Services Management Console 来启用时,请使用访问类型中的客户拥有的 IP 地址 (CoIP) 来启用 CoIP。使用其他设置中的一项设置来禁用它。

    
						Amazon Web Services Management Console 中的客户拥有的 IP 地址 (CoIP) 设置。
  • 通过 Amazon CLI 来启用/禁用时,请使用 --enable-customer-owned-ip | --no-enable-customer-owned-ip 选项。

  • 通过 RDS API 来启用/禁用时,请使用 EnableCustomerOwnedIp 参数。

您可以在执行以下任一操作时启用或禁用 CoIP:

注意

如果您为数据库实例启用 CoIP,但 Amazon RDS 无法为数据库实例分配 CoIP,则数据库实例状态将更改为不兼容的网络。有关数据库实例状态的更多信息,请参阅 查看数据库实例状态

以下限制适用于对 Outposts 上的 RDS 数据库实例的 CoIP 支持:

  • 为数据库实例启用 CoIP 时,请确保对数据库实例禁用了公开可用性。

  • 您无法将 CoIP 池中的 CoIP 分配给数据库实例。在为数据库实例启用 CoIP 时,Amazon RDS 会自动将 CoIP 池中的 CoIP 分配给数据库实例。

  • 您必须使用拥有 Outpost 资源(拥有者)的 Amazon 账户,或与同一组织中的其他 Amazon 账户(使用者)共享以下资源。

    • Outpost

    • 数据库实例 VPC 的本地网关 (LGW) 路由表

    • LGW 路由表的 CoIP 池

    有关更多信息,请参阅 Amazon Outposts 用户指南中的使用共享的 Amazon Outposts 资源

为 Amazon RDS 上的 Amazon Outposts 创建数据库实例

创建 Amazon RDS 上的 Amazon Outposts 数据库实例类似于在 Amazon 云中创建 Amazon RDS 数据库实例。但是,您必须指定与 Outpost 关联的数据库子网组。

Amazon VPC 可以跨越 Amazon 区域中的所有可用区。您可以通过添加 Outpost 子网将Amazon区域中的任何 VPC 扩展到您的 Outpost。要将 Outpost 子网添加到 VPC,请在创建子网时指定 Outpost 的 Amazon 资源名称 (ARN)。

在创建 Outposts 上的 RDS 数据库实例之前,您可以创建一个数据库子网组,该组包括一个与您的 Outpost 相关联的子网。在创建 Outposts 上的 RDS 数据库实例时,请指定此数据库子网组。您也可以在创建数据库实例时选择创建新的数据库子网组。

有关配置 Amazon Outposts 的信息,请参阅《Amazon Outposts 用户指南》

使用控制台创建 Outposts 上的 RDS 数据库实例

  1. 创建包括一个与您的 Outpost 相关联的子网的数据库子网组。

    要在创建数据库实例时为 Outpost 创建新的数据库子网组,请跳过此步骤。

    注意

    要为 Amazon 云创建数据库子网组,请至少指定两个子网。但是,对于 Outpost 数据库子网组,可以只指定一个子网。

    1. 登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

    2. 在 Amazon RDS 控制台的右上角,选择要在其中创建数据库子网组的 Amazon 区域。

    3. 选择子网组,然后选择创建数据库子网组

      将显示创建数据库子网组页面。

      
									“创建数据库子网组”页面。
    4. 为您的新数据库子网组设置以下值:

      • Name (名称) 数据库子网组的名称

      • Description (描述) 数据库子网组的描述

      • VPC 要为其创建数据库子网组的 VPC

    5. 对于可用区,为您的 Outpost 选择可用区。

    6. 对于子网,选择供 Outposts 上的 RDS 使用的子网。

      您的数据库子网组必须只具有一个子网。

    7. 选择 Create (创建) 以创建数据库子网组。

  2. 创建数据库实例,并为您的数据库实例选择 Outpost。

    1. 登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.amazonaws.cn/rds/

    2. 在 Amazon RDS 控制台的右上角,选择要在其中创建数据库实例的 Amazon 区域。

    3. 在导航窗格中,选择数据库

    4. 选择创建数据库

      Amazon Web Services Management Console 将检测您已配置的可用 Outpost,并在数据库位置部分中显示本地选项。

      
									“创建 Outposts 上的 RDS 数据库实例”页。
      注意

      如果您尚未配置任何 Outpost,则数据库位置部分不会显示,或 Outposts 上的 RDS 选项在选择本地创建方法部分中不可用。

    5. 选择以下设置:

      • Database location (数据库位置) On-premises (本地)

      • 本地创建方法 Outposts 上的 RDS

      • Outpost 使用具有数据库实例的数据库子网组的 Virtual Private Cloud (VPC) 的 Outpost。此处的 VPC 必须基于 Amazon VPC 服务。

      • Virtual Private Cloud (VPC) 包含数据库实例的数据库子网组的 VPC。

      • VPC 安全组 数据库实例的 Amazon VPC 安全组。

      • 子网组 数据库实例的数据库子网组。

        您可以选择与 Outpost 关联的现有数据库子网组。如果您没有创建数据库子网组,则可以为 Outpost 创建新的数据库子网组。此数据库子网组中只允许一个子网。

    6. 对于其余部分,请指定数据库实例设置。

      有关创建数据库实例时每个设置的信息,请参阅数据库实例的设置

    7. 选择创建数据库

      如果选择使用自动生成的密码,则数据库页面上将显示查看凭证详细信息按钮。

      要查看数据库实例的主用户名和密码,请选择查看凭证详细信息

      
									自动生成密码后的主用户凭证。

      要以主用户身份连接到数据库实例,请使用显示的用户名和密码。

      重要

      您无法再次查看主用户密码。如果您不记录它,您可能需要更改它。要在数据库实例可用后更改主用户密码,请修改数据库实例。有关修改 数据库实例的更多信息,请参阅 修改 Amazon RDS 数据库实例

    8. 对于 Databases (数据库),选择新数据库实例的名称。

      在 RDS 控制台上,将显示新数据库实例的详细信息。数据库实例具有 Creating (正在创建) 状态,直到该数据库实例完成创建并可供使用。当状态变为 Available (可用) 时,您可以连接到该数据库实例。根据所分配的数据库实例类和存储的不同,新数据库实例可能需要数分钟时间才能变得可用。

      
									我的数据库实例详细信息

      数据库实例可用后,可以像在云中管理 RDS 数据库实例一样进行管理。

要使用 Amazon CLI 在 Outpost 中创建新的数据库实例,请首先通过调用 create-db-subnet-group 命令来创建供 Outposts 上的 RDS 使用的数据库子网组。对于 --subnet-ids,请在 Outpost 中指定供 Outposts 上的 RDS 使用的子网组。

对于 Linux、macOS 或 Unix:

aws rds create-db-subnet-group \ --db-subnet-group-name myoutpostdbsubnetgr \ --db-subnet-group-description "DB subnet group for Outposts 上的 RDS" \ --subnet-ids subnet-abc123

对于 Windows:

aws rds create-db-subnet-group ^ --db-subnet-group-name myoutpostdbsubnetgr ^ --db-subnet-group-description "DB subnet group for Outposts 上的 RDS" ^ --subnet-ids subnet-abc123

接下来,使用以下参数调用 create-db-instance 命令。指定 Outpost 的可用区、与 Outpost 关联的 Amazon VPC 安全组以及您为 Outpost 创建的数据库子网组。您可以包括以下选项:

  • --db-instance-identifier

  • --db-instance-class

  • --engine

  • --availability-zone

  • --vpc-security-group-ids

  • --db-subnet-group-name

  • --allocated-storage

  • --master-user-name

  • --master-user-password

  • --backup-retention-period

  • --storage-encrypted

  • --kms-key-id

以下示例创建名为 myoutpostdbinstance 的 MySQL 数据库实例。

对于 Linux、macOS 或 Unix:

aws rds create-db-instance \ --db-instance-identifier myoutpostdbinstance \ --engine-version 8.0.17 \ --db-instance-class db.m5.large \ --engine mysql \ --availability-zone us-east-1d \ --vpc-security-group-ids outpost-sg \ --db-subnet-group-name myoutpostdbsubnetgr \ --allocated-storage 100 \ --master-username masterawsuser \ --master-user-password masteruserpassword \ --backup-retention-period 3 \ --storage-encrypted \ --kms-key-id mykey

对于 Windows:

aws rds create-db-instance ^ --db-instance-identifier myoutpostdbinstance ^ --engine-version 8.0.17 ^ --db-instance-class db.m5.large ^ --engine mysql ^ --availability-zone us-east-1d ^ --vpc-security-group-ids outpost-sg ^ --db-subnet-group-name myoutpostdbsubnetgr ^ --allocated-storage 100 ^ --master-username masterawsuser ^ --master-user-password masteruserpassword ^ --backup-retention-period 3 ^ --storage-encrypted ^ --kms-key-id mykey

要创建 PostgreSQL 数据库实例,请为 --engine 选项指定 postgres。要创建 Microsoft SQL Server 数据库实例,请为 --engine 选项指定 sqlserver-eesqlserver-sesqlserver-exsqlserver-web

有关创建数据库实例时每个设置的信息,请参阅数据库实例的设置

要使用 RDS API 在 Outpost 中创建新的数据库实例,请首先通过调用 CreateDBSubnetGroup 操作来创建供 Outposts 上的 RDS 使用的数据库子网组。对于 SubnetIds,请在 Outpost 中指定供 Outposts 上的 RDS 使用的子网组。

接下来,使用以下参数调用 CreateDBInstance 操作。指定 Outpost 的可用区、与 Outpost 关联的 Amazon VPC 安全组以及您为 Outpost 创建的数据库子网组。

  • AllocatedStorage

  • AvailabilityZone

  • BackupRetentionPeriod

  • DBInstanceClass

  • DBInstanceIdentifier

  • VpcSecurityGroupIds

  • DBSubnetGroupName

  • Engine

  • EngineVersion

  • MasterUsername

  • MasterUserPassword

  • StorageEncrypted

  • KmsKeyID

有关创建数据库实例时每个设置的信息,请参阅数据库实例的设置