まえがき

こんにちは。
クラウドインテグレーション事業部 MSPセクションに所属している坂田です。

Elastic IPが解放できずに困っている人向けに、新しめの情報でまとまってる記事があればいいなと思って書いてみました。

特に後述する【3】のエラーに苦しめられてる人、よくぞこの記事を見つけてくれました。
ほぼあなたのために書いています。

大前提

そのElastic IPは本当にリリース(解放)して良いものか、改めて確認しましょう!
実は必要だったのに消しちゃった という場合、同じIPアドレスで復元するには下記条件をクリアしなければいけません。[1]

  • Elastic IP アドレスが別の AWS アカウントに割り当てられている場合や Elastic IP アドレスの制限を超過する場合は、Elastic IP アドレスを復元できません。
  • Elastic IP アドレスに関連付けられたタグを復旧することはできません。
  • Elastic IP アドレスは、Amazon EC2 API コンソールまたはコマンドラインツールでのみ復元できます。

各種確認

【1】 該当のElastic IPが各種リソースと関連付いていないか確認する

↑こちらのように、プライベート IP アドレス / アソシエーション ID に情報が表示されている場合は何かしらのリソースと関連付いているため、解放ができない状態です。

↑解放しようとしても、こんな風に怒られます。

EC2はもちろんの事、NATゲートウェイ, NLBと紐づいている場合も関連付けを解除するまでは解放できませんので関連付けを解除してから解放しましょう。

【2】 逆引きDNS(rDNS)が登録されていないか確認する

逆引きDNS設定がされている場合、解放はできません。
設定が残ってしまっているのであれば、逆引きDNS設定を解除する必要があります。

逆引き設定がされているか確認する方法

設定されている場合

~$ dig -x xx.xxx.xxx.xxx +short
example.com.

解除できている場合

~$ dig -x xx.xxx.xxx.xxx +short
ec2-xx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com.

逆引きDNS設定の解除を行う際、昔はAWSへの解除申請が必須となっていましたが
今は下記記事の[AWSコンソールでrDNS解除をやってみる]の手順を用いて、セルフサービスで逆引きDNS設定を解除することができます。

ElasticIPの逆引き(rDNS)設定を解除する際の注意点

https://iret.media/62908

【3】 下記のエラー文が出て解放することができない場合

xx.xxx.xxx.xxx: The address with allocation id [eipalloc-xxxxxxxxxxxxx] cannot be released because it is locked to your account. Please contact AWS Support to unlock it.

既に【1】,【2】の確認ポイントを満たしているのに、↑こちらのエラー文が出てしまい解放できない場合は
該当のElastic IPがアカウントにロックされてしまっているため、この事象が発生していると考えられます。

当記事を執筆している2023年6月現在、こちらの問題は
ロックを管理している海外部署に向けて、ロック解除申請を送ることで解決できます。

下記手順を参考に、ロックの解除申請を行なってみてください。
AWS社内の担当部署の移管等で、今後解決法が変わる可能性があります。

①該当のエラーが発生するAWSアカウントのマネジメントコンソールにログインした状態にしておく

②Eメール送信制限解除申請フォームを開く

https://support.console.aws.amazon.com/support/contacts#/rdns-limits

③下記のように情報を入力し、送信する

④ロックが解除された旨の英文メールがAWSより届くので、該当Elastic IPを解放する

※稀にロック解除のリクエストではなく、Eメール送信制限解除のリクエストとして処理されてしまう事があります。
(返事も明らかにロック解除の文面ではないものが来ます)
その際は、再度③の通りにロック解除のリクエストを行いましょう。

まとめ

以上、なるべく2023年現在の新しい情報のみでまとめてみました。
この記事を参照いただき、お役に立てれば幸いです!

[1]Elastic IP アドレスの復元
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html#using-eip-recovering