注目の記事

削除したElastic IPを復旧可能になりました!

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

大栗です。

AWSは作成や削除が柔軟にできるので必要な時にリソースを作成すれば良いことが利点です。しかし、一旦削除してしまうと同じものを作成できず取り返しがつかないリソースもあります。その代表がElastic IPでした。そのElastic IPを復旧できるようになりました!

制限

Elastic IPの復旧には以下の制限があります。

  • EC2-VPC用に割り当てたか、EC2-ClassicからEC2-VPCへ移行したElastic IPのみが復旧できます。
  • Elastic IPが別のAWSアカウントに割り当てられている場合やIPアドレスの上限を超えた場合は復旧できません。

試す

早速試してみます。

Elastic IPの復旧はAWS CLIの1.11.133以降が必要なので最新にアップデートしておきましょう。以後はCLIで操作します。

まず、EC2-VPCのElastic IPを取得します。

$ aws ec2 allocate-address --domain vpc
{
    "PublicIp": "203.0.113.76",
    "Domain": "vpc",
    "AllocationId": "eipalloc-a1b2c3d4"
}
$ aws ec2 describe-addresses
{
    "Addresses": [
        {
            "PublicIp": "203.0.113.76",
            "Domain": "vpc",
            "AllocationId": "eipalloc-a1b2c3d4"
        }
    ]
}

一旦Elastic IPを削除します。EC2-VPCのElastic IPなのでAllocation IDを指定します。

$ aws ec2 release-address --allocation-id eipalloc-a1b2c3d4
$ aws ec2 describe-addresses
{
    "Addresses": []
}

削除したElastic IPを復旧します。復旧するElastic IPのIPアドレスを指定します。なお、復旧したElastic IPのAllocation IDが変わっている事が分かります。

$ aws ec2 allocate-address --address 203.0.113.76 --domain vpc
{
    "PublicIp": "203.0.113.76",
    "Domain": "vpc",
    "AllocationId": "eipalloc-5e6f7g8h"
}
$ aws ec2 describe-addresses
{
    "Addresses": [
        {
            "PublicIp": "203.0.113.76",
            "Domain": "vpc",
            "AllocationId": "eipalloc-5e6f7g8h"
        }
    ]
}

さいごに

EC2の場合は削除保護がありましたが、Elastic IPには削除保護がないためオペミスによる削除をしてしまった時に大変だった覚えがあります。削除保護ではありませんが、誤って削除してしまった時に復旧できるようになり大変助かります。

昨夜はAWS Summit 2017 New Yorkで各種アップデートが発表されていましたが、個人的にはどこにもリリース情報がない(Release NoteやWhat’s Newにも記載がない)Elastic IPの復旧が一番の衝撃でした。