官方文档:https://github.com/awslabs/amazon-s3-data-replication-hub-plugin

一、准备工作

1.1 oss

oss需要预先建立一个access_key_id/secret_access_key 仅需有oss读取权限即可,可通过AWS Systems Manager进行配置

1.2 s3

预先需要配置aws iam用户,该用户(s3)配置AdministratorAccess权限。

参考官方资料:

cdk bootstrap --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess

收录信息源:https://github.com/awslabs/aws-data-replication-hub#deploy-via-cloudformation

1.3 购买Amazon Linux 2

Amazon Linux 2默认会带有aws二进制执行程序,如果是其他系统,例如centos则需要手动部署aws,参考文档:https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html

1.4 创建ECS集群

参考文档:https://docs.aws.amazon.com/AmazonECS/latest/userguide/ecs-tutorials.html

备注:创建好集群后在后面deploy部署时需要使用此集群

1.5 基础组件
  • AWS Command Line Interface

  • Node.js 12.x or later

  • Docker

  • Git

二、编译源代码

[root@ip-172-25-2-136 ec2-user]# git clone https://github.com/awslabs/amazon-s3-data-replication-hub-plugin.git
[root@ip-172-25-2-136 ec2-user]# cd amazon-s3-data-replication-hub-plugin/source/
[root@ip-172-25-2-136 ec2-user]# npm install -g aws-cdk
[root@ip-172-25-2-136 ec2-user]# npm install && npm run build

三、Deploy部署

cdk deploy --parameters srcBucketName=shelllinux \
--parameters destBucketName=shelllinux \
--parameters alarmEmail=123456@qq.com \
--parameters jobType=GET \
--parameters sourceType=Aliyun_OSS \
--parameters credentialsParameterStore='test-s3' \
--parameters regionName='cn-shanghai' \
--parameters ecsClusterName=test \
--parameters ecsVpcId=vpc-0b627af4d05be21de \
--parameters ecsSubnets=subnet-0c0f2278f8370fa7f,subnet-0a5b73012f8904cb4

参数参考文档:https://github.com/awslabs/amazon-s3-data-replication-hub-plugin/blob/main/README_CN.md

备注:特殊的参数说明

  • credentialsParameterStore 表示oss的的认证,通过AWS Systems Manager配置

  • regionName 表示oss的地域

  • ecsClusterName 表示ECS集群

四、总结

  • 目前官方给的这种部署可以通过aws控制台、cdk deploy两种方式进行部署。建议使用cdk方式去实现迁移(控制台操作测试存在报错)。
  • 此插件能够实现oss至s3的全量与增量同步,配置完毕后CloudWatch Events默认规则为每一小时进行同步一次,其中最小同步周期单位为分钟级别。
  • cdk deploy部署仅能生成一个固定的任务,无法进行任务重命名,所以oss迁移任务每次只能实现一个BucketName迁移。
最后修改日期: 2021年2月19日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。