

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

# AWS 使用 將內部部署 SFTP 伺服器遷移至 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*

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

此模式說明如何 AWS 雲端 使用 AWS Transfer for SFTP 服務，將使用 Secure Shell (SSH) 檔案傳輸通訊協定 (SFTP) 的內部部署檔案傳輸解決方案遷移至 。使用者通常會透過其網域名稱或固定 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 進行儲存。

## 先決條件和限制
<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)。

## Architecture
<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 位址
+ Security groups (安全群組)
+ Amazon CloudWatch Logs （選用）

**目標架構**

![使用 AWS Transfer for SFTP 將內部部署 SFTP 伺服器遷移至 AWS 雲端。](http://docs.aws.amazon.com/zh_tw/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 Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) 可協助您集中所有系統、應用程式的日誌， 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 (Amazon 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>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 建立具有子網路的 VPC。 | 開啟 [Amazon VPC 主控台](https://console.aws.amazon.com/vpc/)。建立具有兩個公有子網路的虛擬私有雲端 (VPC)。（第二個子網路提供高可用性。)<br />—或—<br />您可以在 CloudFormation [主控台中部署連接的 CloudFormation ](https://console.aws.amazon.com/cloudformation) 範本 `amazon-vpc-subnets.yml`，以自動化此史詩中的任務。 | 開發人員、系統管理員 | 
| 新增網際網路閘道。 | 佈建網際網路閘道並將其連接到 VPC。 | 開發人員、系統管理員 | 
| 遷移現有的 IP。 | 將現有的 IP 連接到彈性 IP 地址。您可以從地址集區建立彈性 IP 地址並使用它。 | 開發人員、系統管理員 | 

### 佈建 SFTP 伺服器
<a name="provision-an-sftp-server"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 建立 SFTP 伺服器。 | 開啟 [AWS Transfer Family 主控台](https://console.aws.amazon.com/transfer/)。請遵循 AWS Transfer Family 文件中[為伺服器建立面向網際網路的端點](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#create-internet-facing-endpoint)中的指示，使用面向網際網路的端點建立 SFTP 伺服器。針對**端點類型**，選擇**託管的 VPC**。針對**存取**，選擇**網際網路面向**。針對 **VPC**，選擇您在上一個史詩中建立的 VPC。<br />—或—<br />您可以在 CloudFormation [主控台中部署連接的 CloudFormation ](https://console.aws.amazon.com/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 Logs API 操作 `logs:CreateLogGroup`、 `logs:CreateLogStream`` logs:DescribeLogStreams`和 建立`Transfer`角色`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>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 停止伺服器，以便您可以修改設定。 | 在 [AWS Transfer Family 主控台](https://console.aws.amazon.com/transfer/)上，選擇**伺服器**，然後選取您建立的 SFTP 伺服器。針對 **Actions** (動作)，選擇 **Stop** (停止)。當伺服器離線時，選擇**編輯**以修改其設定。 | 開發人員、系統管理員 | 
| 選擇可用區域和子網路。 | 在**可用區域**區段中，選擇 VPC 的可用區域和子網路。 | 開發人員、系統管理員 | 
| 新增彈性 IP 地址。 | 針對 **IPv4 地址**，為每個子網路選擇彈性 IP 地址，然後選擇**儲存**。 | 開發人員、系統管理員 | 

### 新增使用者
<a name="add-users"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 建立 IAM 角色，讓使用者存取 S3 儲存貯體。 | 建立 `Transfer`****和 新增的 IAM 角色` s3:ListBucket`` s3:GetBucketLocation`，`s3:PutObject`並使用 S3 儲存貯體名稱做為資源。如需詳細資訊，請參閱 AWS Transfer Family 文件中的[建立 IAM 角色和政策](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-roles.html)。<br />—或—<br />您可以在 CloudFormation [主控台中部署連接的 CloudFormation ](https://console.aws.amazon.com/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 金鑰對的公有金鑰部分。新增 SFTP 伺服器的使用者，然後選擇**新增**。 | 開發人員、系統管理員 | 

### 測試 SFTP 伺服器
<a name="test-the-sftp-server"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 更新安全群組。 | 在 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)