t3が出てきたのが2018とかだったので、この手の変更はよくあるのではあるのかと思います。
サイズの変更とかだとサクッといきますが、世代だとそうはいきませんでした。
ENAの拡張ネットワーキング機能を有効化させてあげる必要があるため、以下変更手順です。
1、ENAモジュールのインストール確認
ENAモジュールが有効であることを確認します。
$ modinfo ena
一覧ぽいものが返ってくればOKです。
※もし返ってこなかった場合、導入が必要です
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/enhanced-networking-ena.html#test-enhanced-networking-ena
2、ENAモジュールがインターフェースで使用されていることの確認
ENAモジュールがインターフェースで使用されていることを確認します。
$ ethtool -i eth0
driver: ena になっていればOKですが、おそらくdriver: vifになってます。
なのでこいつを変更してあげます。
3、grubの設定値変更
まずは起動時にOSを動かしているgrubの設定をかきかえます。
grubまわりは繊細なので操作注意です。
以下viで操作してますが、もちろんsedコマンドでもOKです。
①grubの設定ファイルを開きます
$ vi /etc/default/grub
②GRUB_CMDLINE_LINUXの行末に net.ifnames=0 を追記します。
GRUB_CMDLINE_LINUX="XXX XXX XXX net.ifnames=0
③設定ファイルを再ビルドします。
$ grub2-mkconfig -o /boot/grub2/grub.cfg
4、ENA有効化
①該当インスタンスの停止
ENAの有効化はインスタンスを停止して実施するので、
インスタンスを停止します。
以下AWS CLIを使います。
②有効化のコマンドが使えることを確認します。
aws ec2 modify-instance-attribute help
オプションに --ena-support が表示されることを確認する。
※表示されてない場合、awscliのバージョンをあげる必要があると思われます。
③設定値の確認
aws ec2 describe-instances --instance-ids instance_id --query "Reservations[].Instances[].EnaSupport"
falseが表示されるはずです。ここをtrueに変更します。
※デフォルトのプロファイルが設定されてない場合は、
適宜 --profile プロファイル名 で指定してあげてください。
④falseに変更
aws ec2 modify-instance-attribute --instance-id instance_id --ena-support
⑤インスタンスタイプ変更(1)
インスタンスタイプ変更→起動
ここでインスタンスタイプ変更や!ってなりますが、私の場合、変更できませんでした
まずは試してみてどうなるか確認いただければと思います。
5、yumアップデート
4の⑤がNGだった場合、
ENAを含む最新のカーネルとカーネルモジュールでインスタンスを更新する必要があるようです。
起動できなかった場合は元のt2に戻して起動してあげます。
①yumアップデート
$ yum update
yumアップデートしなきゃいけないの?って感じですが、
これできない環境もあるだろうし、そういうときに困りそうです。
カーネルのところだけうまく更新してくれればいいのですが、
AWSドキュメント上はyum updateを推奨しているようです。
外部と通信できる環境だとしても、安易に実行しないように気を付けてください!!
②インスタンスタイプ変更
インスタンス停止→インスタンスタイプ変更→インスタンス起動
③インターフェースの再確認
項目2のコマンドで変更されていることを確認します。
$ ethtool -i eth0
driver: ena になっていればOKです!!
以上です!!ヘルプしてくれたチームメンバに感謝
※参考
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/enhanced-networking-ena.html