EC2 インスタンスの復元時にプライベートIPアドレスを保持する方法を教えてください

EC2 インスタンスの復元時に元のプライベートIPアドレスを保持する方法を、ユースケース別にまとめました。
2023.06.26

困っていた内容

EC2 インスタンスをバックアップ(AMI)から復元すると新しいインスタンスが起動しますが、元のインスタンスと同じプライベートIPアドレスを割り当てたい要件があります。 実現する方法を教えてください。

どう対応すればいいの?

前提として、インスタンスの起動時に割り当てられる最初のプライベートIPアドレス(プライマリプライベートIPアドレス)は起動後に変更することができず、他のインスタンスに移行することもできません。(参考 AWS ドキュメント

そのため、以下いずれかの方法を検討する必要があります。

1. 元のインスタンスのルートボリュームを置き換える
2. 元のインスタンスを削除し、新インスタンスへネットワークインターフェース(ENI)を引き継ぐ
3. 元のインスタンスにセカンダリIPアドレスを付与し、新インスタンスの復元時に移行する

それぞれの方法、およびユースケースを以下にご紹介します。

1. 元のインスタンスのルートボリュームを置き換える

取得済みのAMIやスナップショットを利用して、元インスタンスのルートボリュームを入れ替えることが可能です。この方法だと新たにインスタンスを起動することなく、バックアップから復元ができます。 手順は下記ドキュメント[1]をご参考ください。

[1] ルートボリュームを置き換える - Amazon Elastic Compute Cloud

ユースケース:
この方法だと元のインスタンスのプライベートIPアドレスをはじめとした各種設定をそのまま保持できるため、最も手軽かと思います。
ただし復元時にインスタンスの設定変更(インスタンスタイプやキーペア等)を行うことはできないため、そういった要件がある場合は後述の方法を検討しましょう。

2. 元のインスタンスを削除し、新インスタンスへネットワークインターフェース(ENI)を引き継ぐ

ネットワークインターフェース(ENI)のみを残して元のインスタンスを削除し、新インスタンスの起動時に ENI を引き継ぐ方法です。
手順は下記の記事[2]をご参考ください。

[2] EC2再作成時にプライベートIPアドレスとMACアドレスを引き継いでみる | DevelopersIO

ユースケース:
この方法だと元インスタンスのネットワーク設定のみを新インスタンスに引き継げるので、ネットワーク以外の設定(キーペアやインスタンスタイプ等)を変更しつつバックアップから復元したい場合はこの方法がよいでしょう。
ただし元のインスタンスを削除する必要があるため、元インスタンスを残したい場合は後述の方法を検討しましょう。

3. 元のインスタンスにセカンダリIPアドレスを付与し、新インスタンスの復元時に移行する

前述の通り、元インスタンスのプライマリプライベートIPアドレスは移行できませんが、追加のIPアドレス(セカンダリプライベートIPアドレス)は移行することが可能なため、予め割り当てておいた追加のIPアドレスを新インスタンスに移行する方法です。
詳しい手順は下記ドキュメント[3]をご参考ください。

[3] セカンダリプライベート IPv4 アドレスの割り当て - Amazon Elastic Compute Cloud

ユースケース:
この方法だと元のインスタンスを削除せずに保持できるため、障害などの調査用に元インスタンスを残しつつ、復元した新インスタンスにプライベートIPアドレスを移行したい、といったような場合に適しています。


以上、弊社のヘルプデスクへもよくお問い合わせをいただく「EC2 インスタンスの復元時にプライベートIPアドレスを保持する方法」をまとめてみました。

この情報がどなたかのお役に立てば幸いです!

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。