使用Data Replication Hub从AWS Global S3区域向中国区S3复制数据

一、背景

Data Replication Hub是AWS的数据复制方案,可用于在云间复制,或者在AWS Global和中国区之间复制数据。本文以从海外复制到中国区为例。

其他使用场景,请参考官方文档。

二、通过CloudFormation创建方案

Data Replication Hub解决方案可以在Global区域或者中国区域启动。在中国区启动的话需要处理ICP备案比较不便,且因为中国区没有Cognito服务还需要第三方认证软件支持,配置步骤较多而麻烦,因此不推荐在中国区启动。请选择在Global区域启动。

入口网址 :https://www.amazonaws.cn/solutions/data-replication-hub/

点击在Global区域创建服务按钮启动。如下截图。

image-20210327174409038

随后页面跳转到AWS登陆入口,请登陆AWS Global区域的控制台。

登陆成功后,页面跳转到创建Cloudformation模版界面,S3 URL已经自动填写好,请点击右下角的下一步按钮。如下截图。

image-20210327174706621

填写管理员邮箱的名字,并点击下一步,如下截图。

image-20210327174927492

在向导的下一个界面,无需修改任何选项,将页面滚动到最下方,点击下一步继续。如下截图。

image-20210327175009470

在向导的最后一步,点击允许创建IAM角色按钮,并点击创建。如下截图。

image-20210327175037375

创建过程需要15分钟左右,请等待创建完成。在Event界面下,可以点击刷新按钮查看创建进度。如下截图。

image-20210327175441212

大约15分钟后,创建完成。点击输出标签页,可以看到登陆地址 PortalUrl ,使用浏览器访问这个地址即可开始使用。

image-20210327190906359

三、登陆授权

访问部署好的PortalUrl之后,打开Data Replication Hub的初始界面,填写上邮箱。首次登陆是通过临时密码登陆,去邮箱中可以查看到一封系统自动发来的临时密码邮件,这封邮件是由AWS SES服务代发的,如果在收件箱找不到,可以检查下是否被屏蔽了。输入密码后,点击登陆。如下截图。

image-20210327200230942

接下来设置新的登陆密码。请注意密码有复杂度要求,需要大写字母、小写字母、阿拉伯数字、特殊符号组成。输入后点击确认。如下截图。

image-20210327200249213

此外,系统还会提交一次邮箱验证,选择邮箱,然后按确认。如下截图。

image-20210327200343743

邮箱中会收到另一封确认信,是六位数字的验证码。在提交一次验证码。如下截图。

image-20210327200430541

提交完成,就进入了主界面。

四、创建复制任务数据

在主界面上,选择任务类型,点击下一步。如下截图。

image-20210327200523135

在任务类型界面,选择类型是S3任务,并点击下一步。如下截图。

image-20210327200628648

选择类型是S3任务。如下截图。

image-20210327201107644

在选择源站类型的位置,输入S3存储桶的名字,在第二项前缀(S3目录)位置跳过不输入,表示复制整个桶。在Bucket是否属于本账户选项位置选Yes。在Enable S3 Event这里是持续复制功能,选择Create Only将会把源站新创建的数据复制到目标区域,如果选择Create and delete那么意味着不但复制新创建的文件,还会 把文件被删除的行为也复制过去,目标站的数据也跟随着删除。本次测试选择Create Only,复制增量过去。如下截图。

image-20210327201359180

在目标区域设置位置,输入要复制到中国区的S3桶的名字。在Prefix前缀(目录)位置留空,在身份验证位置点击Parameter Store设置密码。如下截图。

image-20210327201810320

如果点击Parameter Store,网页跳转后无法正常打开的话,请进去Global区域对应的System Manager服务。如下截图。

image-20210327202408069

从System Manager服务中找到应用管理,找到参数仓库。点击进入。如下截图。

image-20210327202507859

点击创建参数。如下截图。

image-20210327202718004

输入密钥的名称,选择级别是标准,选择类型是SecureString,选择加密类型是KMS。如下截图。

image-20210327202829206

选择KMS类型后,输入Value,输入密钥,注意标点符号都是英文半角状态输入。内容如下。

{
"access_key_id": "Axxxxxxxxxxxxxxxxxxxx",
"secret_access_key": "eXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"region_name": "cn-northwest-1"
}

输入后自动隐藏显示为星号。然后点击下一步继续。如下截图。

image-20210327203215780

创建密钥完成,通过Parameter Store已经可以看到。如下截图。

image-20210327203519446

现在将页面返回。点击刷新按钮后,就可以加载到刚才的密钥了。在下方选择正确的区域。然后点击高级设置。如下截图。

image-20210327203622346

在高级选项中,可以调整复制参数。比如在传输稳定的两个区域,例如新加坡复制到北京,则可以把分片提高到50MB之后才切片复制。如果是从美国复制,或者其他网络抖动较多的区域,可以默认选择10MB分片传输。如下截图。

image-20210327203735915

配置完成,点击下一步继续。如下截图。

image-20210327203937530

在向导最后一步,点击确认。如下截图。

image-20210327204026858

复制任务创建完成。如下截图。

image-20210327204103247

五、查看复制结果

当复制任务跑了一段时间后,复制完成。此时通过Data Replication Hub界面来看,会继续显示在In Progress,这是因为复制是持续复制。可以点击任务ID进入查看详情。如下截图。

image-20210327210752588

如果希望查看的状态,点击任务ID,在点击详情中的CloudWatch Dashboard,则可以查看详细运行参数。如下截图。

image-20210327211007484

进入CloudWatch界面后,查看名为SQS的监控想,当其数量为0时候,表示数据复制完成。

image-20210327212925271

六、参考文档

官方手册:

V2版本(无UI):

https://github.com/awslabs/amazon-s3-data-replication-hub-plugin