By using AWS re:Post, you agree to the Terms of Use

CloudFormation deleting nlb did not release public IP


I deleted my C/f stack which included an NLB but that hasn't released the public IPs associated with each subnet. To be clear, the NLB instances have been deleted but their public IPs are still marked as in use. I'm now unable to detach , or delete them - as they are marked as being in use by another service - the NLB that has successfully been deleted.

None of the troubleshooting articles (which are primarily related to EIPs) offer any material resolution. Even logging into the console as root, I get the error that I do not have permissions.

Any thoughts on what I'm missing?

1 Answer

Hi There

This is happening because the EIP is associated with the managed network interface of the load balancer. It takes some time for the deleted NLB to release the network interface. You cant delete the EIP until the network interface is gone, and unfortunately CloudFormation doesnt have any knowledge of this.

You can do any of the following:

  • Dont use an Elastic IP and just let AWS assign a public IP to the NLB. Example:
    Type: 'AWS::ElasticLoadBalancingV2::LoadBalancer'
      Type: network
      IpAddressType: ipv4
      Scheme: internet-facing
      Subnets: !Ref Subnets
  • Perform a delete-stack operation again, after verifying that any network interfaces(belonging to network load balancer) are deleted by elbv2 service itself and association id is removed from EIP.
  • Use DeletionPolicy/UpdateReplacePolicy attributes with AWS::EC2::EIP resource and set value to Retain to achieve single step stack deletion. Note that you will still need to delete the EIP manually.
profile picture
answered 16 days ago
profile picture
reviewed 12 days ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions