

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

# 将本地 SFTP 服务器迁移到使用 AWS AWS Transfer for SFTP
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp"></a>

*Akash Kumar，Amazon Web Services*

## Summary
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-summary"></a>

此模式描述了如何使用该 AWS Transfer for SFTP 服务将使用安全外壳 (SSH) 文件传输协议 (SFTP) 的本地文件传输解决方案迁移到。 AWS Cloud 用户通常通过其域名或固定 IP 连接至 SFTP 服务器。此模式涵盖了两种情况。

AWS Transfer for SFTP 是... 的成员 AWS Transfer Family。它是一种安全的传输服务，可用于通过 SFTP 将文件传入和传出 AWS 存储服务。您可以使用亚马逊简单存储服务 ( AWS Transfer for SFTP Amazon S3) Service 或亚马逊弹性文件系统 (Amazon EFS)。此模式使用了 Amazon S3 存储。

## 先决条件和限制
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-prereqs"></a>

**先决条件**
+ 活跃 AWS 账户的.
+ 现有 SFTP 域名或固定 SFTP IP。

**限制**
+ 当前，您可在一个请求中传输的最大对象为 5 GiB。对于大于 100 MiB 的文件，可以考虑使用 [Amazon S3 分段上传](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html)。

## 架构
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-architecture"></a>

**源技术堆栈**
+ 本地平面文件或数据库转储文件。

**目标技术堆栈**
+ AWS Transfer for SFTP
+ Amazon S3
+ Amazon Virtual Private Cloud(Amazon VPC)
+ AWS Identity and Access Management (IAM) 角色和策略
+ 弹性 IP 地址
+ 安全组
+ Amazon CloudWatch 日志（可选）

**目标架构 **

![使用适用于 SFTP 的 AWS Transfer 将本地 SFTP 服务器迁移至 AWS 云。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/ec0a905c-edef-48ba-9b5e-ea4a4040d320/images/f42aa711-bfe0-4ac6-9f66-5c18a1dd1c7a.png)


**自动化和扩展**

要自动执行此模式的目标架构，请使用随附的 CloudFormation 模板：
+ `amazon-vpc-subnets.yml` 预置具有两个公有子网和两个私有子网的虚拟私有云（VPC）。
+ `amazon-sftp-server.yml` 预置 SFTP 服务器。
+ `amazon-sftp-customer.yml` 添加用户。

## 工具
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-tools"></a>

**AWS 服务**
+ [Amazon CloudWatch Lo](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) gs 可帮助您集中所有系统和应用程序的日志， AWS 服务 这样您就可以监控它们并安全地将其存档。
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) 通过控制谁经过身份验证并有权使用 AWS 资源，从而帮助您安全地管理对资源的访问权限。
+ [Amazon Simple Storage Service（Amazon S3）](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)是一项基于云的对象存储服务，可帮助您存储、保护和检索任意数量的数据。此模式使用了 Amazon S3 作为文件传输存储系统。
+ [AWS Transfer for SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html)帮助您通过 SFTP 协议将文件传入和传出 AWS 存储服务。
+ [Amazon Virtual Private Cloud（亚马逊 VPC）](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)可帮助您将 AWS 资源启动到您定义的虚拟网络中。该虚拟网络类似于您在数据中心中运行的传统网络，并具有使用 AWS的可扩展基础设施的优势。

## 操作说明
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-epics"></a>

### 创建 VPC
<a name="create-a-vpc"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 创建带有子网的 VPC。 | 打开 [Amazon VPC 控制台](https://console.aws.amazon.com/vpc/)。创建具有两个公共子网的虚拟私有云（VPC）。（第二个子网具有高可用性。)<br />—或者—<br />您可以在[CloudFormation 控制台](https://console.aws.amazon.com/cloudformation)中部署附加的 CloudFormation 模板`amazon-vpc-subnets.yml`，以自动执行此长篇故事中的任务。 | 开发人员、系统管理员 | 
| 添加互联网网关。 | 预置互联网网关，并将其连接至 VPC。 | 开发人员、系统管理员 | 
| 迁移现有 IP。 | 将现有 IP 连接至弹性 IP 地址。您可从地址池创建弹性 IP 地址，并使用该地址。 | 开发人员、系统管理员 | 

### 预置 SFTP 服务器
<a name="provision-an-sftp-server"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 创建 SFTP 服务器。 | 打开 [AWS Transfer Family 控制台](https://console.aws.amazon.com/transfer/)。按照 AWS Transfer Family 文档中为[服务器创建面向 Internet 的终端节点中的说明，创建带有面向](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#create-internet-facing-endpoint)互联网的终端节点的 SFTP 服务器。对于**端点类型**，请选择 **VPC 托管**。对于**访问**，请选择**面向 Internet**。对于 **VPC**，请选择您在上一操作中创建的 VPC。<br />—或者—<br />您可以在[CloudFormation 控制台](https://console.aws.amazon.com/cloudformation)中部署附加的 CloudFormation 模板`amazon-sftp-server.yml`，以自动执行此长篇故事中的任务。 | 开发人员、系统管理员 | 
| 迁移域名。 | 将现有域名附加至自定义主机名。如果正在使用新域名，请使用 **Amazon Route 53 DNS** 别名。对于现有域名，请选择**其他 DNS**。有关更多信息，请参阅 AWS Transfer Family 文档中的[使用自定义主机名](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-dns.html)。 | 开发人员、系统管理员 | 
| 添加 CloudWatch 日志角色。 | （可选）如果要启用 CloudWatch 日志记录，请使用 CloudWatch 日志 API 操作创建一个`Transfer`角色`logs:CreateLogGroup``logs:CreateLogStream`、` logs:DescribeLogStreams`、和`logs:PutLogEvents`。有关更多信息，请参阅 AWS Transfer Family 文档 CloudWatch中的[使用记录活动](https://docs.aws.amazon.com/transfer/latest/userguide/monitoring.html#monitoring-enabling)。 | 开发人员、系统管理员 | 
| 保存并提交。 | 选择**保存**。对于**操作**，请选择**启动**，然后等待 SFTP 服务器的创建状态为**联机**。 | 开发人员、系统管理员 | 

### 将弹性 IP 地址映射至 SFTP 服务器
<a name="map-elastic-ip-addresses-to-the-sftp-server"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 停止服务器，以便修改设置。 | 在 [AWS Transfer Family 控制台](https://console.aws.amazon.com/transfer/)上，选择**服务器**，然后选择您创建的 SFTP 服务器。对于**操作**，请选择**停止**。当服务器处于离线状态时，选择**编辑**以修改其设置。 | 开发人员、系统管理员 | 
| 选择可用区和子网。 | 在**可用区**部分中，为您的 VPC 选择可用区和子网。 | 开发人员、系统管理员 | 
| 添加弹性 IP 地址。 | 对于**IPv4 地址**，为每个子网选择一个弹性 IP 地址，然后选择**保存**。 | 开发人员、系统管理员 | 

### 添加用户
<a name="add-users"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 为用户访问 S3 存储桶创建 IAM 角色。 | 为 `Transfer` ****创建 IAM 角色，并添加将 S3 存储桶名称作为资源的 ` s3:ListBucket`、` s3:GetBucketLocation` 和 `s3:PutObject`。有关更多信息，请参阅 AWS Transfer Family 文档中的[创建 IAM 角色和策略](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-roles.html)。<br />—或者—<br />您可以在[CloudFormation 控制台](https://console.aws.amazon.com/cloudformation)中部署附加的 CloudFormation 模板`amazon-sftp-customer.yml`，以自动执行此长篇故事中的任务。 | 开发人员、系统管理员 | 
| 创建 S3 存储桶。 | 为应用程序创建 S3 存储桶。 | 开发人员、系统管理员 | 
| 创建可选文件夹。 | （可选）如果您想将用户的文件单独存储在特定的 Amazon S3 文件夹中，则根据需要添加文件夹。 | 开发人员、系统管理员 | 
| 创建 SSH 公有密钥。 | 要创建 SSH 密钥对，请参阅 AWS Transfer Family 文档中的[生成 SSH 密钥](https://docs.aws.amazon.com/transfer/latest/userguide/key-management.html#sshkeygen)。 | 开发人员、系统管理员 | 
| 添加用户。 | 在 [AWS Transfer Family 控制台](https://console.aws.amazon.com/transfer/)上，选择**服务器**，选择您创建的 SFTP 服务器，然后选择**添加用户**。对于**主目录**，请选择您创建的 S3 存储桶。对于**SSH 公有密钥**，请输入 SSH 密钥对的 SSH 公有密钥部分。为 SFTP 服务器添加用户，然后选择**添加**。 | 开发人员、系统管理员 | 

### 测试 SFTP 服务器。
<a name="test-the-sftp-server"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 更新安全组。 | 在 SFTP 服务器的**安全组**部分中，添加测试计算机的 IP 以获得 SFTP 访问权限。 | 开发者版 | 
| 使用 SFTP 客户端实用程序测试服务器。 | 使用任何 SFTP 客户端实用程序测试文件传输功能。有关客户端和说明的列表，请参阅文档中的[使用客户端传输 AWS Transfer Family 文件](https://docs.aws.amazon.com/transfer/latest/userguide/transfer-file.html)。 | 开发者版 | 

## 相关资源
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-resources"></a>
+ [AWS Transfer Family 用户指南](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-for-sftp.html)
+ [Amazon S3 用户指南](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)
+ Amazon EC2 文档中的@@ [弹性 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html)

## 附件
<a name="attachments-ec0a905c-edef-48ba-9b5e-ea4a4040d320"></a>

要访问与此文档相关联的其他内容，请解压以下文件：[attachment.zip](samples/p-attach/ec0a905c-edef-48ba-9b5e-ea4a4040d320/attachments/attachment.zip)