Apply lifecycle semantics to group of resources?

I’m trying to implement zero downtime updates as described here: Zero Downtime Updates with HashiCorp Terraform. Specifically, I have an EC2 instance with create_before_destroy = True and a health-check script. The problem is that the EC2 VM also depends on a aws_network_interface resource, and the second EC2 instance can’t use it while the first VM instance is still using it.

Because the local name of the resource can’t include variables, I don’t see how I can force a second aws_network_interface to be created for the second EC2 instance before the first one is torn down. Simply applying the same lifecycle arguments has no effect because Terraform sees no reason to replace the network interface at all.