How can I mount an EFS share to AWS Fargate?

You can do this since April 2020! It's a little tricky but works.

The biggest gotcha I ran into was that you need to set the "Platform version" to 1.4.0 - it will default to "Latest" which is 1.3.0.

In your Container Definitions you need to define a volume and a mountpoint where you want the EFS share mounted inside the container:

Volume:

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

Mount volume in container:

 "mountPoints": [
         {
          "readOnly": null,
          "containerPath": "/opt/your-app",
          "sourceVolume": "efs volume name"
          }

These posts helped me although they're missing a few details:

Tutorial: Using Amazon EFS file systems with Amazon ECS

EFSVolumeConfiguration


EFS support for Fargate is now available!

https://aws.amazon.com/about-aws/whats-new/2020/04/amazon-ecs-aws-fargate-support-amazon-efs-filesystems-generally-available/