如何在執行於 EC2 的 ECS 容器或任務上掛載 EFS 檔案系統?

2 分的閱讀內容
0

我想要使用 Amazon Elastic File System (Amazon EFS) 搭配 Amazon Elastic Container Service (Amazon ECS) 容器,或使用 Amazon Elastic Compute Cloud (Amazon EC2) 啟動類型的任務。該如何進行?

簡短描述

您可以在執行於 EC2 執行個體的任務或容器上掛載 EFS 檔案系統。若要執行此操作,請建立在磁碟區任務定義參數中提供檔案系統 ID 的任務定義。這可讓 EFS 檔案系統自動掛載至您在任務定義中指定的任務。

所需資源:

解決方案

網路要求

  • EFS 檔案系統和 ECS 叢集必須位於相同的 VPC 中。
  • 與 EFS 檔案系統關聯的安全群組必須允許 ECS 容器執行個體和 ECS 任務的連接埠 2049 (網路檔案系統或 NFS) 上的傳入連線。
  • ECS 執行個體或任務的安全群組必須允許連接埠 2049 上到 EFS 檔案系統安全群組的傳出連線。

建立任務定義

1.    開啟 Amazon ECS 主控台,然後選取 Task Definitions (任務定義)、Create new Task Definition (建立新的任務定義)。

2.    選擇 EC2 以獲取啟動類型相容性,然後選取 Next step (下一步)。

3.    在 Configure task and container definitions (設定任務和容器定義) 中,輸入任務定義的名稱。

4.    在 Volume (磁碟區) 區段中,選擇 Add volume (新增磁碟區)。

5.    輸入磁碟區的名稱,然後從 Volume types (磁碟區類型) 下拉式功能表中選取 EFS

6.    針對 File system ID (檔案系統 ID),選取要與 ECS 任務搭配使用的檔案系統 ID。

7.    (選用) 根據您的需求指定根目錄傳輸中加密EFS IAM 授權 (如有需要)。如果未修改任何選項,則會使用預設的根目錄 "/"。

8.    選取 Add (新增)。

9.    建立容器時,在 Container definitions (容器定義) 下,選取 Add container (新增容器),以使用先前建立的磁碟區。然後,在 Mount points (掛接點) 子區段的 Storage and Logging (儲存和日誌記錄) 下,選取您在步驟 4 中建立的磁碟區。

10.    如果是容器路徑,請選擇應用程式容器內的目錄路徑,然後選擇 Add (新增)。

11.    完成任務定義精靈中其餘的必要欄位,然後選擇 Create (建立)。

在下列範例中,任務定義會建立名稱為 efs-ec2-test 的資料磁碟區。nginx 容器在 /usr/share/nginx/html 路徑會掛載主機資料分割區。

{
  "containerDefinitions": [
    {
      "memory": 128,
      "portMappings": [
        {
          "hostPort": 80,
          "containerPort": 80,
          "protocol": "tcp"
        }
      ],
      "essential": true,
      "mountPoints": [
        {
          "containerPath": "/usr/share/nginx/html",
          "sourceVolume": "efs-ec2-test"
        }
      ],
      "name": "nginx",
      "image": "nginx"
    }
  ],
  "volumes": [
    {
      "name": "efs-ec2-test",
      "efsVolumeConfiguration": {
        "fileSystemId": "fs-1324abcd",
        "transitEncryption": "ENABLED"
      }
    }
  ],
  "family": "efs-test"
}

**注意:**根據您的自訂組態值,取代 fileSystemidcontainerPath 和其他任務定義參數。

在前述範例中,您可以使用下列內容,在檔案系統的根目錄中建立一個範例 index.html 檔案:

<html>
  <body>
    <h1>You are using an Amazon EFS file system for persistent container storage.</h1>
  </body>
</html>

執行 ECS 任務

1.    使用先前建立的任務定義執行 ECS 任務。

2.    使用 ECS 執行個體的公有 IP 地址存取網站,以確認 EFS 檔案系統成功掛載至 EC2 容器。


AWS 官方
AWS 官方已更新 2 年前