问:Amazon Aurora 是什么?

Amazon Aurora 是一种关系数据库引擎,既具有高端商用数据库的速度和和可靠性,又具有开源数据库的简单性和成本效益。Amazon Aurora MySQL 的性能最高可以是 MySQL 的五倍,且无需对大多数 MySQL 应用程序进行任何更改;同样,Amazon Aurora PostgreSQL 的性能最高可以是 PostgreSQL. 的三倍。Amazon RDS 负责管理您的 Amazon Aurora 数据库,同时处理耗时型任务,如预配置、修补、备份、恢复、故障检测和修复。您只需为您使用的 Amazon Aurora 数据库实例支付简单的月度费用。不需要前期成本或长期承诺。

问:“与 MySQL 兼容”是什么意思?

它意味着,您已用于 MySQL 数据库的代码、应用程序、驱动程序和工具可与 Aurora 配合使用,只需对其进行少量更改或不需要更改。Amazon Aurora 数据库引擎设计旨在能使用 InnoDB 存储引擎与 MySQL 5.6 连接兼容。MyISAM 存储引擎之类的特定 MySQL 功能不可用于 Amazon Aurora。

问:“与 PostgreSQL 兼容”是什么意思?

它意味着,您已用于 PostgreSQL 数据库的大多数代码、应用程序、驱动程序和工具可与 Aurora 配合使用,只需对其进行少量更改或无需更改。Amazon Aurora 数据库引擎设计旨在与 PostgreSQL 9.6 连接兼容,且支持的 PostgreSQL 扩展与适用于 PostgreSQL 9.6 的 RDS 所支持的 PostgreSQL 扩展相同。 

问:怎样才能试用 Amazon Aurora?

要试用 Amazon Aurora,请登录 AWS 控制台,选择数据库类别下的 RDS,然后选择 Amazon Aurora 作为您的数据库引擎。

问:Amazon Aurora 如何收费?

请参阅我们的定价页面,了解最新的定价信息。

问:Amazon Aurora 在三个可用区间以六种方法复制数据库卷的每个组块。这是否意味着我的有效存储价格将是定价页面上所显示价格的三到六倍?

否。Amazon Aurora 复制到价格是捆绑的。我们将根据您的数据库在数据库层消耗的存储量向您收费,而非 Amazon Aurora 的虚拟存储层消耗的存储量。

问:Amazon Aurora 的可用 AWS 区域有哪些?

请查看我们的定价页面,了解有关区域和价格的最新信息。

问:如何从 MySQL 向 Amazon Aurora 迁移,反之亦然?

您有多种选择。您可以使用标准的 mysqldump 实用工具将数据从 MySQL 中导出,并用 mysqlimport 实用工具将数据导入 Amazon Aurora,反之亦然。您还可以使用 Amazon RDS 的数据库快照迁移功能通过 AWS 管理控制台将 RDS MySQL 数据库快照迁移到 Amazon Aurora 中。虽然持续时间去聚越格式和数据集大小,但迁移过程对于大多数客户而言,可在一小时内完成。有关更多信息,请参阅 Best Practices for Migrating MySQL Databases to Amazon Aurora

问:如何从 PostgreSQL 向 Amazon Aurora 迁移,反之亦然?

您有多种选择。您可以使用标准的 pg_dump 实用工具将数据从 PostgreSQL 中导出,并用 pg_restore 实用工具将数据导入 Amazon Aurora,反之亦然。您还可以使用 Amazon RDS 的数据库快照迁移功能通过 AWS 管理控制台将 RDS PostgreSQL 9.6 数据库快照迁移到 Amazon Aurora 中。虽然持续时间取决于格式和数据集大小,但迁移过程对于大多数客户而言,可在一小时内完成。

问:AWS 免费套餐是否包括 Amazon Aurora?

目前还不包括。Amazon RDS 的 AWS 免费套餐为微型数据库实例带来了许多优势;Amazon Aurora 暂不提供微型数据库实例支持。请参阅我们的定价页面,了解最新的定价信息。

问:Amazon Aurora 中的 IO 是什么?它们是如何计算的?

IO 是由 Aurora 数据库引擎依靠基于 SSD 的虚拟化存储层执行的输入/输出操作。每一个数据库页面读取操作为一个 IO。Aurora 数据库引擎依靠存储层发出读取,以获取不在缓冲缓存中的数据库页面。Aurora MySQL 中的每个数据库页面为 16KB,Aurora PostgreSQL 中的每个数据库页面为 8KB。

Aurora 的目的是消除不必要的 IO 操作,以降低成本,并确保资源可服务于读/写流量。只有将事务日志记录推送到存储层,完成耐久型写入时,才消耗写入 IO。写入 IO 以 4KB 单位计算。例如,1024 字节的事务日志记录计为一个 IO 操作。然而,当事务日志小于 4KB 时,同时写入操作可通过 Aurora 数据库引擎批量进行,以便优化 I/O 消耗。与传统的数据库引擎不同,Amazon Aurora 从不将修改后的数据库页面推送到存储层,进一步节省了 IO 消耗。

您可以在 AWS 控制台看到 Aurora 实例消耗的 IO 数量。要查询 IO 消耗,请转到控制台的 RDS 部分,查看您的实例列表,选择 Aurora 实例,然后在监控部分查找“计算的读取操作”和“计算的写入操作”指标。

问:我是否需要更改客户端驱动程序才能使用 Amazon Aurora PostgreSQL?

不需要。Amazon Aurora 支持标准 PostgreSQL 数据库驱动程序。

问:什么是 Amazon Aurora Serverless?

在 re:Invent 2017 大会上,我们发布了 Amazon Aurora Serverless 的预览版,这是 MySQL 兼容版的新配置,可以自动纵向和横向扩展数据库容量以满足应用程序需求,从而为您节省宝贵的时间、精力和成本。

问:如何开始使用 Amazon Aurora Serverless?

Amazon Aurora Serverless 现已在 Amazon Aurora 的 MySQL 兼容版的预览版中提供。您可以注册请求参与。我们将在以后公开上市。

问:“MySQL 的五倍性能”是什么意思?

Amazon Aurora 通过将数据库引擎与为数据库工作负载构建的基于 SSD 的虚拟化存储层紧密集成,减少存储系统的写入操作,最大程度降低锁竞争并消除数据库进程线程所产生的延迟,使性能大幅超过 MySQL。我们根据 SysBench 对 r3.8xlarge 实例进行的测试表明,Amazon Aurora 每秒提供超过 500000 次选择和 100000 次更新,是在同一硬件上运行相同基准的 MySQL 的五倍。有关此基准的详细说明以及如何自行复制此基准,请参阅《Amazon Aurora MySQL 性能基准指南》

问:“PostgreSQL 的三倍性能”是什么意思?

Amazon Aurora 通过将数据库引擎与为数据库工作负载构建的基于 SSD 的虚拟化存储层紧密集成,减少存储系统的写入操作,最大程度降低锁竞争并消除数据库进程线程所产生的延迟,使性能大幅超过 PostgreSQL。我们根据 SysBench 对 r4.16xlarge 实例进行的测试表明,Amazon Aurora 每秒提供的选择和更新次数,是在同一硬件上运行相同基准的 PostgreSQL 的三倍。有关此基准的详细说明以及如何自行复制此基准,请参阅《Amazon Aurora PostgreSQL 性能基准指南》

问:如何优化 Amazon Aurora MySQL 的数据库工作负载?

由于 Amazon Aurora 与 MySQL 5.6 兼容,因此现有 MySQL 应用程序和工具无需修改即可运行。然而,Amazon Aurora 优于 MySQL 的一个地方就是具有大量并行工作负载。为了在 Amazon Aurora 上最大限度地提高您的工作负载吞吐量,我们建议您构建自己的应用程序来支持大量并行查询和事务。

问:如何优化 Amazon Aurora PostgreSQL 的数据库工作负载?

由于 Amazon Aurora 与 PostgreSQL 9.6 兼容,因此现有 PostgreSQL 应用程序和工具无需修改即可运行。然而,Amazon Aurora 优于 PostgreSQL 的一个地方就是具有大量并行工作负载。为了在 Amazon Aurora 上最大限度地提高您的工作负载吞吐量,我们建议您构建自己的应用程序来支持大量并行查询和事务。

问:Amazon Aurora 数据库的最低存储限制和最大存储限制是什么?

最低存储为 10GB。根据您的数据库使用量,您的 Amazon Aurora 存储将以 10GB 的增量自动增长到 64 TB,而不会影响数据库的性能。无需提前预配置存储。

问:如何扩展与我的 Amazon Aurora 数据库实例相关联的计算资源?

在 AWS 管理控制台中,选择所需的数据库实例并单击“修改”按钮,即可扩展分配至数据库实例的计算资源。可通过更改数据库实例类来修改内存和 CPU 资源。

修改数据库实例类时,在指定的维护窗口期间将应用您请求的更改。或者,您可以使用“立即应用”标记立即应用您的扩展请求。当您执行扩展操作时,这两种选项均会造成几分钟的可用性影响。请注意,任何其他待定的系统更改也将同时应用。

问:我如何启用我的数据库实例备份?

Amazon Aurora 数据库实例上始终都会启用自动备份。备份不影响数据库性能。

问:我能否拍摄数据库快照并将其留在身边在我需要时使用?

能,拍摄快照时不影响性能。请注意,从数据库实例中恢复数据需要创建一个新的数据库实例。

问:如果我的数据库发生故障,应该用什么恢复路径?

Amazon Aurora 在 3 个可用区间自动维护 6 个数据副本,并将自动尝试在运行状况正常的可用区恢复您的数据库,而不会产生数据损失。您的数据不太可能在 Amazon Aurora 存储内不可用,您可以从数据库快照中进行恢复或对新实例执行时间点恢复操作。请注意,时间点恢复操作的最迟可恢复时间在过去最高可达 5 分钟。

问:如果删除数据库实例,我的自动化备份和数据库快照会发生什么状况?

您可以选择在删除数据库实例时创建最终的数据库快照。如果您进行了此操作,您可以使用此数据库快照稍后恢复已删除的数据库实例。在您删除数据库实例后,Amazon Aurora 会将用户创建的这个最终数据库快照与其他所有人工创建的数据库快照一起保留。删除数据库实例后只会保留数据库快照(即,为时间点恢复创建的自动备份不会保留)。

问:我能够将快照共享给其他 AWS 账户?

能。借助 Aurora,您可以创建数据库快照,用于以后恢复数据库。您可以与不同的 AWS 账户共享这一快照,并且对方可以使用您的快照来恢复包含您的数据的数据库。您甚至还可以将您的快照公开,这样,任何人都能恢复包含您的(公开)数据的数据库。您可以利用这一功能在拥有不同 AWS 账户的多种环境(生产、开发/测试、调试等环境)之间共享数据,也可以将所有数据的备份安全保存到一个单独的账户中,以防主 AWS 账户受到安全威胁。

问:我需要支付共享快照的费用吗?

在账户之间共享快照不需要付费。但是,您需要为快照本身以及通过共享快照恢复的任何数据库付费。了解关于 Aurora 定价的更多信息。

问:我能否自动共享快照?

我们不支持自动数据库快照共享。要共享快照,您必须手动创建一个快照,然后共享该快照。

问:我能将快照共享给多少个账户?

您可以将手动快照共享给最多 20 个 AWS 账户 ID。如果您需要将快照共享给 20 个以上的账户,则可以将快照公开,或联系支持人员要求增加配额。

问:我可以将我的 Aurora 快照共享到哪些区域?

您可以将您的 Aurora 快照共享到支持 Aurora 的所有 AWS 区域。

问:我能否在不同区域之间共享 Aurora 快照?

不能。只有与分享快照的账户处于同一区域内的账户才能访问您共享的 Aurora 快照。

问:我能否共享加密的 Aurora 快照?

问:Amazon Aurora 如何提高我的数据库对磁盘故障的容错能力?

Amazon Aurora 会将您的数据库卷分成分散在很多个磁盘上的 10GB 的区段。每 10GB 的数据库卷组块都能在三个可用区间用六种方法进行复制。Amazon Aurora 的设计可透明应对多达两个数据副本的损失,而不会影响数据库写入可用性,还能在不影响读取可用性的情况下应对多达三个副本。Amazon Aurora 存储还具有自我修复能力。可连续扫描数据块和磁盘有无出错并自动修复之。

问:Aurora 如何在数据库崩溃后提高恢复时间?

与其他数据库不同的是,Amazon Aurora 在数据库崩溃之后不需要重放最后一个数据库检查点(通常为 5 分钟)的重做日志,且不需要在数据库可用于操作之前确认所有更改都已应用。在大多数情况下,这会将数据库的重启时间降低到 60 秒以下。Amazon Aurora 会将缓冲缓存移出数据库进程,并在重启时使其立即可用。这将阻止您压制访问,直到重新住入缓存以避免停止为止。

问:Aurora 支持哪些类型的副本?

Amazon Aurora MySQL 和 Amazon Aurora PostgreSQL 都支持 Amazon Aurora 副本,这些副本与主实例共享相同的底层卷。主实例作出的更新对所有的 Amazon Aurora 副本可见。借助 Amazon Aurora MySQL,您还可以根据 MySQL 基于二进制日志的复制引擎创建 MySQL 只读副本。在 MySQL 只读副本中,您的主实例中的数据会作为事务在您的副本上重放。对于大多数使用案例,包括读取扩展和高可用性,我们推荐使用 Amazon Aurora 副本。

您可以根据您的应用程序需求灵活地混合搭配这两种副本类型。

功能 Amazon Aurora 副本 MySQL 副本
副本数量 最多 15 个 最多 5 个
复制类型 异步(毫秒) 异步(秒)
对主实例的性能影响
作为故障转移目标 是(无数据损失) 是(可能有几分钟的数据损失)
自动故障转移
支持用于定义的复制延迟
支持不同的数据或计划与主实例

问:我能否拥有跨地区 Amazon Aurora 副本?

能,您可以通过 Aurora MySQL 从 RDS 控制台创建跨地区 Aurora 副本。跨地区复制基于单线程的 MySQL binlog 复制操作,复制滞后时间会受更改/应用速度以及所选地区之间的网络通信延迟情况的影响。Aurora PostgreSQL 目前不支持跨地区副本。

问:我能否在跨区域副本集群上创建 Aurora 只读副本?
可以,您可以在与跨区域副本具有相同底层存储的集群上添加 Aurora 副本。跨区域副本成为该集群上的主副本,集群上的 Aurora 副本通常比主副本滞后 10 毫秒。

问:我能否将应用程序从当前的主副本故障转移到跨区域副本?
可以,您可以通过 RDS 控制台将跨区域副本提升为主副本。根据具体的工作负载情况,提升过程一般需要几分钟。一旦发起提升过程,跨区域复制将会停止。

问:我能否将特定副本指定为优先故障转移目标?

答:能。您可以为集群中的每个实例指定一种提升优先级分层。如果主实例发生故障,Amazon RDS 会将优先级最高的副本提升为主实例。如果同一优先级分层中的 2 个或更多副本出现冲突,Amazon RDS 会将大小相同的副本提升为主实例。有关故障转移逻辑的更多信息,请阅读 Amazon Aurora User Guide。

问:我能否在实例创建完成后再修改优先级分层?

答:您随时可以修改实例的优先级分层。只是修改优先级分层并不会触发故障转移。

问:我能否阻止特定副本被提升为主实例?

答:如果您不希望副本被提升为主实例,则可为其指定较低的优先级分层。不过,如果集群上优先级较高的副本因为某些原因无法运行或使用,那么 Amazon RDS 将提升优先级较低的副本。

问:如何改进单个 Amazon Aurora 数据库的可用性?

您可以添加 Amazon Aurora 副本。Amazon Aurora 副本与主实例共享同一个底层存储。任何 Amazon Aurora 副本都可在不损失任何数据的情况下被提升为主实例,因此,它可用于在主数据库实例发生故障时提高容错能力。要想提高数据库可用性,只需在 3 个可用区的任何一个创建 1 到 15 个副本,且 Amazon RDS 将在发生数据库运行中断时将其纳入故障转移主选择中。

问:执行故障转移时会发生什么状况?这种情况会持续多长时间?

Amazon Aurora 会自动处理故障转移,以便您的应用程序可以尽快恢复数据库操作,而无需人工管理干预。

  • 如果您在相同或不同的可用区中有 Amazon Aurora 副本,当进行故障转移时,Amazon Aurora 会翻转您的数据库实例的别名记录 (CNAME),以指向运行状态正常的副本;相应地,此副本会晋升为新的主实例。从开始到结束,故障转移通常会在 30 秒内完成。
  • 如果您没有 Amazon Aurora 副本(即单个实例),则 Aurora 会先尝试在原始实例的可用区中新建数据库实例。如果不能这么做,则 Aurora 会尝试在不同的可用区中新建数据库实例。从始至终,通常会在 15 分钟内完成故障转移。

您的应用程序应在连接丢失时重试数据库连接。

问:如果我的一个主数据库和 Amazon Aurora 副本积极获取读取流量且发生故障转移,会发生什么?

Amazon RDS 将自动检测您的主实例发生的问题,并开始将您的读取/写入流量路由到 Amazon Aurora 副本。平均来说,此故障转移将在 30 秒内完成。此外,您的 Amazon Aurora 副本提供的读取流量将短暂中断。

问:我的副本将落后主实例多久?

由于 Amazon Aurora 副本与主实例共享同一个数据卷,几乎没有复制滞后。据我们观察,滞后时间一般在 10 毫秒内。对于 MySQL 只读副本,复制滞后可根据更改/应用率以及网络通信的延迟无限增长。不过,一般情况下,1 分钟以内的复制滞后是很常见的。

问:什么是 Amazon Aurora Multi-Master?

在 re:Invent 2017 大会上,我们发布了 Amazon Aurora Multi-Master 的预览版,它是 Aurora MySQL 兼容版的一项新功能,增加了跨多个可用区间扩展写入性能的功能,允许应用程序将读取/写入工作负载定向到数据库集群中的多个实例,并以更高的可用性运行。

问:如何开始使用 Amazon Aurora Multi-Master?

Amazon Aurora Multi-Master 现已在 Amazon Aurora 的 MySQL 兼容版的预览版中提供。您可以注册请求参与。我们将在以后公开上市。

问:我能否在 Amazon Virtual Private Cloud (Amazon VPC) 中使用 Amazon Aurora?

能,所有 Amazon Aurora 数据库实例都必须在 VPC 中创建。借助 Amazon VPC,您可以定义与自己的数据中心运行的传统网络非常相似的虚拟网络拓扑。这样一来,您可以对谁能访问您的 Amazon Aurora 数据库进行完全控制。

问:Amazon Aurora 会加密我的动态数据和静态数据吗?

可以。Amazon Aurora 使用 SSL (AES-256) 保护数据库实例与应用程序之间的连接。Amazon Aurora 可让您使用通过 AWS Key Management Service (KMS) 管理的密钥加密您的数据库。在通过 Amazon Aurora 加密运行的数据库实例上,静态存储于底层存储的数据都将加密,同一集群的自动备份、快照和副本也是如此。加密和解密操作的处理都是无缝的。有关将 KMS 与 Amazon RDS 一起使用的更多信息,请参阅 Amazon RDS 用户指南

问:我可以加密现有的未加密数据库吗?

目前不支持加密现有的未加密 Aurora 实例。要将 Amazon Aurora 加密用于现有的未加密数据库,请在启用加密的情况下创建一个新数据库实例,并将您的数据迁移到该实例中。

问:如何访问我的 Amazon Aurora 数据库?

必须通过您在创建数据库时输入的数据库端口访问 Amazon Aurora 数据库。这样做可以为您的数据平添一重安全保障。有关如何连接到您的 Amazon Aurora 数据库的分步说明,请参阅 Amazon Aurora 连接指南

问:能否将 Amazon Aurora 用于要求 HIPAA 合规的应用程序?

答:可以,与 MySQL 和 PostgreSQL 兼容的 Aurora 版本符合 HIPAA 要求,因此您可以基于与 AWS 签署的《业务合作协议》(BAA),使用它们构建 HIPAA 合规应用程序并存储医疗保健相关信息 (包括受保护的健康信息 [PHI])。如果您已签署 BAA,可以即刻开始在 BAA 协议涵盖的账户内使用这些服务。如果您尚未与 AWS 签署 BAA,但对于 AWS 上的 HIPAA 合规应用程序还有其他问题,请联系我们