# BlockDeviceVolume

Describes a block device mapping for an EC2 instance or Auto Scaling group.

- Source: [`aws-autoscaling/lib/volume.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-autoscaling/lib/volume.ts#L139)

## Example

```ts
declare const vpc: ec2.Vpc;
declare const instanceType: ec2.InstanceType;
declare const machineImage: ec2.IMachineImage;

const autoScalingGroup = new autoscaling.AutoScalingGroup(this, 'ASG', {
  vpc,
  instanceType,
  machineImage,
  blockDevices: [
    {
        deviceName: 'gp3-volume',
        volume: autoscaling.BlockDeviceVolume.ebs(15, {
          volumeType: autoscaling.EbsDeviceVolumeType.GP3,
          throughput: 125,
        }),
      },
  ],
  // ...
});
```

## Properties

- `ebsDevice`: [EbsDeviceProps](/cdk/api/v2/docs/aws-cdk-lib.aws_autoscaling.EbsDeviceProps.html) — EBS device info.

- `virtualName`: string — Virtual device name.

## Methods

- `ebs(volumeSize: number, options?: EbsDeviceOptions): BlockDeviceVolume // chainable` (static) — Creates a new Elastic Block Storage device.

  **Parameters**

  - `volumeSize` — The volume size, in Gibibytes (GiB).
  - `options` — additional device options.

- `ebsFromSnapshot(snapshotId: string, options?: EbsDeviceSnapshotOptions): BlockDeviceVolume // chainable` (static) — Creates a new Elastic Block Storage device from an existing snapshot.

  **Parameters**

  - `snapshotId` — The snapshot ID of the volume to use.
  - `options` — additional device options.

- `ephemeral(volumeIndex: number): BlockDeviceVolume // chainable` (static) — Creates a virtual, ephemeral device.

  The name will be in the form ephemeral{volumeIndex}.

  **Parameters**

  - `volumeIndex` — the volume index.

- `noDevice(): BlockDeviceVolume // chainable` (static) — Suppresses a volume mapping.
