Terraform is forcing replacement EBS resource

Hmm… I came across this post. This workaround solved this problem for me:

lifecycle {
    ignore_changes = [ availability_zone ]
  }

The instance will never change its AZ, so it works for me.