簡単なようでハマったのでメモ。
前提
ローカル環境にaws-cliインストール済み。
ubuntu18環境。osアップデート済み。
以下はt2.smallからt3.smallに移行する例。
ENAの状態確認
$ ethtool -i eth0
driver: vif
version:
firmware-version:
expansion-rom-version:
bus-info: vif-0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
driver: vifだと無効。driver: enaだと有効。
$ aws ec2 describe-instances --instance-ids <instance-id> --query "Reservations[].Instances[].EnaSupport"
Trueが返ってくれば有効。
fstab設定確認
fstabでルートデバイス以外のボリュームをマウントしている場合。
t3にするとデバイスファイル名が変わるので、fstabで指定していると、マウントに失敗してOSのbootで失敗する。
fstabにnofailが入っていなければ入れておく。
text:/etc/fstab
/dev/xvdf /data xfs defaults,nofail 0 0
ENA有効化
有効化はaws-cliからのみ可能。
インスタンス停止
$ aws ec2 stop-instances --instance-ids <instance-id>
ENA有効化
$ aws ec2 modify-instance-attribute --instance-id <instance-id> --ena-support
EBS最適化
$ aws ec2 modify-instance-attribute --instance-id <instance-id> --ebs-optimized
インスタンスタイプ変更
$ aws ec2 modify-instance-attribute --instance-id <instance-id> --instance-type t3.small
インスタンス起動
$ aws ec2 start-instances --instance-ids <instance-id>
T2/T3 無制限設定は任意。(t3はデフォルトON)
$ aws ec2 modify-instance-credit-specification --instance-credit-specification "InstanceId=<instance-id>,CpuCredits=unlimited"
fstab設定
デバイスファイル名を確認。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 17.9M 1 loop /snap/amazon-ssm-agent/1068
loop1 7:1 0 87.9M 1 loop /snap/core/5328
loop2 7:2 0 18M 1 loop /snap/amazon-ssm-agent/930
loop3 7:3 0 91M 1 loop /snap/core/6405
loop4 7:4 0 12.7M 1 loop /snap/amazon-ssm-agent/495
nvme0n1 259:0 0 30G 0 disk
nvme1n1 259:1 0 8G 0 disk
└─nvme1n1p1 259:2 0 8G 0 part /
元々xvdfであったのがnvme0n1に変わっていた。
デバイスのUUIDを確認。
$ blkid /dev/nvme0n1
/dev/nvme0n1: UUID="xxxxx" TYPE="xfs"
fstabを変更する。
デバイスファイル名は固定ではない。ここは要注意。
なのでUUIDを指定する。
UUID="xxxxx" /data xfs defaults,nofail 0 0
インスタンス停止→起動で、マウントされて正常に起動される。
ENAが有効になっている。
$ ethtool -i eth0
driver: ena
version: 2.0.2K
firmware-version:
expansion-rom-version:
bus-info: 0000:00:05.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
参考
https://qiita.com/m1104m/items/cecaa43c17ab54ecea67
https://blog.adachin.me/archives/7736
https://ryuzoji.com/archives/1041
https://qiita.com/isobecky74/items/4dddb4407ac7e5f2c45a