使用 Transfer 系列將大型主機檔案直接移至 Amazon S3 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Transfer 系列將大型主機檔案直接移至 Amazon S3

由 Luis Gustavo Dantas 建立 (AWS)

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雲端。您可以避免此間接方法,方法是使用 AWS Transfer Family 搭配 Secure Shell (SSH) 檔案傳輸通訊協定 (SFTP),將大型主機檔案直接上傳至 Amazon S3。

先決條件和限制

先決條件

  • 作用中AWS帳戶

  • 虛擬私有雲端 (VPC),具有傳統平台可連線的子網路

  • 適用於 的 Transfer Family 端點 VPC

  • 大型主機虛擬儲存存取方法 (VSAM) 檔案轉換為循序、固定長度的檔案 (IBM 文件)

限制

  • SFTP 根據預設, 會以二進位模式傳輸檔案,這表示檔案會上傳到保留EBCDIC編碼的 Amazon S3。如果您的檔案不包含二進位或封裝資料,則可以使用 sftpascii 子命令 (IBM 文件) 在傳輸期間將檔案轉換為文字。

  • 您必須解壓縮包含封裝和二進位內容的大型主機檔案 (AWS 規範指南),才能在目標環境中使用這些檔案。

  • Amazon S3 物件的大小範圍從最少 0 個位元組到最多 5 TB。如需 Amazon S3 功能的詳細資訊,請參閱 Amazon S3。 FAQs

架構

來源技術堆疊

  • 任務控制語言 (JCL)

  • z/OS Unix shell 和 ISPF

  • SFTP

  • VSAM 和平面檔案

目標技術堆疊

  • Transfer 系列

  • Amazon S3

  • Amazon Virtual Private Cloud (Amazon VPC)

目標架構

下圖顯示使用 Transfer Family 搭配 SFTP 將大型主機檔案直接上傳至 S3 儲存貯體的參考架構。

使用 Transfer Family 搭配 SFTP 將大型主機檔案直接上傳至 S3 儲存貯體

該圖顯示以下工作流程:

  1. 您可以使用JCL任務,透過 Direct Connect 將大型主機檔案從舊版大型主機傳輸到AWS雲端。

  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 Family 可讓您EFS使用 SFTP、 和 FTP通訊協定FTPS,安全地將重複 business-to-business檔案傳輸擴展至 Amazon S3 和 Amazon。

史詩

任務描述所需的技能

建立 S3 儲存貯體。

建立 S3 儲存貯體以託管您從舊版環境傳輸的檔案。

一般 AWS

建立IAM角色和政策。

Transfer Family 使用 AWS Identity and Access Management (IAM) 角色來授予您先前建立的 S3 儲存貯體存取權。

建立包含下列政策IAM的角色IAM

{ "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 Management 主控台,開啟 Transfer Family 主控台,然後選擇建立伺服器

  2. 僅選擇 SFTP(SSH 檔案傳輸通訊協定) - 透過 Secure Shell 通訊協定進行檔案傳輸,然後選擇下一步

  3. 對於身分提供者,選擇服務受管,然後選擇下一步

  4. 針對端點類型,選擇VPC託管

  5. 針對 Access,選擇內部

  6. 針對 VPC,選擇您的 VPC。

  7. 可用區域區段中,選擇您的可用區域和子網路。

  8. 安全群組區段中,選擇您的安全群組,然後選擇下一步

  9. 針對網域,選擇 Amazon S3,然後選擇下一步

  10. 設定其他詳細資訊頁面上保留預設選項,然後選擇下一步

  11. 選擇 Create server (建立伺服器)

注意

如需如何設定SFTP伺服器的詳細資訊,請參閱建立啟用 SFTP的伺服器 (AWS Transfer Family 使用者指南)。

一般 AWS

取得伺服器地址。

  1. 開啟 Transfer Family 主控台,然後在伺服器 ID 欄中選擇您的伺服器 ID

  2. 端點詳細資訊區段中,針對端點類型選擇端點 ID。這會帶您前往 Amazon VPC主控台。

  3. 在 Amazon VPC主控台的詳細資訊索引標籤上,尋找DNS名稱旁的DNS名稱

一般 AWS

建立SFTP用戶端金鑰對。

Microsoft Windows 或 建立SSH金鑰對macOS/Linux/UNIX

一般 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

建立JCLSFTP用戶端。

由於大型主機沒有原生SFTP用戶端,您必須使用 BPXBATCH公用程式從 z/OS Unix shell 執行SFTP用戶端。

在ISPF編輯器中,建立JCLSFTP用戶端。例如:

//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

執行JCLSFTP用戶端。

  1. 在ISPF編輯器中,輸入 SUB,然後在建立JCL任務後按 ENTER鍵。

  2. 在 中監控大型主機的檔案傳輸批次任務活動SDSF。

注意

如需如何檢查批次任務活動的詳細資訊,請參閱 z/OS SDSF 使用者指南 (IBM 文件)。

大型主機、JCL、 ISPF

驗證檔案傳輸。

  1. 登入 AWS Management 主控台,開啟 Amazon S3 主控台,然後從導覽窗格中選擇儲存貯體

  2. 選擇與您的 Transfer 系列相關聯的儲存貯體。

  3. 物件標籤的物件區段中,尋找您從大型主機傳輸的檔案。

一般 AWS

自動化JCLSFTP用戶端。

使用任務排程器自動觸發JCLSFTP用戶端。

注意

您可以使用大型主機任務排程器,例如 BMC Control-MCA 工作負載自動化,根據時間和其他批次任務相依性,自動化檔案傳輸的批次任務。

任務排程器

相關資源