`storage` Map The Storage section lets you specify external EFS volumes for your containers and sidecars to mount. This allows you to access persistent storage across availability zones in a region for data processing or CMS workloads. For more detail, see the [storage](../developing/storage.en.md) page. You can also specify extensible ephemeral storage at the task level. storage.`ephemeral` Int Specify how much ephemeral task storage to provision in GiB. The default value and minimum is 20 GiB. The maximum size is 200 GiB. Sizes above 20 GiB incur additional charges. To create a shared filesystem context between an essential container and a sidecar, you can use an empty volume: ```yaml storage: ephemeral: 100 volumes: scratch: path: /var/data read_only: false sidecars: mySidecar: image: public.ecr.aws/my-image:latest mount_points: - source_volume: scratch path: /var/data read_only: false ``` This example will provision 100 GiB of storage to be shared between the sidecar and the task container. This can be useful for large datasets, or for using a sidecar to transfer data from EFS into task storage for workloads with high disk I/O requirements. storage.`readonly_fs` Boolean Specify true to give your container read-only access to its root file system. storage.`volumes` Map Specify the name and configuration of any EFS volumes you would like to attach. The `volumes` field is specified as a map of the form: ```yaml volumes: : path: "/etc/mountpath" efs: ... ``` storage.volumes.`` Map Specify the configuration of a volume. storage.volumes.``.`path` String Required. Specify the location in the container where you would like your volume to be mounted. Must be fewer than 242 characters and must consist only of the characters `a-zA-Z0-9.-_/`. storage.volumes.``.`read_only` Boolean Optional. Defaults to `true`. Defines whether the volume is read-only or not. If false, the container is granted `elasticfilesystem:ClientWrite` permissions to the filesystem and the volume is writable. storage.volumes.``.`efs` Boolean or Map Specify more detailed EFS configuration. If specified as a boolean, or using only the `uid` and `gid` subfields, creates a managed EFS filesystem and dedicated Access Point for this workload. ```yaml // Simple managed EFS efs: true // Managed EFS with custom POSIX info efs: uid: 10000 gid: 110000 ``` storage.volumes.``.efs.`id` String Required. The ID of the filesystem you would like to mount. storage.volumes.``.efs.`root_dir` String Optional. Defaults to `/`. Specify the location in the EFS filesystem you would like to use as the root of your volume. Must be fewer than 255 characters and must consist only of the characters `a-zA-Z0-9.-_/`. If using an access point, `root_dir` must be either empty or `/` and `auth.iam` must be `true`. storage.volumes.``.efs.`uid` Uint32 Optional. Must be specified with `gid`. Mutually exclusive with `root_dir`, `auth`, and `id`. The POSIX UID to use for the dedicated access point created for the managed EFS filesystem. storage.volumes.``.efs.`gid` Uint32 Optional. Must be specified with `uid`. Mutually exclusive with `root_dir`, `auth`, and `id`. The POSIX GID to use for the dedicated access point created for the managed EFS filesystem. storage.volumes.``.efs.`auth` Map Specify advanced authorization configuration for EFS. storage.volumes.``.efs.auth.`iam` Boolean Optional. Defaults to `true`. Whether or not to use IAM authorization to determine whether the volume is allowed to connect to EFS. storage.volumes.``.efs.auth.`access_point_id` String Optional. Defaults to `""`. The ID of the EFS access point to connect to. If using an access point, `root_dir` must be either empty or `/` and `auth.iam` must be `true`.