How to affect destroy ordering for aws_instance and aws_volume_attachment

Hello,

I am at the very beginning and so this could be a stupid questions. But I already try for the last two days around and didn’t found any solution why terraform try to detach an EBS-Volume before it try to destroy the instance.

At this moment my code looks like this:

resource "aws_instance" "ec2" {
  ami                                  = var.image_id
  instance_type                        = var.type
  key_name                             = "sshkey"
  security_groups                      = [ var.security_group_name ]
  instance_initiated_shutdown_behavior = "terminate"
  iam_instance_profile                 = aws_iam_instance_profile.backup_profile.name
  availability_zone                    = var.az
  depends_on                           = [aws_security_group_rule.ingress_rules, aws_security_group_rule.egress_rules]

  root_block_device {
    delete_on_termination = true
  }

provisioner "remote-exec" {
    inline     = ["sudo /usr/sbin/shutdown -h now"]
    when       = destroy
    on_failure = continue
    connection {
      type        = "ssh"
      host        = self.public_ip
      user        = "ec2-user"
      private_key = file("keys/sshkey_private.key")
      agent       = false
    }
  }

  # Make sure instance has had some time to power down before attempting volume detachment
  provisioner "local-exec" {
    command = "sleep 120"
    when    = destroy
  }
}

resource "aws_ebs_volume" "datavol" {
  availability_zone = var.az
  size              = var.datadisc_size
  tags = {
    Name = "Jenkins-Volume"
  }
}

resource "aws_volume_attachment" "ebs_att" {
  device_name = var.datadisc_device
  volume_id   = aws_ebs_volume.datavol.id
  instance_id = aws_instance.ec2.id
}

(without the security group defiitions)

and maybe I didn’t know something which I need to solve this riddle. I already try to definie aws_volume_attachment in the depends_on clausel of the aws_instance but then terraform gives me an circle error and I don’t get it why? Maybe because aws_volume_attachment is just a “meta” ressource?

I would very thanksful if someone here can give me an hint how I can reach the correct order to destroy all ressources.
best regards
Dan

Edit:
I use terraform 1.0.6