使用 Transfer Family 将大型机文件直接移动到 Amazon S3 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Transfer Family 将大型机文件直接移动到 Amazon S3

由 Luis Gustavo Dantas (AWS) 编写

环境:生产

源:大型机

目标:Amazon S3

R 类型:不适用

工作负载:IBM

技术:大型机;存储和备份;现代化

Amazon Web Services:AWS Transfer Family;Amazon S3

Summary

作为现代化之旅的一部分,您可能会面临在本地服务器和 Amazon Web Services (AWS) 云之间传输文件的挑战。从大型机传输数据可能是一项重大挑战,因为大型机通常无法访问 Amazon Simple Storage Service (Amazon S3)、Amazon Elastic Block Store (Amazon EBS) 或 Amazon Elastic File System (Amazon EFS) 等现代数据存储。

许多客户使用中间暂存资源(如本地 Linux、Unix 或 Windows 服务器)将文件传输到 AWS Cloud。您可以通过使用 AWS Transfer Family 和 Secure Shell (SSH) 文件传输协议 (SFTP) 将大型机文件直接上传到 Amazon S3 来避免这种间接方法。

先决条件和限制

先决条件

  • 一个有效的 Amazon Web Services account

  • 具有可由您的旧平台访问的子网的虚拟私有云(VPC)

  • 您 VPC 的 Transfer Family 端点

  • 大型机虚拟存储访问方法 (VSAM) 文件转换为连续的固定长度文件(IBM 文档)

限制

  • SFTP 默认以二进制模式传输文件,这意味着文件上传到 Amazon S3 时会保留 EBCDIC 编码。如果您的文件不包含二进制或打包数据,那么您可以使用 sftp ascii 子命令(IBM 文档)在传输过程中将文件转换为文本。

  • 您必须解压包含打包和二进制内容的大型机文件 (AWS Prescriptive Guidance),才能在目标环境中使用这些文件。

  • Amazon S3 对象的大小范围从最小 0 字节到最大 5 TB。有关 Amazon S3 功能的更多信息,请参阅 Amazon S3 常见问题

架构

源技术堆栈

  • 作业控制语言 (JCL)

  • z/OS Unix shell 和 ISPF

  • SFTP

  • VSAM 和平面文件

目标技术堆栈

  • Transfer Family

  • Amazon S3

  • Amazon Virtual Private Cloud(Amazon VPC)

目标架构

下图显示了将 Transfer Family 与 SFTP 结合使用以将大型机文件直接上传到 S3 存储桶的参考架构。

使用带有 SFTP 的 Transfer Family 将大型机文件直接上传到 S3 存储桶

图表显示了以下工作流:

  1. 您可以使用 JCL 作业通过 Direct Connect 将大型机文件从旧版大型机传输到 Amazon Web Services Cloud。

  2. Direct Connect 使您的网络流量能够保留在 AWS 全球网络上,并绕过公共互联网。Direct Connect 还提高了网络速度,从 50 Mbps 开始,扩展到 100 Gbps。

  3. VPC 端点无需使用公共互联网即可在您的 VPC 资源和支持的服务之间建立连接。对 Transfer Family 和 Amazon S3 的访问通过位于两个私有子网和可用区中的弹性网络接口实现高可用性。

  4. Transfer Family 对用户进行身份验证,并使用 SFTP 从旧环境接收文件并将其移动到 S3 存储桶。

自动化和扩缩

Transfer Family 服务到位后,您可以使用 JCL 作业作为 SFTP 客户端,将无限数量的文件从大型机传输到 Amazon S3。当您准备好传输大型机文件时,还可以使用大型机批处理作业计划程序运行 SFTP 作业,从而自动执行文件传输。

工具

  • Amazon Simple Storage Service (Amazon S3) 是一项基于云的对象存储服务,可帮助您存储、保护和检索任意数量的数据。

  • Amazon Virtual Private Cloud (Amazon VPC) 可帮助您将 AWS 资源启动到您定义的虚拟网络中。此虚拟网络类似于您在自己的数据中心内运行的传统网络,具有使用 AWS 可扩展基础设施的优势。

  • AWS Transfer Fam ily 使您能够使用 SFTP、FTPS 和 FTP 协议安全地将定期 business-to-business 文件传输扩展到亚马逊 S3 和亚马逊 EFS。

操作说明

任务描述所需技能

创建 S3 存储桶。

创建一个 S3 存储桶来托管您从旧环境传输的文件。

常规 AWS

创建 IAM 角色和策略。

Transfer Family 使用您的 AWS Identity and Access Management (IAM) 角色授予对您之前创建的 S3 存储桶的访问权限。

创建 IAM 角色,包含以下 IAM policy

{ "Version": "2012-10-17", "Statement": [ { "Sid": "UserFolderListing", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::<your-bucket-name>" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObjectAcl", "s3:GetObject", "s3:DeleteObjectVersion", "s3:DeleteObject", "s3:PutObjectAcl", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::<your-bucket-name>/*" } ] }

注意:您必须在创建 IAM 角色时选择“传输用例”。

常规 AWS
任务描述所需技能

创建 SFTP 服务器。

  1. 登录 AWS 管理控制台,打开 Transfer Family 控制台,然后选择创建服务器

  2. 仅选择 SFTP(SSH 文件传输协议)- 通过 Secure Shell 协议传输文件,然后选择下一步

  3. 对于身份提供商,选择服务托管,然后选择下一步

  4. 对于端点类型,选择 VPC 托管

  5. 对于访问,选择内部

  6. 对于 VPC,选择您的 VPC。

  7. 可用区部分,请选择您的可用区和子网。

  8. 安全组部分,选择您的安全组,然后选择下一步

  9. 对于,选择 Amazon S3,然后选择下一步

  10. 保留配置其他详细信息页面上的默认选项,然后选择下一步

  11. 选择 Create server (创建服务器)

注意:有关如何设置 SFTP 服务器的更多信息,请参阅创建启用了 SFTP 的服务器(AWS Transfer Family 用户指南)。

常规 AWS

获取服务器地址。

  1. 打开 Transfer Family 控制台,然后在 Server ID 列中选择您的服务器 ID。

  2. 端点详细信息部分中,对于端点类型,选择端点 ID。您将进入 Amazon VPC 控制台。

  3. 在 Amazon VPC 控制台的详细信息选项卡上,找到 DNS 名称旁边的 DNS 名称。

常规 AWS

创建 SFTP 客户端密钥对。

Microsoft WindowsmacOS/Linux/UNIX 创建 SSH 密钥对。

常规 AWS、SSH

创建 SFTP 用户。

  1. 打开 Transfer Family 控制台,从导航窗格中选择服务器,然后选择您的服务器。

  2. 服务器 ID 列中,选择您的服务器的服务器 ID,然后选择添加用户

  3. 对于用户名,输入与您的 SSH 密钥对用户名匹配的用户名。

  4. 对于角色,选择您之前创建的 IAM 角色。

  5. 对于主目录,选择您之前创建的 S3 存储桶。

  6. 对于 SSH 公有密钥 输入您之前 创建的密钥对。

  7. 选择添加

常规 AWS
任务描述所需技能

将 SSH 私钥发送到大型机。

使用 SFTP 或 SCP 将 SSH 私钥发送到旧版环境。

SFTP 示例:

sftp [USERNAME@mainframeIP] [password] cd [/u/USERNAME] put [your-key-pair-file]

SCP 示例:

scp [your-key-pair-file] [USERNAME@MainframeIP]:/[u/USERNAME]

接下来,将 SSH 密钥存储在 z/OS Unix 文件系统中稍后将运行文件传输批处理作业的用户名下(例如,/u/CONTROLM)。 

注意:有关 z/OS Unix shell 的更多信息,请参阅 z/OS shell 简介(IBM 文档)。

大型机、z/OS Unix shell、FTP、SCP

创建 JCL SFTP 客户端。

由于大型机没有本机 SFTP 客户端,因此您必须使用 BPXBATCH 实用程序从 z/OS Unix shell 运行 SFTP 客户端。

在 ISPF 编辑器中,创建 JCL SFTP 客户端。例如:

//JOBNAM JOB ... //********************************************************************** //SFTP EXEC PGM=BPXBATCH,REGION=0M //STDPARM DD * SH cp "//'MAINFRAME.FILE.NAME'" filename.txt; echo 'put filename.txt' > uplcmd; sftp -b uplcmd -i ssh_private_key_file ssh_username@<transfer service ip or DNS>; //SYSPRINT DD SYSOUT=* //STDOUT DD SYSOUT=* //STDENV DD * //STDERR DD SYSOUT=*

注意:有关如何在 z/OS Unix shell 中运行命令的更多信息,请参阅 BPXBATCH 实用程序(IBM 文档)。有关如何在 z/OS 中创建或编辑 JCL 作业的更多信息,请参阅什么是 ISPF?ISPF 编辑器(IBM 文档)。

JCL、大型机、z/OS Unix shell

运行 JCL SFTP 客户端。

  1. 在 ISPF 编辑器中,输入 SUB,然后在创建 JCL 作业后按 ENTER 键。

  2. 在 SDSF 中监视大型机的文件传输批处理作业活动。

注意:有关如何检查批处理作业活动的更多信息,请参阅 z/OS SDSF 用户指南(IBM 文档)。

大型机、JCL、ISPF

验证文件传输。

  1. 登录 AWS 管理控制台,打开 Amazon S3 控制台,然后从导航窗格中选择存储桶

  2. 选择与您的 Transfer Family 关联的存储桶。

  3. 对象选项卡的对象部分中,找到您从大型机传输的文件。

常规 AWS

自动执行 JCL SFTP 客户端。

使用作业调度程序自动触发 JCL SFTP 客户端。

注意:您可以使用大型机作业调度程序(例如 BMC Control-MCA Workload Automation)根据时间和其他批处理作业依赖性自动执行文件传输的批处理作业。

作业调度程序

相关资源