[AWS]パブリックIPが付与されたEC2が存在するVPCからインターネットゲートウェイをデタッチする方法

EC2にパブリックIPが付与されている場合のVPCからインターネットゲートウェイをデタッチする方法です。
2021.07.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

VPC に パブリック IP が付与された EC2 が存在している状況で、インターネットゲートウェイをデタッチすると、以下のエラーが発生しました。

Network vpc-XXXXXXXX has some mapped public address(es). Please unmap those public address(es) before detaching the gateway.

インターネットゲートウェイをデタッチするには、どのようにすればよいでしょうか。

対応方法

インターネットゲートウェイを VPC からデタッチするには 、 VPC 内に存在する EC2 から EIP 又は パブリック IP アドレスを削除する必要があります。

VPC に関連付けられたパブリック IP アドレスまたは Elastic IP アドレスを持つリソースがある場合、インターネットゲートウェイをデタッチすることはできません。

引用元

また、EIP についてはデタッチすることが可能ですが、パブリック IP については手動でデタッチ操作できません。

起動後に、インスタンスからパブリック IP アドレスの割り当てを手動で解除することはできません。

引用元

しかしながら、 EC2 を停止することで、パブリック IP は開放されます。そのため、パブリック IP が付与されている EC2 を一時的に停止することで、インターネットゲートウェイをデタッチできます

インスタンスのパブリック IP アドレスが停止、休止または終了すると、インスタンスのパブリック IP アドレスが解放されます

引用元

EC2 を停止、インターネットゲートウェイをデタッチ、再度 EC2 を起動した場合、EC2 にはパブリック IP が付与されなくなります。