

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

# 教學課程：使用內部部署 Linux 用戶端進行掛載
<a name="mounting-fs-mount-helper-direct"></a>

使用 Direct Connect 或 VPN 連線至 Amazon VPC 時，您可以在內部部署資料中心伺服器上掛載 EFS 檔案系統。下圖顯示從內部部署掛載 EFS 檔案系統 AWS 服務 所需的高階示意圖。

![使用 時，在內部部署用戶端上掛載 EFS 檔案系統 Direct Connect。](http://docs.aws.amazon.com/zh_tw/efs/latest/ug/images/efs-directconnect-how-it-works.png)


**注意**  
不支援使用 Amazon EFS 搭配以 Microsoft Windows 爲基礎的用戶端。

**Topics**
+ [先決條件](#efs-onpremises)
+ [步驟 1：建立您的 EFS 資源](#wt5-step1-efs)
+ [步驟 2：安裝 NFS 用戶端](#wt5-step4-install-nfs)
+ [步驟 3：在您的內部部署用戶端上掛載 EFS 檔案系統](#wt5-step3-connect)
+ [步驟 4：清除資源並保護 AWS 您的帳戶](#wt5-step4-cleanup)
+ [選用：加密傳輸中的資料](#wt5-step2-get-efs-utils)

## 先決條件
<a name="efs-onpremises"></a>

請確定您已有 Direct Connect 或 VPN 連線。如需 Direct Connect的詳細資訊，請參閱《Direct Connect 使用者指南》[https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)。如需設定 VPN 連線的詳細資訊，請參閱《*Amazon* [VPC 使用者指南》中的使用 將 VPC 連線至遠端網路 AWS Virtual Private Network](https://docs.aws.amazon.com/vpc/latest/userguide/vpn-connections.html)。

建立 Direct Connect 或 VPN 連線後，請在 Amazon VPC 中建立 EFS 檔案系統和掛載目標。之後，您就可以下載並安裝 amazon-efs-utils 工具。然後，您從現場部署用戶端中測試檔案系統。最後，逐步解說最後的清理步驟將為您提供移除這些資源的資訊。

本逐步解說會在美國西部 (奧勒岡) 區域 (`us-west-2`) 中建立所有這些資源。無論您 AWS 區域 使用哪種，請務必一致地使用它。您的所有資源—您的 VPC、掛載目標和 EFS 檔案系統—都必須位於相同的 中 AWS 區域，如下圖所示。

![使用 時，在內部部署用戶端上掛載 EFS 檔案系統 Direct Connect。](http://docs.aws.amazon.com/zh_tw/efs/latest/ug/images/efs-directconnect-how-it-works.png)


**注意**  
在某些情況下，本機應用程式可能需要知道該 EFS 檔案系統是否提供使用。在這些情況下，如果第一個掛載點暫時無法使用，則您的應用程式應該能夠指向不同的掛載點 IP 地址。在這個案例中，我們建議您將兩個現場部署用戶端連接到在不同可用區域 (AZ) 的檔案系統以獲得更高的可用性。

您可以使用 的根登入 AWS 帳戶 資料來登入 主控台，並嘗試此練習。不過， AWS Identity and Access Management (IAM) 最佳實務建議您不要使用 的根登入資料 AWS 帳戶。反之，在帳戶中建立一個管理員使用者並使用這些憑證來管理帳戶中的資源。如需詳細資訊，請參閱*AWS IAM Identity Center 《 使用者指南*》中的[單一登入存取 AWS 帳戶](https://docs.aws.amazon.com/singlesignon/latest/userguide/useraccess.html)。

您可以使用預設 VPC 或在帳戶中建立的自訂 VPC。預設的 VPC 設定適用於此逐步解說。不過，如果您使用的是自訂 VPC，請檢查下列各項：
+ 該網際網路閘道已連接至您的 VPC。如需詳細資訊，請參閱[《Amazon VPC 使用者指南》中的使用網際網路閘道啟用 VPC 的網際網路存取](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)。 **
+ 該 VPC 路由表包含傳送所有網際網路綁定型流量到網際網路閘道的規則。

## 步驟 1：建立您的 EFS 資源
<a name="wt5-step1-efs"></a>

在此步驟中，您會建立 EFS 檔案系統和掛載目標。

**建立 EFS 檔案系統**

1. 開啟 Amazon Elastic File System 主控台，網址為 [https://console.aws.amazon.com/efs/](https://console.aws.amazon.com/efs/)。

1. 選擇 **Create File System (建立檔案系統)**。

1. 從 **VPC (VPC)** 清單中選擇預設 VPC。

1. 選取所有可用區域的核取方塊。確保它們已選擇預設子網路、自動 IP 地址和預設安全群組。這些是您的掛載目標。如需詳細資訊，請參閱[管理掛載目標](accessing-fs.md)。

1. 選擇 **Next Step (後續步驟)**。

1. 為您的檔案系統命名，將 **general purpose (一般用途)** 選擇為您的預設效能模式，然後選擇 **Next Step (下一步)**。

1. 選擇 **Create File System (建立檔案系統)**。

1. 從清單中選擇您的檔案系統，並記下 **Security group (安全群組)** 值。您在下一個步驟中需要使用到此數值。

您剛建立的檔案系統已有掛載目標。每個掛載目標都有一個關聯的安全群組。做為虛擬防火牆的安全群組會控制網路流量。如果您在建立掛載目標未提供安全群組，Amazon EFS 會將 VPC 的預設安全群組與其相關聯。如果您完全依照上述步驟，則掛載目標使用的是預設安全群組。

接著，您將規則新增至掛載目標的安全群組，以允許對網路檔案系統 (NFS) 連接埠 (2049) 的傳入流量。您可以使用 AWS 管理主控台 將規則新增至掛載目標 VPC 中的安全群組。

**允許對 NFS 連接埠的傳入流量**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)：// 開啟 Amazon EC2 主控台。

1. 在**網路與安全性**下，選擇**安全群組**。

1. 選擇與您檔案系統關聯的安全群組。您在 [步驟 1：建立您的 EFS 資源](#wt5-step1-efs) 結尾時記下此資訊。

1. 在安全群組清單下方顯示的標籤窗格中，選擇**傳入** 索引標籤。

1. 選擇**編輯**。

1. 選擇 **Add Rule (新增規則)**，然後選擇以下其中一種類型的規則：
   + **類型** – **NFS (NFS)**
   + **來源** – **Anywhere (隨處)**

   我們建議您只使用 **Anywhere (隨處)** 來源進行測試。您可以建立設為在現場部署用戶端之 IP 地址的自訂來源，或從用戶端本身使用主控台，然後選擇 **My IP (我的 IP)**。
**注意**  
您不需要新增傳出規則，因為預設的傳出規則可讓所有流量離開。如果您沒有此預設傳出規則，請新增傳出規則以在 NFS 連接埠 2049 上開啟 TCP 連線，將掛載目標安全群組識別為目的地。

## 步驟 2：安裝 NFS 用戶端
<a name="wt5-step4-install-nfs"></a>

在此步驟中，您將安裝 NFS 用戶端。

**將 NFS 用戶端安裝在您的現場部署伺服器**
**注意**  
如果您需要加密傳輸中的資料，請使用 Amazon EFS 掛載協助程式 `amazon-efs-utils`，而不要使用 NFS 用戶端。如需安裝 amazon-efs-utils 的詳細資訊，請參閱 *選用：對傳輸中資料進行加密*一節。

1. 存取現場部署用戶端的終端機。

1. 安裝 NFS。

   如果您使用的是 Red Hat Linux，請使用下列命令來安裝 NFS。

   ```
   $ sudo yum -y install nfs-utils
   ```

   如果您使用的是 Ubuntu，請使用下列命令來安裝 NFS。

   ```
   $ sudo apt-get -y install nfs-common
   ```

## 步驟 3：在您的內部部署用戶端上掛載 EFS 檔案系統
<a name="wt5-step3-connect"></a>

**建立掛載目錄**

1.  使用以下命令建立掛載點的目錄。  
**Example**  

   ```
   mkdir ~/efs
   ```

1. 選擇可用區域中掛載目標的慣用 IP 地址。您可以透過現場部署 Linux 用戶端測量延遲。若要這樣做，請對在不同可用區域的 EC2 執行個體之 IP 地址使用以終端機為基礎的工具 (例如 `ping`)，以尋找具最低延遲的 IP 地址。
+ 執行掛載命令，並使用掛載目標的 IP 地址進行檔案系統掛載。

  ```
  $ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport {{mount-target-IP}}:/   ~/efs
  ```

現在您已掛載 EFS 檔案系統，您可以使用下列程序進行測試。

**測試 EFS 檔案系統連線**

1. 使用下列命令，將目錄變更為您建立的新目錄。

   ```
   $ cd ~/efs
   ```

1. 建立子目錄，並將子目錄的擁有權變更為 EC2 執行個體使用者。接著，使用下列命令導覽至新目錄。

   ```
   $ sudo mkdir getting-started
   $ sudo chown ec2-user getting-started
   $ cd getting-started
   ```

1. 透過下列命令建立文字檔。

   ```
   $ touch test-file.txt
   ```

1. 透過以下命令列出目錄內容。

   ```
   $ ls -al
   ```

因此，會建立以下檔案。

```
-rw-rw-r-- 1 {{username}} {{username}} 0 Nov 15 15:32 test-file.txt
```

**警告**  
使用 `_netdev` 選項，此選項用於在自動掛載檔案系統時識別網路檔案系統。若 `_netdev` 已遺失，EC2 執行個體可能會停止回應。此結果是因為網路檔案系統在運算執行個體開始聯網後需要初始化。如需詳細資訊，請參閱[自動掛載失敗且執行個體沒有回應](troubleshooting-efs-mounting.md#automount-fails)。

## 步驟 4：清除資源並保護 AWS 您的帳戶
<a name="wt5-step4-cleanup"></a>

在完成此逐步解說後，或者，如果您不想探索逐步解說，您應該遵循這些步驟以清除資源並保護 AWS 帳戶。

**清除資源並保護您的 AWS 帳戶**

1. 使用下列命令卸載 EFS 檔案系統。

   ```
   $ sudo umount ~/efs
   ```

1. 在 Amazon EFS 主控台開啟 [Amazon EFS 主控台](https://console.aws.amazon.com/efs/)。

1. 選擇您要從檔案系統清單刪除的 EFS 檔案系統。

1. 針對 **Actions (動作)**，選擇 **Delete file system (刪除檔案系統)**。

1. 在**永久刪除檔案系統**對話方塊中，輸入要刪除 EFS 檔案系統的檔案系統 ID，然後選擇**刪除檔案系統**。

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**安全群組**。

1. 選取您在此逐步解說中將規則新增至其中的安全群組名稱。
**警告**  
無法刪除 VPC 的預設安全群組。

1. 在 **Actions (動作)** 中，選擇 **Edit inbound rules (編輯傳入規則)**。

1. 選擇在您新增之傳入規則結尾的 X 並選擇 **Save (儲存)**。

## 選用：加密傳輸中的資料
<a name="wt5-step2-get-efs-utils"></a>

若要加密傳輸中的資料，請使用 Amazon EFS 掛載協助程式 amazon-efs-utils，而不要使用 NFS 用戶端。

*amazon-efs-utils* 套件是 Amazon EFS 工具的開放原始碼集合。amazon-efs-utils 集合隨附掛載協助程式和工具，可讓您更輕鬆地對 Amazon EFS 的傳輸中的資料進行加密。如需此套件的詳細資訊，請參閱[安裝 Amazon EFS 用戶端](using-amazon-efs-utils.md)。此套裝提供免費下載，您可以從 GitHub 取得透過複製套件的儲存庫。

**從 GitHub 複製 amazon-efs-utils**

1. 存取現場部署用戶端的終端機。

1. 透過終端機，使用下列命令從 GitHub 將 amazon-efs-utils 工具複製到您選擇的目錄。

   ```
   git clone https://github.com/aws/efs-utils
   ```

現在您已有套件，即可進行安裝。根據現場部署用戶端的 Linux 發行版本，此安裝的處理方式會有所不同。支援以下發行版本：
+ Amazon Linux 2
+ Amazon Linux
+ Red Hat Enterprise Linux （以及 CentOS 等衍生產品） 第 8 版及更新版本
+ Ubuntu 16.04 LTS 和更新版本

**建置和安裝 amazon-efs-utils 做為 RPM 套件**

1. 在用戶端開啟終端機並導覽至已從 GitHub 複製 amazon-efs-utils 套件的目錄。

1. 使用以下命令建置套件。

   ```
   make rpm
   ```
**注意**  
如果您尚未這麼做，則請使用下列命令安裝 rpm-builder 套件。  

   ```
   sudo yum -y install rpm-build
   ```

1. 使用下列命令安裝 套件。

   ```
   sudo yum -y install build/amazon-efs-utils*rpm
   ```

**建置和安裝 amazon-efs-utils 做為 deb 套件**

1. 在用戶端開啟終端機並導覽至已從 GitHub 複製 amazon-efs-utils 套件的目錄。

1. 使用以下命令建置套件。

   ```
   ./build-deb.sh
   ```

1. 使用下列命令安裝 套件。

   ```
   sudo apt-get install build/amazon-efs-utils*deb
   ```

安裝套件後，請設定 amazon-efs-utils 以在 AWS 區域 搭配 Direct Connect 或 VPN 使用。

**設定 amazon-efs-utils 以用於您的 AWS 區域**

1. 透過 Secure Shell (SSH) 存取 EC2 執行個體的終端機，並使用適當的使用者名稱登入。如需詳細資訊，請參閱 *Amazon EC2 User Guide* 中的 [Connect to your EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect.html)。

1. 使用您選擇的文字編輯器，開啟 `/etc/amazon/efs/efs-utils.conf` 檔案。

1. 尋找行 `“dns_name_format = {fs_id}.efs.{{{region}}}.amazonaws.com”`。

1. 使用 AWS 區域的 ID (例如 `us-west-2`) 變更 `{{{region}}}`。

若要將 EFS 檔案系統掛載在內部部署用戶端上，請先開啟在內部部署 Linux 用戶端上的終端機。若要掛載系統，您需要檔案系統 ID、其中一個掛載目標的掛載目標 IP 地址，以及檔案系統的 AWS 區域。如果您建立多個檔案系統的掛載目標，則可以選擇任何其中一個。

當您擁有該資訊時，您可以使用三個步驟來掛載檔案系統：

**建立掛載目錄**

1.  使用以下命令建立掛載點的目錄。  
**Example**  

   ```
   mkdir ~/efs
   ```

1. 選擇可用區域中掛載目標的慣用 IP 地址。您可以透過現場部署 Linux 用戶端測量延遲。若要這樣做，請對在不同可用區域的 EC2 執行個體之 IP 地址使用以終端機為基礎的工具 (例如 `ping`)，以尋找具最低延遲的 IP 地址。

**更新 `/etc/hosts`**
+ 使用以下格式透過檔案系統 ID 和掛載目標 IP 地址，將項目新增到本機 `/etc/hosts` 檔案。

  ```
  {{mount-target-IP-Address}} {{file-system-ID}}.efs.{{region}}.amazonaws.com
  ```  
**Example**  

  ```
  192.0.2.0 fs-12345678.efs.us-west-2.amazonaws.com
  ```

**建立掛載目錄**

1.  使用以下命令建立掛載點的目錄。  
**Example**  

   ```
   mkdir ~/efs
   ```

1. 執行掛載命令來掛載檔案系統。  
**Example**  

   ```
   sudo mount -t efs fs-12345678 ~/efs
   ```

   如果您想要使用傳輸中的資料加密，掛載命令看起來如下所示。  
**Example**  

   ```
   sudo mount -t efs -o tls fs-12345678 ~/efs
   ```