前置条件
Data Pump 完全运行在你自己的 AWS 账号中。安装之前,需要具备三样东西。
建议在 交接之前 就把这些梳理清楚:VPC、存储桶和源账号都会写入你那份软件包的模板, 之后再改动就需要一个新的软件包。参见交接。
一个带私有子网的 VPC
Section titled “一个带私有子网的 VPC”作业以 Fargate 任务的形式运行在私有子网中,控制台位于一个内部负载均衡器之后。这些子网 需要具备出网能力——通过 NAT 网关或 VPC 终端节点——以便访问 S3、DynamoDB、ECR 以及 AWS 的各类终端节点。
如果你使用 VPC 终端节点而非 NAT,则需要:s3(网关型)、dynamodb(网关型),以及
ecr.api、ecr.dkr、logs、sts 和 secretsmanager 的接口终端节点。
一个有快照的 RDS 集群
Section titled “一个有快照的 RDS 集群”Data Pump 读取快照——自动或手动均可,Aurora 或 RDS Postgres 均可。如果自动备份已开启 (默认设置),那么已经有可供处理的快照。
集群可以位于 另一个 AWS 账号 中。这种情况请参阅 跨账号部署——安装会多出一个步骤。
创建堆栈的权限
Section titled “创建堆栈的权限”运行安装程序的身份需要能够通过 CloudFormation 创建:
| 服务 | 用途 |
|---|---|
| S3 | 数据湖存储桶和一个 CloudFormation 暂存桶 |
| IAM | 任务、导出和爬网程序所用的角色 |
| KMS | 用于加密快照导出的密钥 |
| ECS | 集群、任务定义和控制台服务 |
| Step Functions | 流水线的状态机 |
| Lambda | 事件处理函数和爬网程序函数 |
| DynamoDB | 五张配置与状态表 |
| Glue | 目录数据库和爬网程序 |
| Cognito | 为控制台提供认证的用户池 |
| SNS | RDS 事件主题和完成通知主题 |
| EC2/ELB | 安全组和内部负载均衡器 |
由于角色使用固定名称,安装程序需要 CAPABILITY_NAMED_IAM。
Data Pump 不会创建任何闲置时也昂贵的资源。真正产生费用的部分与数据量成正比:
- Fargate — 每次快照后作业运行几分钟
- S3 — 数据湖中的 Parquet,以及未清理时保留的原始导出
- 控制台 — 一个长期运行的小任务,加上负载均衡器
- Athena — 按扫描数据量计费,而 分区 正是用来降低这部分开销的
快照本身的费用你已经在付了:AWS 无论如何都会生成它。