・概要
AWSのElasticIPとは、EC2サーバに固定のグローバルアドレスを取り付けるサービスです。このサービスですが、取得していたIPアドレスを一度解放すると、無条件では元に戻すことはできません。
もし誤ってIPアドレスを解放した場合には大変な事態になることもありえます。なので、今回は解放してしまったElasticIPを復元する方法を解説します。
・条件付きで復元できる
復元できるといっても、いつでも100%戻せるわけではありません。以下条件を考慮する必要があります。
- Elastic IP アドレスが別の AWS アカウントに割り当てられている場合や Elastic IP アドレスの制限を超過する場合は、Elastic IP アドレスを復元できない
- Elastic IP アドレスに関連付けられたタグを復旧することはできない
- Elastic IP アドレスは、Amazon EC2 API コンソールまたはコマンドラインツールでのみ復元できる
・実際に復元をしてみる
早速復元を試してみましょう。今回はAWS-CLIを使って作業します。
やることは、一度ElasticIPをわざと解放・解放したElasticIPを元に戻します。
対象とするのは以下IPアドレスとします。

※AWS-CLIをインストールしてない場合、以下を参照
以下の通りコマンドを実行します。
※コマンド実行にあたり、最低限以下ポリシーが必要です
・ec2:AllocateAddress: Elastic IP アドレスを割り当て
・ec2:ReleaseAddress: Elastic IP アドレスを解放
# ElasticIPを解放(eipalloc...は割り当てIDです)
$ aws ec2 release-address --allocation-id eipalloc-00208d4dfc8f597da
# ElasticIPの解放を確認
$ aws ec2 describe-addresses
{
"Addresses": []
}
コンソール画面からも解放されたことを確認できました。

次に、解放したIPアドレスを元に戻します。以下の通りコマンドを実行しましょう。
# ElasticIPの復元
$ aws ec2 allocate-address --domain vpc --address 3.215.105.58
{
"PublicIp": "35.75.89.152",
"AllocationId": "eipalloc-0cadda9e8bcf48884",
"PublicIpv4Pool": "amazon",
"NetworkBorderGroup": "ap-northeast-1",
"Domain": "vpc"
}
コンソール画面上でも復帰が確認できました。割り当てIDが変わってますね。

・注意点
上記の通りElasticIPを復帰させることはできましたが注意点があります。それは解放後時間が経ちすぎていると復帰できないということです。早ければ1時間もしないうちに復帰できなくなるかもしれません。
解放したIPアドレスを他の人が割り当ててしまえばどうしようもないので。
「やってしまった!」と思ったら即座に対応する必要がありそうですね。