如何将 EFS 共享挂载到 AWS Fargate?

Squ*_*rel 8 amazon-efs aws-fargate

我有一个用于存储容器日志的 AWS EFS 共享。

我想将此 nfs 共享 (aws efs) 挂载到 AWS Fargate。是否可以?

任何支持文档链接将不胜感激。

The*_*ins 8

自 2020 年 4 月起,您就可以这样做了!这有点棘手,但有效。

我遇到的最大问题是您需要将“平台版本”设置为 1.4.0 - 它将默认为“最新”,即 1.3.0。

在您的容器定义中,您需要定义一个和一个安装,您希望 EFS 共享安装在容器内:

体积:

     "volumes": [
        {
          "efsVolumeConfiguration": {
            "transitEncryptionPort": null,
            "fileSystemId": "fs-xxxxxxx",
            "authorizationConfig": {
              "iam": "DISABLED",
              "accessPointId": "fsap-xxxxxxxx"
            },
            "transitEncryption": "ENABLED",
            "rootDirectory": "/"
          },
          "name": "efs volume name",
          "host": null,
          "dockerVolumeConfiguration": null
        }
      ]
Run Code Online (Sandbox Code Playgroud)

在容器中安装卷:

 "mountPoints": [
         {
          "readOnly": null,
          "containerPath": "/opt/your-app",
          "sourceVolume": "efs volume name"
          }
Run Code Online (Sandbox Code Playgroud)

这些帖子对我有所帮助,尽管它们缺少一些细节:

教程:将 Amazon EFS 文件系统与 Amazon ECS 结合使用

EFS 卷配置

  • 谢谢你x 1000。我浪费了很多时间来解决这个问题,只是为了意识到“最新”实际上不起作用。真是一团糟 (3认同)

小智 1

编辑:自2020 年 4 月以来,此答案不准确。Fargate 1.4.0 之前都是这种情况。如果您使用的是 Fargate 的早期版本,这仍然相关,否则请参阅更新的答案。

遗憾的是,目前无法将持久存储与 AWS Fargate 结合使用,但是可以使用新推出的 AWS 容器服务公共路线图 [1] [2] 来跟踪此功能的进展情况

您的用例似乎建议使用日志。您是否考虑过使用 AWSLogs 驱动程序 [3] 并将应用程序日志传送到 CloudWatch Logs?

[1] https://github.com/aws/containers-roadmap/projects/1

[2] https://github.com/aws/containers-roadmap/issues/53

[3] https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html