Skip to content
v2.274.0

Volume Struct ​

A data volume used in a task definition.

For tasks that use a Docker volume, specify a DockerVolumeConfiguration. For tasks that use a bind mount host volume, specify a host and optional sourcePath.

For more information, see Using Data Volumes in Tasks.

Example ​

ts
declare const container: ecs.ContainerDefinition;
declare const cluster: ecs.Cluster;
declare const taskDefinition: ecs.TaskDefinition;

const volumeFromSnapshot = new ecs.ServiceManagedVolume(this, 'EBSVolume', {
  name: 'nginx-vol',
  managedEBSVolume: {
    snapShotId: 'snap-066877671789bd71b',
    volumeType: ec2.EbsDeviceVolumeType.GP3,
    fileSystemType: ecs.FileSystemType.XFS,
    // Specifies the Amazon EBS Provisioned Rate for Volume Initialization.
    // Valid range is between 100 and 300 MiB/s.
    volumeInitializationRate: Size.mebibytes(200),
  },
});

volumeFromSnapshot.mountIn(container, {
  containerPath: '/var/lib',
  readOnly: false,
});
taskDefinition.addVolume(volumeFromSnapshot);
const service = new ecs.FargateService(this, 'FargateService', {
  cluster,
  taskDefinition,
  minHealthyPercent: 100,
});

service.addVolume(volumeFromSnapshot);

Properties ​

configuredAtLaunchoptionalbooleanconfigured_at_launchoptionalboolconfiguredAtLaunchoptionalBooleanConfiguredAtLaunchoptionalboolConfiguredAtLaunchoptional*bool= false#
Indicates if the volume should be configured at launch.
dockerVolumeConfigurationoptionalDockerVolumeConfigurationdocker_volume_configurationoptionalDockerVolumeConfigurationdockerVolumeConfigurationoptionalDockerVolumeConfigurationDockerVolumeConfigurationoptionalDockerVolumeConfigurationDockerVolumeConfigurationoptionalDockerVolumeConfiguration#
This property is specified when you are using Docker volumes.

Docker volumes are only supported when you are using the EC2 launch type. Windows containers only support the use of the local driver. To use bind mounts, specify a host instead.

efsVolumeConfigurationoptionalEfsVolumeConfigurationefs_volume_configurationoptionalEfsVolumeConfigurationefsVolumeConfigurationoptionalEfsVolumeConfigurationEfsVolumeConfigurationoptionalEfsVolumeConfigurationEfsVolumeConfigurationoptionalEfsVolumeConfiguration#
This property is specified when you are using Amazon EFS.

Default: No Elastic FileSystem is setup

notes

When specifying Amazon EFS volumes in tasks using the Fargate launch type, Fargate creates a supervisor container that is responsible for managing the Amazon EFS volume. The supervisor container uses a small amount of the task's memory. The supervisor container is visible when querying the task metadata version 4 endpoint, but is not visible in CloudWatch Container Insights.

hostoptionalHosthostoptionalHosthostoptionalHostHostoptionalHostHostoptionalHost#
This property is specified when you are using bind mount host volumes.
notes

Bind mount host volumes are supported when you are using either the EC2 or Fargate launch types. The contents of the host parameter determine whether your bind mount host volume persists on the host container instance and where it is stored. If the host parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data is not guaranteed to persist after the containers associated with it stop running.

namestringnamestrnameStringNamestringName*stringrequired#
The name of the volume.

Up to 255 letters (uppercase and lowercase), numbers, and hyphens are allowed. This name is referenced in the sourceVolume parameter of container definition mountPoints.