こんにちは!技術4課のイーゴリです。
本件の記事では、新規EC2に既存のプライベートIPアドレス及びMACアドレスを引き継ぐ方法をご紹介させて頂きます。
下記のパターンの場合、既存のENIを移行する必要があるため、下記に手順を記載します。
- 新規EC2に既存のEC2のプライベートIPアドレス及びMACアドレスを引き継ぎたい
- EC2を再構築する時に同じプライベートIPアドレス及びMACアドレスが必要
考慮事項
- デフォルトの動作だと、既存のEC2のENIがEC2と一緒に自動的に削除されますので、ご注意ください。
- ENIを削除してしまうと、本件の記事の方法でMACアドレスを引き継ぐことができませんので、ご注意ください。
- 対象サブネットCIDR外のIPアドレスの指定は不可となりますので、ご注意ください。
- 同じMACアドレスが必要ない場合、既存のENIの移行が必要ないため、下記の画像の通り、EC2構築時に、手動でプライベートIPを指定すれば充分です。
事前確認
既存EC2のIP及びMACアドレス、Instance ID、ENI IDの情報を確認します(Amazon Linuxの場合)。
- IP及びMACアドレスの情報取得
[ec2-user@ip-10-123-10-56 ~]$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000 link/ether 06:26:4d:e1:69:61 brd ff:ff:ff:ff:ff:ff inet 10.123.10.56/24 brd 10.123.10.255 scope global dynamic eth0 valid_lft 3135sec preferred_lft 3135sec inet6 fe80::426:4dff:fee1:6961/64 scope link valid_lft forever preferred_lft forever
- Instance ID情報取得
[ec2-user@ip-10-123-10-56 ~]$ curl http://169.254.169.254/latest/meta-data/instance-id i-06c9b143be3819772
- ENI ID情報取得
[ec2-user@ip-10-123-10-56 ~]$ curl http://169.254.169.254/latest/meta-data/network/interfaces/macs/"$(curl http://169.254.169.254/latest/meta-data/network/interfaces/macs)"interface-id % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 18 100 18 0 0 2923 0 --:--:-- --:--:-- --:--:-- 3000 eni-0aeabb99c8222f665
ENIの削除時の動作を変更
[サービス]>[EC2]>[インスタンス]>対象EC2>[ネットワーキング]タブをクリックします。
対象ENI(上記の確認結果とあっているENI→eni-0aeabb99c8222f665)を選択し、[アクション]>[終了時の動作を変更]をクリックします。
[終了時の動作を変更]の画面で、[インスタンスの削除時に削除]の[有効化]のチェックを外し、[保存]をクリックします。
既存のEC2を削除
既存のEC2を削除します。
新規EC2に既存のENIを設定
[サービス]>[EC2]>[インスタンスを起動]をクリックします。
[3. インスタンスの設定]の画面で、[ネットワークインターフェイス]で残したENIを選択します。
EC2を作成します。
結果確認
- IP及びMACアドレスの情報取得
[ec2-user@ip-10-123-10-56 ~]$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000 link/ether 06:26:4d:e1:69:61 brd ff:ff:ff:ff:ff:ff inet 10.123.10.56/24 brd 10.123.10.255 scope global dynamic eth0 valid_lft 3330sec preferred_lft 3330sec inet6 fe80::426:4dff:fee1:6961/64 scope link valid_lft forever preferred_lft forever [ec2-user@ip-10-123-10-56 ~]$
IP及びMACアドレスは変わらないです。
link/ether 06:26:4d:e1:69:61 brd ff:ff:ff:ff:ff:ff inet 10.123.10.56/24 brd 10.123.10.255 scope global dynamic eth0
- Instance ID情報取得
[ec2-user@ip-10-123-10-56 ~]$ curl http://169.254.169.254/latest/meta-data/instance-id i-06aa42411019ba152
新しいInstance IDになりました。
- ENI ID情報取得
[ec2-user@ip-10-123-10-56 ~]$ curl http://169.254.169.254/latest/meta-data/network/interfaces/macs/"$(curl http://169.254.169.254/latest/meta-data/network/interfaces/macs)"interface-id % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 18 100 18 0 0 26124 0 --:--:-- --:--:-- --:--:-- 18000 eni-0aeabb99c8222f665
ENI IDは変わらないです。
上記のパラメーターを確認しましたところ、想定通りENI切り替えが完了しました。
以上、御一読ありがとうございました。
本田 イーゴリ (記事一覧)
カスタマーサクセス部
・2024 Japan AWS Top Engineers (Security)
・AWS SAP, DOP, SCS, DBS, SAA, DVA, CLF
・Azure AZ-900
・EC-Council CCSE
趣味:日本国内旅行(47都道府県制覇)・ドライブ・音楽