在AWS本地区域中维护数据的本地副本 计算博客

在 AWS Local Zones 中维护本地资料副本

主要要点

这篇文章涵盖了如何使用 AWS Local Zones 进行资料复制策略,以便将资料备份。这些策略包括资料库复制、档案和物件存储复制,以及针对 Amazon EC2 的合作伙伴解决方案。

当客户在 AWS 区域运行工作负载时,通常需要在其运营地点保留资料副本,无论是出于备份策略还是资料居留要求。AWS Local Zones 是一个解决方案,可以帮助您满足这些需求。

Local Zones 是 AWS 的基础设施部署,它将计算、存储、数据库和其他选定 AWS 服务靠近大型人口和行业中心。客户可以利用 Local Zones 建立和部署工作负载,来遵守医疗、金融服务、游戏和政府等行业的地方法规要求。

解决方案概述

这篇文章假设资料库来源是 Amazon Relational Database Service (Amazon RDS)。要将 Amazon RDS 资料库备份到 Local Zones,有三种选择:

AWS Database Migration Service (AWS DMS)AWS DataSync备份到 Amazon Simple Storage Service (Amazon S3)

若要复制资料,AWS DMS 需要来源和目标资料库。来源资料库应该是您现有的 Amazon RDS 资料库,目标资料库则放置在 Local Zone 的 EC2 实例中。AWS DMS 中会创建一个复制工作,以保持来源和目标资料库之间的同步。可以通过 VPN 访问 Local Zone 中的复制资料库,资料库管理员可以使用首选工具直接连接到资料库引擎。

这样的架构让您能够维持一个本地可访问的资料库副本,从而遵守监管要求。

前置条件

在继续之前,您需要满足以下前置条件:

拥有 AWS 帐户和行政权限;安装最新版本的 AWS 命令行介面 AWS CLI v2;拥有一个 Amazon RDS 资料库。

操作步骤

1 启用 Local Zones

首先,您必须启用 Local Zones。确保所选的 Local Zone 位于运行环境的 AWS 区域。根据您的参数编辑命令,groupname 指的是您的本地区域组,region 是您要使用的区域标识符。

bashaws ec2 modifyavailabilityzonegroup region useast1 groupname useast1qro1 optinstatus optedin如果您在调用 ModifyAvailabilityZoneGroup 操作时出现错误,则需 注册 Local Zone。

启用 Local Zone 之后,您需要通过在 Local Zone 中创建子网来将 VPC 扩展至 Local Zone:

bashaws ec2 createsubnet region useast1 availabilityzone useast1qro1a vpcid vpc02a3eb6585example cidrblock mysubnetcidr如需具体操作指南,请参见 Getting started with AWS Local Zones。启用 Local Zones 并不收费,只有在 Local Zone 部署的服务将会产生计费。

2 设置目标资料库

现在,您已启用 Local Zone 并创建了子网,接下来在 Local Zone 子网中设置目标资料库实例。

您可以使用 AWS CLI 将其启动为 EC2 实例:

bashaws ec2 runinstances region useast1 subnetid subnet08fc749671example instancetype t3medium imageid ami0abcdef123example securitygroupids sg0b0384b66dexample keyname mykeypair要检查您的 EC2 实例是否正在运行,请使用以下命令:

bashaws ec2 describeinstances filters Name=availabilityzoneValues=useast1qro1a query Reservations[]Instances[]InstanceId输出结果为:

[i0cda255374example]请注意,并非所有实例类型都可以在 Local Zones 中使用。您可以使用以下 AWS CLI 命令检查可用性:

bashaws ec2 describeinstancetypeofferings locationtype availabilityzone filters Name=locationValues=useast1qro1a region useast1一旦您的实例在 Local Zone 中运行,您可以安装与来源资料库匹配的资料库引擎。以下是安装 MariaDB 的示例步骤:

更新所有套件至最新 OS 版本 sudo yum update y在您的实例上安装 MySQL 伺服器,这也会创建一个 systemd 服务 sudo yum install y mariadbserver启用在前一步中创建的服务 sudo systemctl enable mariadb在您的 Amazon Linux 实例上启动 MySQL 伺服器服务 sudo systemctl start mariadb设置 root 用户密码并提高资料库安全性 sudo mysqlsecureinstallation

您可以使用以下命令确认安装成功:

bashmysql h localhost u root pSHOW DATABASES

3 配置资料库以进行复制

为了让 AWS DMS 在进行变更时进行复制,您需要使用变更数据捕获 (CDC),并在复制之前相应地设置来源和目标资料库:

来源资料库:

确保二进制日志对 AWS DMS 可用:

sqlcall mysqlrdssetconfiguration(binlog retention hours 24)

将 binlogformat 参数设置为 “ROW“。将 binlogrowimage 参数设置为 “Full“。如果您使用只读副本作为来源,则需将 logslaveupdates 参数设置为 TRUE。

如需详细信息,请参见 Using a MySQLcompatible database as a source for AWS DMS,或如果您的资料库引擎不同,可参考 migration sources。

目标资料库:

在AWS本地区域中维护数据的本地副本 计算博客为 AWS DMS 创建一个拥有对 MySQL 兼容资料库的读/写权限的用户。要创建必要的权限,请运行以下命令:

sqlCREATE USER @ IDENTIFIED BY GRANT ALTER CREATE DROP INDEX INSERT UPDATE DELETE SELECT ON TO @GRANT ALL PRIVILEGES ON awsdmscontrol TO @

禁用目标表中的外键,在 AWS DMS 控制台的目标端点的 Extra connection attributes 部分添加下一个命令:

sqlInitstmt=SET FOREIGNKEYCHECKS=0

设置资料库参数 localinfile = 1 以使 AWS DMS 能够加载数据到目标资料库。

4 设置 AWS DMS

现在您已经启用了 Local Zone、准备好目标资料库,并配置了来源资料库,可以设置 AWS DMS 复制实例。

前往 AWS DMS 在 AWS 管理控制台,再在 Migrate data 中选择 Replication Instances,然后选择 Create Replication 按钮:

这将显示创建复制实例的对话框,您应填写所需的参数:

请注意 High Availability 设置为 SingleAZ,这是因为这是测试工作负载,对于生产工作负载建议使用 MultiAZ。

参考 AWS DMS 复制实例文档 获取有关如何调整您的复制实例大小的详细信息。

重要提示

为了允许复制,请确保您在您的环境运行的 VPC 中设置复制实例,并配置来源资料库和目标资料库的安全组。

现在您可以创建 DMS 的来源和目标端点。

5 设置端点

来源端点:

在 AWS DMS 控制台中,选择 Endpoints,然后点击 Create endpoint 按钮,选择 Source endpoint 选项。然后填写所需的详细信息:

确保您选择您的 RDS 实例作为来源,勾选前面图示中的选框。此外,请包括端点资料库详细信息,如用户名和密码。

您可以在创建端点之前测试端点的连接,如下图所示:

如果测试成功,则可以选择 Create endpoint 按钮。

目标端点:

以相同的方式在控制台中选择 Endpoints,选择 Create endpoint 按钮,然后选择 Target endpoint 选项,然后输入所需的详细信息,如下图所示:

在 Access to endpoint database 部分,选择 Provide access information manually 选项,接著添加您的 Local Zone 目标资料库连接详细信息。注意 Server name 的值应为您的目标资料库的 IP 地址。

熊猫vpv加速梯子

确保您在页面底部配置 Extra connection attributes,如本篇文章 Configure databases for replication 部分所述:

与来源端点一样,您可以在创建之前测试目标端点的连接。

6 创建复制任务

一旦端点准备就绪,您可以创建迁移任务以开始复制。在 Migrate Data 部分,选择 Database migration tasks,点击 Create task 按钮,并配置您的任务:

在 Migration type 参数中选择 Migrate existing data and replicate ongoing changes。

在 Task Settings 中启用 Task logs,建议这样做,因为它可以帮助您进行故障排除。

在 Table mappings 中,请包括您希望复制到 Local Zone 资料库的架构:

一旦您完成了 Task Configuration、Task Settings 和 Table Mappings 的定义,就可以继续创建您的资料库迁移任务。

这将触发您的迁移任务,现在等待迁移任务成功完成。

7 验证复制的资料库

复制任务完成全量加载后,请验证您的目标资料库。连接到目标资料库并运行以下命令:

sqlUSE exampleSHOW TABLES

结果应显示与来源资料库相同的表格。

plaintextMySQL [example]gt SHOW TABLES Tablesinexample actor address category city country customer customerlist film filmactor filmcategory filmlist filmtext inventory language nicerbutslowerfilmlist payment rental salesbyfilmcategory salesbystore staff stafflist store 22 rows in set (006 sec)

如果您得到与来源资料库相同的表格,恭喜您,设定已完成!现在,您可以在 Local Zone 中维持和导航的实时资料库副本,以满足资料居留目的。

清理

完成本教程后,您可以删除所有已部署的资源。可以通过控制台或运行以下 AWS CLI 命令来完成此操作:

删除目标资料库:

bashaws ec2 terminateinstances instanceids iabcd1234

停用 AWS DMS 复制任务:

bashaws dms deletereplicationtask replicationtaskarn arnawsdmsuseast1 111111111111 taskK55IUCGBASJS5VHZJIIEXAMPLE

端点:

bashaws dms deleteendpoint endpointarn arnawsdmsuseast1 111111111111 endpointOUJJVXO4XZ4CYTSEG5XEXAMPLE

复制实例:

bashaws dms deletereplicationinstance replicationinstancearn useast1 111111111111 repT3OM7OUB5NM2LCVZF7JEXAMPLE

删除 Local Zone 子网:

bashaws ec2 deletesubnet subnetid subnet9example

结论

Local Zones 是运行具有低延迟要求或资料居留法规的应用程序的有用工具。在这篇文章中,您学会了如何使用 AWS DMS 将资料无缝复制到 Local Zones。使用这种架构,您可以有效地维护 Local Zones 中的资料本地副本,并安全访问。

如果您有兴趣了解如何自动化您的工作负载部署到 Local Zones,确保您查看这个 [工作

使用 AWS InfluxDB 迁移脚本将 InfluxDB OSS 2x 数据迁移到 Amazon Timestream作者 Trevor Bonas 发表于 2024年7月25日 高级知识 (30...

将本地工作负载迁移到 AWS Outposts 机架重点总结通过 AWS Outposts 机架,您可以在本地环境中利用云计算的优势,同时保持数据和应用程序的本地存储。对于有严格数据驻留要求的组织,可...