最初に
割と新しいインスタンスはただ単にインスタンスタイプを変えるだけで大丈夫だと思うのですが、古いとENAに対応していないということがあり得ます。
今回変更したかったのはまさにそういうものでした。
OSはCentOS7系でしたが、若干古かったのでENA対応していませんでした。
なので、ENAの対応から始まります。
ENAについては
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/enhanced-networking-ena.html
ENA対応確認
modinfo ena
未対応の場合
modinfo: ERROR: Module ena not found.
が出ると思われる
update
CentOSならyumでアップデートしてENA対応できるので
sudo yum update
今回古いインスタンスだからかupdateで失敗しました。そういう場合はrepoの情報のmirrorをコメントアウト、baseurlを有効にすればいけるはず。
インスタンス再起動
aws ec2 reboot-instances --instance-ids {InstanceID}
ENA対応確認
modinfo ena
さっきとは違って色々表示されるはず。
ENA有効化
ENAを有効化するためにインスタンスを止める必要があります。
# インスタンスを停止
aws ec2 stop-instances --instance-ids {InstanceID}
# ENAが有効か確認
aws ec2 describe-instances --instance-ids {InstanceID} --query "Reservations[].Instances[].EnaSupport"
現時点では有効化されていないので、多分[]が返ってきます。
# ENA有効化
aws ec2 modify-instance-attribute --instance-id {InstanceID} --ena-support
# ENAが有効か確認
aws ec2 describe-instances --instance-ids {InstanceID} --query "Reservations[].Instances[].EnaSupport"
ここの確認で
[
true
]
が返ってきたらOK
t3に変更
最後にt3に変更します
# 変更して
aws ec2 modify-instance-attribute --instance-id {InstanceID} --attribute instanceType --value t3.{InstanceSize}
# 起動
aws ec2 start-instances --instance-ids {InstanceID}
無事に変更できたようです。