使用 Amazon EFS 建立 Amazon ECS 任務定義,並在 EC2 執行個體上掛接檔案系統 - AWS 方案指引

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

使用 Amazon EFS 建立 Amazon ECS 任務定義,並在 EC2 執行個體上掛接檔案系統

創建者杜爾加普拉薩德奇普里(AWS)

環境:PoC 或試點

技術:容器與微服務 CloudNative;管理與治理;儲存與備份;Web 和行動應用程式

AWS 服務:Amazon ECS; Amazon EFS

Summary

此模式提供程式碼範例和步驟來建立 Amazon Elastic Container Service (Amazon ECS) 任務定義,該定義可在亞馬遜網路服務 (AWS) 雲端的 Amazon 彈性運算雲端 (Amazon EC2) 執行個體上執行,同時使用 Amazon Elastic File System (Amazon EFS) 在這些 EC2 執行個體上掛載檔案系統。使用 Amazon EFS 的 Amazon ECS 任務會自動掛接您在任務定義中指定的檔案系統,並讓這些檔案系統可供 AWS 區域中所有可用區域的任務容器使用。

為了滿足您的持續性儲存和共用儲存需求,您可以同時使用 Amazon ECS 和 Amazon EFS。例如,您可以使用 Amazon EFS 存放應用程式的永久性使用者資料和應用程式資料,並在不同的可用區域中執行作用中和待命 ECS 容器配對,以實現高可用性。您也可以使用 Amazon EFS 存放可由 ECS 容器和分散式任務工作負載 parallel 存取的共用資料。

若要將 Amazon EFS 與 Amazon ECS 搭配使用,您可以在任務定義中新增一或多個磁碟區定義。磁碟區定義包括 Amazon EFS 檔案系統 ID、存取點 ID,以及 AWS Identity and Access Management (IAM) 授權或傳輸中傳輸層安全 (TLS) 加密的組態。您可以使用工作定義中的容器定義來指定在容器執行時裝載的工作定義磁碟區。執行使用 Amazon EFS 檔案系統的任務時,Amazon ECS 會確保檔案系統已掛載,並可供需要存取檔案系統的容器使用。

先決條件和限制

先決條件

限制

  • 舊於 1.35.0 的 Amazon ECS 容器代理程式版本不支援 Amazon EFS 檔案系統來執行使用 EC2 啟動類型的任務。

架構

下圖顯示使用 Amazon ECS 建立任務定義並在 ECS 容器中的 EC2 執行個體上掛載 Amazon EFS 檔案系統的應用程式範例。

AWS 雲端 architecture showing ECS task definition, ECS service, and EFS file system interaction.

該圖顯示以下工作流程:

  1. 建立一個 Amazon EFS 檔案系統。

  2. 使用容器建立工作定義。

  3. 設定容器執行個體以掛接 Amazon EFS 檔案系統。任務定義參考磁碟區掛載,因此容器執行個體可以使用 Amazon EFS 檔案系統。無論在哪個容器執行個體上建立這些任務,ECS 任務都可以存取相同的 Amazon EFS 檔案系統。

  4. 使用任務定義的三個執行個體建立 Amazon ECS 服務。

技術, 堆

  • Amazon EC2

  • Amazon ECS

  • Amazon EFS

工具

  • Amazon EC2 — 亞馬遜彈性運算雲 (Amazon EC2) 在 AWS 雲端提供可擴展的運算容量。您可以使用 Amazon EC2 根據需要啟動任意數量或少量的虛擬伺服器,並且可以向外擴展或擴展。

  • Amazon ECS — 亞馬遜彈性容器服務 (Amazon ECS) 是一種高度可擴展、快速的容器管理服務,用於在叢集上執行、停止和管理容器。您可以在由 AWS Fargate 管理的無伺服器基礎設施上執行任務和服務。或者,若要進一步控制基礎設施,您可以在您管理的 EC2 執行個體叢集上執行任務和服務。

  • Amazon EFS — Amazon Elastic File System (Amazon EFS) 提供簡單、可擴展且全受管的彈性 NFS 檔案系統,可與 AWS 雲端服務和現場部署資源搭配使用。

  • AWS CLI — AWS Command Line Interface (AWS CLI) (AWS CLI) 是一種開放原始碼工具,可透過命令列殼層中的命令與 AWS 服務互動。只要使用最少的組態,您就可以執行 AWS CLI 命令,從命令提示字元實作與以瀏覽器為基礎的 AWS 管理主控台所提供的功能相同。

史诗

任務描述所需技能
使用 AWS 管理主控台建立 Amazon EFS 檔案系統。
  1. 建立 Amazon EFS 檔案系統,然後選擇包含您容器的 VPC。注意:如果您使用不同的 VPC,請設定 VPC 對等連線。

  2. 請注意檔案系統 ID。

AWS DevOps
任務描述所需技能
使用 Amazon EFS 檔案系統建立任務定義。

使用新的 Amazon ECS 主控台或具有下列組態的傳統 Amazon ECS 主控台來建立任務定義:

  • 如果您使用新的主控台,請針對應用程式環境選擇 Amazon EC2 執行個體。如果您使用傳統主控台,請選擇 EC2 做為啟動類型。

  • 新增磁碟區。輸入磁碟區的名稱,選擇 EFS 做為磁碟區類型,然後選擇您先前記下的檔案系統 ID。對於根目錄,請選擇您要在 Amazon ECS 容器主機上託管的 Amazon EFS 檔案系統路徑。

AWS DevOps
使用 AWS CLI 建立任務定義。
  1. 若要為您的工作定義建立含有輸入參數預留位置的 JSON 範本,請執行下列命令:

    aws ecs register-task-definition --generate-cli-skeleton
  2. 若要使用 JSON 範本建立工作定義,請執行下列命令:

    aws ecs register-task-definition --cli-input-json file://<path_to_your_json_file>
  3. 根據檔案 (附task_definition_parameters.json件) 在 JSON 範本中輸入輸入參數。附註:如需有關輸入參數的詳細資訊,請參閱任務定義參數 (Amazon ECS 文件) 和 register-task-definition(AWS CLI 命令參考)。

AWS DevOps

相關資源

附件

若要存取與此文件相關聯的其他內容,請解壓縮下列檔案:attachment.zip