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

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

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

由 Durga Prasad Cheepuri 建立 (AWS)

環境:PoC 或試行

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

AWS 服務:Amazon ECS;Amazon EFS

Summary

此模式提供程式碼範例和步驟,以建立在 Amazon Web Services (ECS) Cloud 中的 Amazon Elastic Compute Cloud (AmazonEC2) 執行個體上執行的 Amazon Elastic Container Service (Amazon ) 任務定義AWS,同時使用 Amazon Elastic File System (Amazon EFS) 在這些EC2執行個體上掛載檔案系統。使用 Amazon 的 Amazon ECS任務EFS會自動掛載您在任務定義中指定的檔案系統,並將這些檔案系統提供給AWS區域中所有可用區域中的任務容器。

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

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

先決條件和限制

先決條件

  • 作用中AWS帳戶

  • 具有虛擬私有網路 (VPC) 端點或路由器的虛擬私有雲端 (VPN)

  • (建議) Amazon ECS容器代理程式 1.38.0 或更新版本,以符合 Amazon EFS存取點和IAM授權功能 (如需詳細資訊,請參閱適用於 Amazon 的AWS部落格文章 – 授權和存取點 。) EFS IAM

限制

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

架構

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

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 Elastic Compute Cloud (Amazon EC2) 在 AWS Cloud 中提供可擴展的運算容量。您可以使用 Amazon 視需要EC2啟動任意數量或數量的虛擬伺服器,並且可以橫向擴展或橫向擴展。

  • Amazon ECS – Amazon Elastic Container Service (Amazon ECS) 是一種高度可擴展的快速容器管理服務,可用於執行、停止和管理叢集上的容器。您可以在 AWS Fargate 管理的無伺服器基礎設施上執行任務和服務。或者,若要對基礎設施進行更多控制,您可以在管理的EC2執行個體叢集上執行任務和服務。

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

  • AWS CLI – AWS命令列介面 (AWS CLI) 是一種開放原始碼工具,可透過命令列 Shell 中的命令與 AWS服務互動。組態最少時,您可以從AWSCLI命令提示中執行執行與瀏覽器型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
使用 建立任務定義AWSCLI。
  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