官方文档: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迁移。
留言