使用适用于 SFTP 的 AWS Transfer 将本地 SFTP 服务器迁移至 AWS - AWS Prescriptive Guidance

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

使用适用于 SFTP 的 AWS Transfer 将本地 SFTP 服务器迁移至 AWS

由 Akash Kumar (AWS) 创建

环境:生产

源:存储

目标:Amazon S3

R 类型:更换主机

技术:迁移;存储和备份;Web 和移动应用程序

AWS 服务:亚马逊 S3;AWS Transfer Family;亚马逊 CloudWatch 日志

Summary

此模式描述了如何使用 AWS Transfer for SFTP 服务将使用 Secure Shell (SSH) File Transfer Protocol (SFTP) 的本地文件传输解决方案迁移至 Amazon Web Services (AWS) Cloud。用户通常通过其域名或固定 IP 连接至 SFTP 服务器。此模式涵盖了两种情况。

AWS Transfer for SFTP 是 AWS Transfer Family 的成员。其是一种安全的传输服务,使您能够通过 SFTP 将文件传入和传出 AWS 存储服务。您可以将 AWS Transfer for SFTP 与 Amazon Simple Storage Service (Amazon S3) 或 Amazon Elastic File System (Amazon EFS) 结合使用。此模式使用了 Amazon S3 存储。

先决条件和限制

先决条件

  • 一个有效的 Amazon Web Services account。

  • 现有 SFTP 域名或固定 SFTP IP。

限制

  • 当前,您可在一个请求中传输的最大对象为 5 GiB。对于大于 100 MiB 的文件,可以考虑使用 Amazon S3 分段上传

架构

源技术堆栈

  • 本地平面文件或数据库转储文件。

目标技术堆栈

  • AWS Transfer for SFTP

  • Amazon S3

  • Amazon Virtual Private Cloud(Amazon VPC)

  • AWS Identity and Access Management (IAM) 角色和策略

  • 弹性 IP 地址

  • 安全组

  • Amazon CloudWatch 日志(可选)

目标架构

AWS Cloud architecture diagram showing VPC with availability zones, IAM, S3 bucket, and CloudWatch Logs.

自动化和扩展

要自动执行此模式的目标架构,请使用随附的 AWS CloudFormation 模板:

  • amazon-vpc-subnets.yml 预置具有两个公有子网和两个私有子网的虚拟私有云(VPC)。

  • amazon-sftp-server.yml 预置 SFTP 服务器。

  • amazon-sftp-customer.yml 添加用户。

工具

Amazon Web Services

  • Amazon CloudWatch Lo gs 可帮助您集中管理来自所有系统、应用程序和 AWS 服务的日志,以便您可以监控它们并安全地将其存档。

  • AWS Identity and Access Management(AWS IAM)通过控制验证和授权使用您 AWS 资源的用户,帮助您安全地管理对您 AWS 资源的访问。

  • Amazon Simple Storage Service (Amazon S3) 是一项基于云的对象存储服务,可帮助您存储、保护和检索任意数量的数据。此模式使用了 Amazon S3 作为文件传输存储系统。

  • AWS Transfer for SFTP 可帮助您通过 SFTP 协议将文件传入和传出 AWS 存储服务。

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

操作说明

任务描述所需技能

创建带有子网的 VPC。

通过 https://console.aws.amazon.com/vpc/ 打开 Amazon VPC 控制台。创建具有两个公共子网的虚拟私有云(VPC)。(第二个子网具有高可用性。)

—或者—

您可以在CloudFormation 控制台中部署附加的 CloudFormation 模板amazon-vpc-subnets.yml,以自动执行此长篇故事中的任务。

开发人员、系统管理员

添加互联网网关。

预置互联网网关,并将其连接至 VPC。

开发人员、系统管理员

迁移现有 IP。

将现有 IP 连接至弹性 IP 地址。您可从地址池创建弹性 IP 地址,并使用该地址。

开发人员、系统管理员
任务描述所需技能

创建 SFTP 服务器。

通过以下网址打开 AWS Transfer Family 控制台:https://console.aws.amazon.com/transfer/。按照 AWS Transfer Family 文档中的为服务器创建面向互联网的端点中的说明创建带面向互联网端点的 SFTP 服务器。对于 端点类型,请选择 VPC 托管。对于 访问,请选择 面向 Internet。对于 VPC,请选择您在上一操作中创建的 VPC。

—或者—

您可以在CloudFormation 控制台中部署附加的 CloudFormation 模板amazon-sftp-server.yml,以自动执行此长篇故事中的任务。

开发人员、系统管理员

迁移域名。

将现有域名附加至自定义主机名。如果正在使用新域名,请使用 Amazon Route 53 DNS 别名。对于现有域名,请选择其他 DNS。有关更多信息,请参阅 AWS Transfer Family 文档中的使用自定义主机名

开发人员、系统管理员

添加 CloudWatch 日志角色。

(可选)如果要启用 CloudWatch 日志记录,请使用 CloudWatch 日志 API 操作创建一个Transfer 角色logs:CreateLogGrouplogs:CreateLogStream logs:DescribeLogStreams、和logs:PutLogEvents。有关更多信息,请参阅 AWS Trans fer Family 文档 CloudWatch中的记录活动

开发人员、系统管理员

保存并提交。

选择保存。对于操作,请选择启动,然后等待 SFTP 服务器的创建状态为联机

开发人员、系统管理员
任务描述所需技能

停止服务器,以便修改设置。

AWS Transfer Family 控制台上,选择服务器,然后选择您创建的 SFTP 服务器。对于操作,请选择停止。当服务器处于离线状态时,选择 编辑 以修改其设置。

开发人员、系统管理员

选择可用区和子网。

可用区部分中,为您的 VPC 选择可用区和子网。

开发人员、系统管理员

添加弹性 IP 地址。

对于 IPv4 地址,请为每个子网选择一个弹性 IP 地址,然后选择保存

开发人员、系统管理员
任务描述所需技能

为用户访问 S3 存储桶创建 IAM 角色。

Transfer 创建 IAM 角色,并添加将 S3 存储桶名称作为资源的  s3:ListBucket s3:GetBucketLocations3:PutObject。有关更多信息,请参阅 AWS Transfer Family 文档中的创建 IAM 角色和策略

—或者—

您可以在CloudFormation 控制台中部署附加的 CloudFormation 模板amazon-sftp-customer.yml,以自动执行此长篇故事中的任务。

开发人员、系统管理员

创建 S3 存储桶。

为应用程序创建 S3 存储桶。

开发人员、系统管理员

创建可选文件夹。

(可选)如果您想将用户的文件单独存储在特定的 Amazon S3 文件夹中,则根据需要添加文件夹。

开发人员、系统管理员

创建 SSH 公有密钥。

若要创建 SSH 密钥对,请参阅 AWS Transfer Family 文档中的生成 SSH 密钥

开发人员、系统管理员

添加用户。

AWS Transfer Family 控制台上,选择服务器,选择您创建的 SFTP 服务器,然后选择添加用户。对于主目录,请选择您创建的 S3 存储桶。对于 SSH 公有密钥,请输入 SSH 密钥对的 SSH 公有密钥部分。为 SFTP 服务器添加用户,然后选择 添加

开发人员、系统管理员
任务描述所需技能

更新安全组。

在 SFTP 服务器的 安全组 部分中,添加测试计算机的 IP 以获得 SFTP 访问权限。

开发人员

使用 SFTP 客户端实用程序测试服务器。

使用任何 SFTP 客户端实用程序测试文件传输功能。有关客户端列表和说明,请参阅 AWS Transfer Family 文档中的使用客户端传输文件

开发人员

相关资源

附件

要访问与此文档相关联的其他内容,请解压以下文件:attachment.zip