2018.08.21 に T3インスタンスがリリースされました 。
T2インスタンスよりも費用対効果が高い 1 とのことで、早速 t2.microの Ubuntuインスタンスを t3.microに移行してみたので手順をまとめておきます。
設定変更してみる
まず、普通にコンソールからインスタンスタイプを変更してみます。
エラーになってしまいました。
Enhanced networking with the Elastic Network Adapter (ENA) is required for the 't3.micro' instance type. Ensure that your instance 'i-xxxxxxxx' is enabled for ENA.
対応手順
エラーメッセージの通りですが、T3シリーズでは Elastic Network Adapter(ENA)が有効になっている必要があるとのこと。手順は こちらにあったので、実行してみます。
まず現在の設定確認(Ubuntuでは場合によってモジュールのインストール)が必要なようなので、いったん t2.microに戻して再起動します...
拡張ネットワーキングが有効化されているかどうかのテストを実行(modinfo コマンドを使用)
$ modinfo ena
filename: /lib/modules/4.4.0-133-generic/kernel/drivers/net/ethernet/amazon/ena/ena.ko
version: 1.2.0k
license: GPL
description: Elastic Network Adapter (ENA)
author: Amazon.com, Inc. or its affiliates
srcversion: 7B924BDFCB1CD24561555AB
alias: pci:v00001D0Fd0000EC21sv*sd*bc*sc*i*
alias: pci:v00001D0Fd0000EC20sv*sd*bc*sc*i*
alias: pci:v00001D0Fd00001EC2sv*sd*bc*sc*i*
alias: pci:v00001D0Fd00000EC2sv*sd*bc*sc*i*
depends:
retpoline: Y
intree: Y
vermagic: 4.4.0-133-generic SMP mod_unload modversions retpoline
parm: debug:Debug level (0=none,...,16=all) (int)
インストールされていない場合はエラーが返ってくるとのことなので、インストールされています。
インスタンス属性 (enaSupport)の確認
$ aws ec2 describe-instances --instance-ids i-xxxxxxxx --query "Reservations[].Instances[].EnaSupport"
[]
結果が空なので無効になっています。
ネットワークインターフェイスドライバーの確認
$ 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
リストされているドライバは vif であるため、ena モジュールはロードされていません。
インスタンスを停止して、設定を変更します。
$ aws ec2 modify-instance-attribute --instance-id i-xxxxxxxx --ena-support
結果が何も返ってこなければ正常終了です。
設定変更されたことの確認
$ aws ec2 describe-instances --instance-ids i-xxxxxxxx --query "Reservations[].Instances[].EnaSupport"
[
true
]
有効になりました。
再度インスタンスを起動して、ネットワークインターフェイスドライバーの確認
$ 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: ena になるように読めますが変わっていません・・・
他に設定個所は無いので、ひとまずインスタンスタイプをT3に変更して起動してみると、無事起動できました。
T3への変更後にネットワークインターフェイスドライバーの確認をすると、
$ ethtool -i eth0
driver: ena
version: 1.2.0k
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
driver: ena になったことが確認できました。アプリケーションも問題なく動作しています。
参考資料
- Linux インスタンスにおける Elastic Network Adapter (ENA) を使用した拡張ネットワーキングの有効化(日)
- Enabling Enhanced Networking with the Elastic Network Adapter (ENA) on Linux Instances(英)
-
無料利用枠の対象外のため 、アカウントの利用状況によっては例外があるかも。 ↩