AWS RDS Aurora 集群启用加密
AWS RDS Aurora cluster enable encryption
我有一个 AWS RDS Aurora PostgreSQL 集群,其中有四个实例,在生产环境中使用多可用区部署。此集群上尚未启用静态加密。现在我必须在这个现有集群上启用加密。 AWS 文档建议我创建该集群的快照,然后在启用加密的情况下再次恢复集群。参考:Here
因为我的集群正在生产中服务,所以我可以接受没有停机或 I/O 暂停。在我计划加密现有集群之前,我希望得到以下一些问题的解答:
- 假设有很多数据并且快照需要时间,创建快照期间是否有任何停机时间。
- 创建快照期间写入数据库的新数据如何?快照创建是实时的,否则在拍摄快照之前我会丢失新数据吗?
- 这是我在生产集群上启用加密的唯一方法吗?我知道这会导致一些数据库中断?
有一种方法可以加密您的 AWS RDS Amazon Aurora with PostgreSQL compatibility Cluster,无需停机或停机时间最短,但这需要一些努力。
您需要进行以下操作:
- 对于源数据库,您必须拍摄快照。
- 然后复制该快照,并检查
Enable Encryption
和 select Default Encryption Key
或 select 您的 Custom AWS KMS CMK
,现在您拥有数据库的加密副本快照。
Restore
此加密快照到新数据库实例,您可以启用Multi-AZ
并立即添加Read Replicas
或在迁移后修改它们。
- 现在您有两个数据库实例
Encrypted
和 Unencrypted
,但数据不匹配,因为它是生产数据库。
- 我们将使用 AWS DMS 进行数据同步复制,或者您可以使用 PostgreSQL 逻辑复制和 Aurora 而不是 AWS DMS,这样会更好,两者都可以。
- 转到 AWS DMS 控制台,创建一个 AWS DMS 任务。
- 迁移类型选择
Migrate existing data and replicate ongoing changes
。
- 对于目标 table 准备模式,选择
Truncate
。
- 如果要验证复制状态,请在“高级任务设置”下启用
awsdms_status
table。
- 运行迁移任务,等待所有记录更新完毕。 AWS DMS 随后将确定要迁移的数据的大小。
- 然后,您需要验证迁移后的
Encrypted
数据库实例中的数据是否与Unencrypted
数据库实例中的数据相同。
- 检查 AWS DMS 中的复制状态,方法是检查迁移任务和
awsdms_status
。
- 您现在可以将流量路由到新端点。
- 为了顺利切换,请使用 Amazon Route 53 通过将 DNS TTL 更改为短值来路由流量,并最终替换 Route 53 中的终端节点名称。
现在回答你的问题,
- Is there any downtime during the creation of the snapshot assuming there is a lot of data and a snapshot will take time.
根据您的集群设置,您是 运行 多可用区部署,自动备份和数据库快照只是从备用数据库中获取,以避免 I/O 主数据库挂起。请注意,在单可用区和多可用区部署的备份期间,您可能会遇到 I/O 延迟增加(通常持续几分钟)。
- What about the new data that is being written on to the database during the snapshot creation? Is the snapshot creation real-time or I
will lose my new data during the time till the snapshot is being
taken?
拍摄快照后写入的数据将丢失,因此您将使用 AWS DMS 将同步数据复制到加密的数据库实例。
- Is this the only way for me to enable encryption on the production cluster knowing that it will result in some database outage?
是的,这是唯一的方法,但它不会导致停机或停机时间很短。
我有一个 AWS RDS Aurora PostgreSQL 集群,其中有四个实例,在生产环境中使用多可用区部署。此集群上尚未启用静态加密。现在我必须在这个现有集群上启用加密。 AWS 文档建议我创建该集群的快照,然后在启用加密的情况下再次恢复集群。参考:Here
因为我的集群正在生产中服务,所以我可以接受没有停机或 I/O 暂停。在我计划加密现有集群之前,我希望得到以下一些问题的解答:
- 假设有很多数据并且快照需要时间,创建快照期间是否有任何停机时间。
- 创建快照期间写入数据库的新数据如何?快照创建是实时的,否则在拍摄快照之前我会丢失新数据吗?
- 这是我在生产集群上启用加密的唯一方法吗?我知道这会导致一些数据库中断?
有一种方法可以加密您的 AWS RDS Amazon Aurora with PostgreSQL compatibility Cluster,无需停机或停机时间最短,但这需要一些努力。
您需要进行以下操作:
- 对于源数据库,您必须拍摄快照。
- 然后复制该快照,并检查
Enable Encryption
和 selectDefault Encryption Key
或 select 您的Custom AWS KMS CMK
,现在您拥有数据库的加密副本快照。 Restore
此加密快照到新数据库实例,您可以启用Multi-AZ
并立即添加Read Replicas
或在迁移后修改它们。- 现在您有两个数据库实例
Encrypted
和Unencrypted
,但数据不匹配,因为它是生产数据库。 - 我们将使用 AWS DMS 进行数据同步复制,或者您可以使用 PostgreSQL 逻辑复制和 Aurora 而不是 AWS DMS,这样会更好,两者都可以。
- 转到 AWS DMS 控制台,创建一个 AWS DMS 任务。
- 迁移类型选择
Migrate existing data and replicate ongoing changes
。 - 对于目标 table 准备模式,选择
Truncate
。 - 如果要验证复制状态,请在“高级任务设置”下启用
awsdms_status
table。 - 运行迁移任务,等待所有记录更新完毕。 AWS DMS 随后将确定要迁移的数据的大小。
- 然后,您需要验证迁移后的
Encrypted
数据库实例中的数据是否与Unencrypted
数据库实例中的数据相同。 - 检查 AWS DMS 中的复制状态,方法是检查迁移任务和
awsdms_status
。 - 您现在可以将流量路由到新端点。
- 为了顺利切换,请使用 Amazon Route 53 通过将 DNS TTL 更改为短值来路由流量,并最终替换 Route 53 中的终端节点名称。
现在回答你的问题,
- Is there any downtime during the creation of the snapshot assuming there is a lot of data and a snapshot will take time.
根据您的集群设置,您是 运行 多可用区部署,自动备份和数据库快照只是从备用数据库中获取,以避免 I/O 主数据库挂起。请注意,在单可用区和多可用区部署的备份期间,您可能会遇到 I/O 延迟增加(通常持续几分钟)。
- What about the new data that is being written on to the database during the snapshot creation? Is the snapshot creation real-time or I will lose my new data during the time till the snapshot is being taken?
拍摄快照后写入的数据将丢失,因此您将使用 AWS DMS 将同步数据复制到加密的数据库实例。
- Is this the only way for me to enable encryption on the production cluster knowing that it will result in some database outage?
是的,这是唯一的方法,但它不会导致停机或停机时间很短。