Manages a single EBS volume.
resource "aws_ebs_volume" "example" {
availability_zone = "us-west-2a"
size = 40
tags = {
Name = "HelloWorld"
}
}
This resource supports the following arguments:
availability_zone
- (Required) The AZ where the EBS volume will exist.encrypted
- (Optional) If true, the disk will be encrypted.final_snapshot
- (Optional) If true, snapshot will be created before volume deletion. Any tags on the volume will be migrated to the snapshot. By default set to falseiops
- (Optional) The amount of IOPS to provision for the disk. Only valid for type
of io1
, io2
or gp3
.multi_attach_enabled
- (Optional) Specifies whether to enable Amazon EBS Multi-Attach. Multi-Attach is supported on io1
and io2
volumes.size
- (Optional) The size of the drive in GiBs.snapshot_id
(Optional) A snapshot to base the EBS volume off of.outpost_arn
- (Optional) The Amazon Resource Name (ARN) of the Outpost.type
- (Optional) The type of EBS volume. Can be standard
, gp2
, gp3
, io1
, io2
, sc1
or st1
(Default: gp2
).kms_key_id
- (Optional) The ARN for the KMS encryption key. When specifying kms_key_id
, encrypted
needs to be set to true. Note: Terraform must be running with credentials which have the GenerateDataKeyWithoutPlaintext
permission on the specified KMS key as required by the EBS KMS CMK volume provisioning process to prevent a volume from being created and almost immediately deleted.tags
- (Optional) A map of tags to assign to the resource. If configured with a provider default_tags
configuration block present, tags with matching keys will overwrite those defined at the provider-level.throughput
- (Optional) The throughput that the volume supports, in MiB/s. Only valid for type
of gp3
.This resource exports the following attributes in addition to the arguments above:
id
- The volume ID (e.g., vol-59fcb34e).arn
- The volume ARN (e.g., arn:aws:ec2:us-east-1:0123456789012:volume/vol-59fcb34e).tags_all
- A map of tags assigned to the resource, including those inherited from the provider default_tags
configuration block.create
- (Default 5m
)update
- (Default 5m
)delete
- (Default 5m
)In Terraform v1.5.0 and later, use an import
block to import EBS Volumes using the id
. For example:
import {
to = aws_ebs_volume.id
id = "vol-049df61146c4d7901"
}
Using terraform import
, import EBS Volumes using the id
. For example:
% terraform import aws_ebs_volume.id vol-049df61146c4d7901