使用 AWS Transfer for SFTP 将本地 SFTP 服务器迁移至 AWS
Akash Kumar,Amazon Web Services
摘要
此模式描述了如何借助 AWS Transfer for SFTP 服务将使用 Secure Shell(SSH)File Transfer Protocol(SFTP)的本地文件传输解决方案迁移至 AWS 云。用户通常通过其域名或固定 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 存储。
先决条件和限制
先决条件
一个活跃的 AWS 账户。
现有 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 Logs(可选)
目标架构

自动化和扩缩
若要自动执行此模式的目标架构,请使用随附的 CloudFormation 模板:
amazon-vpc-subnets.yml预置具有两个公有子网和两个私有子网的虚拟私有云(VPC)。amazon-sftp-server.yml预置 SFTP 服务器。amazon-sftp-customer.yml添加用户。
工具
AWS 服务
Amazon CloudWatch Logs 可帮助您集中管理来自所有系统、应用程序和 AWS 服务 的日志,以便您对其进行监控和安全存档。
AWS Identity and Access Management(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。 | 打开 Amazon VPC 控制台 —或者— 您可以在 CloudFormation console | 开发人员、系统管理员 |
添加互联网网关。 | 预置互联网网关,并将其连接至 VPC。 | 开发人员、系统管理员 |
迁移现有 IP。 | 将现有 IP 连接至弹性 IP 地址。您可从地址池创建弹性 IP 地址,并使用该地址。 | 开发人员、系统管理员 |
| 任务 | 描述 | 所需技能 |
|---|---|---|
创建 SFTP 服务器。 | 打开 AWS Transfer Family 管理控制台 —或者— 您可以在 CloudFormation console | 开发人员、系统管理员 |
迁移域名。 | 将现有域名附加至自定义主机名。如果正在使用新域名,请使用 Amazon Route 53 DNS 别名。对于现有域名,请选择其他 DNS。有关更多信息,请参阅 AWS Transfer Family 文档中的使用自定义主机名。 | 开发人员、系统管理员 |
添加 CloudWatch 日志记录角色。 | (可选)如果您想启用 CloudWatch 日志记录,则使用 CloudWatch Logs API 操作 | 开发人员、系统管理员 |
保存并提交。 | 选择保存。对于操作,请选择启动,然后等待 SFTP 服务器的创建状态为联机。 | 开发人员、系统管理员 |
| 任务 | 描述 | 所需技能 |
|---|---|---|
停止服务器,以便修改设置。 | 在 AWS Transfer Family 控制台 | 开发人员、系统管理员 |
选择可用区和子网。 | 在可用区部分中,为您的 VPC 选择可用区和子网。 | 开发人员、系统管理员 |
添加弹性 IP 地址。 | 对于 IPv4 地址,请为每个子网选择一个弹性 IP 地址,然后选择保存。 | 开发人员、系统管理员 |
| 任务 | 描述 | 所需技能 |
|---|---|---|
为用户访问 S3 存储桶创建 IAM 角色。 | 为 —或者— 您可以在 CloudFormation console | 开发人员、系统管理员 |
创建 S3 存储桶。 | 为应用程序创建 S3 存储桶。 | 开发人员、系统管理员 |
创建可选文件夹。 | (可选)如果您想将用户的文件单独存储在特定的 Amazon S3 文件夹中,则根据需要添加文件夹。 | 开发人员、系统管理员 |
创建 SSH 公有密钥。 | 若要创建 SSH 密钥对,请参阅 AWS Transfer Family 文档中的生成 SSH 密钥。 | 开发人员、系统管理员 |
添加用户。 | 在 AWS Transfer Family 控制台 | 开发人员、系统管理员 |
| 任务 | 描述 | 所需技能 |
|---|---|---|
更新安全组。 | 在 SFTP 服务器的安全组部分中,添加测试计算机的 IP 以获得 SFTP 访问权限。 | 开发人员 |
使用 SFTP 客户端实用程序测试服务器。 | 使用任何 SFTP 客户端实用程序测试文件传输功能。有关客户端列表和说明,请参阅 AWS Transfer Family 文档中的使用客户端传输文件。 | 开发人员 |
相关资源
Amazon EC2 文档中的弹性 IP 地址。
附件
要访问与此文档相关联的其他内容,请解压以下文件:attachment.zip