Provides an AWS EBS Volume Attachment as a top level resource, to attach and detach volumes from AWS Instances.

~> NOTE on EBS block devices: If you use ebs_block_device on an aws_instance, Terraform will assume management over the full set of non-root EBS block devices for the instance, and treats additional block devices as drift. For this reason, ebs_block_device cannot be mixed with external aws_ebs_volume + aws_ebs_volume_attachment resources for a given instance.

Example Usage

resource "aws_volume_attachment" "ebs_att" {
  device_name = "/dev/sdh"
  volume_id = "${}"
  instance_id = "${}"

resource "aws_instance" "web" {
  ami = "ami-21f78e11"
  availability_zone = "us-west-2a"
  instance_type = "t1.micro"
  tags {
    Name = "HelloWorld"

resource "aws_ebs_volume" "example" {
  availability_zone = "us-west-2a"
  size = 1

Argument Reference

The following arguments are supported:

  • device_name - (Required) The device name to expose to the instance (for example, /dev/sdh or xvdh)
  • instance_id - (Required) ID of the Instance to attach to
  • volume_id - (Required) ID of the Volume to be attached
  • force_detach - (Optional, Boolean) Set to true if you want to force the volume to detach. Useful if previous attempts failed, but use this option only as a last resort, as this can result in data loss. See Detaching an Amazon EBS Volume from an Instance for more information.

Attributes Reference

  • device_name - The device name exposed to the instance
  • instance_id - ID of the Instance
  • volume_id - ID of the Volume