

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

# 將 Amazon EFS 磁碟區與 Amazon ECS 搭配使用
<a name="efs-volumes"></a>

Amazon Elastic File System (Amazon EFS) 提供簡單且可擴展的檔案儲存體，可與 Amazon ECS 任務搭配使用。利用 Amazon EFS，儲存容量即可有彈性。儲存容量會隨著您新增和移除檔案時自動擴展和縮減。您的應用程式可在需要時具備所需的儲存容量。

您可以搭配使用 Amazon EFS 檔案系統與 Amazon ECS，來匯出整個容器執行個體之機群的檔案系統資料。如此一來，無論您的任務位於哪個執行個體，都可存取相同的持久性儲存體。您的任務定義也必須參考容器執行個體上所掛載的磁碟區，才可使用檔案系統。

如需教學，請參閱[使用主控台為 Amazon ECS 設定 Amazon EFS 檔案系統](tutorial-efs-volumes.md)。

## 考量事項
<a name="efs-volume-considerations"></a>

 使用 Amazon EFS 磁碟區時，請考量下列事項：
+ 對於在 EC2 上執行的任務，Amazon EFS 檔案系統支援作為公開預覽版，隨帶有容器代理程式版本 1.35.0 的 Amazon ECS 最佳化 AMI 版本 `20191212` 一同推出。不過，Amazon EFS 檔案系統支援廣泛使用 Amazon ECS 最佳化 AMI `20200319` 版與容器代理程式 1.38.0 版，這包含 Amazon EFS 存取點和 IAM 授權功能。建議您使用 Amazon ECS 最佳化 AMI 版本 `20200319` 或更新版本以使用這些功能。如需詳細資訊，請參閱[Amazon ECS 最佳化 Linux AMI](ecs-optimized_AMI.md)。
**注意**  
如果您建立自己的 AMI，則必須使用容器代理程式 1.38.0 或更新版本、`ecs-init` 1.38.0-1 版或更新版本，並在 Amazon EC2 執行個體上執行下列命令以啟用 Amazon ECS 磁碟區外掛程式。這些命令取決於您是否使用 Amazon Linux 2 或 Amazon Linux 作為基礎映像。  
Amazon Linux 2  

  ```
  yum install amazon-efs-utils
  systemctl enable --now amazon-ecs-volume-plugin
  ```
Amazon Linux  

  ```
  yum install amazon-efs-utils
  sudo shutdown -r now
  ```
+ 對於託管於 Fargate 的任務，平台版本 1.4.0 或更新版本 (Linux) 上支援 Amazon EFS 檔案系統。如需詳細資訊，請參閱[適用於 Amazon ECS 的 Fargate 平台版本](platform-fargate.md)。
+ 在 Fargate 上託管的任務使用 Amazon EFS 磁碟區時，Fargate 會建立負責管理 Amazon EFS 磁碟區的監督容器。監督容器使用少量的任務記憶體與 CPU。查詢任務中繼資料第 4 版端點時，可看見監督容器。此外，其在 CloudWatch Container Insights 中顯示為容器名稱 `aws-fargate-supervisor`。如需有關使用 EC2 的詳細資訊，請參閱 [Amazon ECS 任務中繼資料端點第 4 版](task-metadata-endpoint-v4.md)。如需有關使用 Fargate 的詳細資訊，請參閱 [Fargate 上任務的 Amazon ECS 任務中繼資料端點第 4 版](task-metadata-endpoint-v4-fargate.md)。
+ 外部執行個體不支援使用 Amazon EFS 磁碟區或指定 `EFSVolumeConfiguration`。
+ 執行於 Amazon ECS 受管執行個體上的任務，支援使用 Amazon EFS 磁碟區。
+ 建議您將代理程式組態檔案中的 `ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION` 參數，設定為小於預設值 (約 1 小時) 的值。此變更有助於防止 EFS 掛載憑證過期，並允許清除未在使用中的掛載。如需詳細資訊，請參閱 [Amazon ECS 容器代理程式組態](ecs-agent-config.md)。

## 使用 Amazon EFS 存取點
<a name="efs-volume-accesspoints"></a>

Amazon EFS 存取點是應用程式特定的 EFS 檔案系統進入點，以管理應用程式存取共用資料集。如需有關 Amazon EFS 存取點及如何控制對它們的存取的詳細資訊，請參閱《Amazon Elastic File System 使用者指南》中的[使用 Amazon EFS 存取點](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html)。

存取點可以針對透過存取點發出的所有檔案系統請求，強制執行使用者身分 (包括使用者的 POSIX 群組)。存取點也可以針對檔案系統強制使用不同的根目錄。如此一來，用戶端只能存取指定目錄或其子目錄中的資料。

**注意**  
建立 EFS 存取點時，您可以在檔案系統上指定要做為根目錄的路徑。在 Amazon ECS 任務定義中使用存取點 ID 參考 EFS 檔案系統時，必須忽略根目錄或將其設定為 `/`，這會強制執行 EFS 存取點上設定的路徑。

您可以使用 Amazon ECS 任務 IAM 角色，以強制執行特定應用程式使用特定存取點。透過結合 IAM 政策與存取點，您可以為應用程式提供特定資料集的安全存取。如需如何使用任務 IAM 角色的詳細資訊，請參閱[Amazon ECS 任務 IAM 角色](task-iam-roles.md)。