Techniical-support

いまさらながらT2シリーズのEC2をT3シリーズへ移行してみた

皆さんこんにちは。構築担当の川合です。

今回は検証等に普段利用しているEC2のインスタンスがT2シリーズだったので、T3シリーズに移行してみたお話です。

運よくOSの要件を満たしており、OS周りのアップデートは必要なくすんなりと作業が完了しました。

T3シリーズ(Nitro System)

以前からあったT2シリーズに比べて、より安価でかつ従来より高性能なインスタンスタイプになります。
small 以下のインスタンスサイズだとvCPUが倍になったり、デフォルトでEBS最適化が利用出来るようになったりとT3シリーズに移行すると数々のメリットがあります。

https://aws.amazon.com/jp/ec2/instance-types/t3/

ただし、すんなり移行できない

EC2のインスタンスサイズ変更には、一度インスタンスを停止する必要があります。
停止後にインスタンスサイズ変更をして、T3シリーズにインスタンスタイプを変更する事は可能です

ただし、その後インスタンスを起動しようとするとエラーになり起動することが出来ません。

Enhanced networking with the Elastic Network Adapter (ENA) is required for the 't3.micro' instance type. Ensure that your instance 'インスタンスID' is enabled for ENA.

※インスタンスサイズをt2.micro から t3.micro に変えて起動してみています

拡張ネットワーキング機能を有効化するには、Elastic Network Adapter (ENA)が必要になり従来のT2シリーズにはENAが設定されていないのでそのままではT3シリーズを利用する事が出来ません。

ENAへの対応状況確認

今回利用している環境は、CentOS7系ですがCentOS7系全てが対応しているわけではありません。
CentOS 7.4.1708 以降が要件になりますが、今回は運よく要件を満たしていましたのでそのまま作業を実施します。
※要件を満たしていない場合は、OSのアップデートが必要になります

cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 

まず、ENA のモジュールがインストールされているか以下のコマンドで確認します。

modinfo ena
filename:       /lib/modules/3.10.0-693.21.1.el7.x86_64/kernel/drivers/net/ethernet/amazon/ena/ena.ko.xz
version:        1.0.2
license:        GPL
description:    Elastic Network Adapter (ENA)
author:         Amazon.com, Inc. or its affiliates
retpoline:      Y
rhelversion:    7.4
srcversion:     3A6B9F1766C9A0B5CBC7D01
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:        
intree:         Y
vermagic:       3.10.0-693.21.1.el7.x86_64 SMP mod_unload modversions 
signer:         CentOS Linux kernel signing key
sig_key:        03:DA:60:92:F6:71:13:21:B5:AC:E1:2E:84:5D:A9:73:36:F7:67:4D
sig_hashalgo:   sha256
parm:           debug:Debug level (0=none,...,16=all) (int)

インストールされていなければ、enaが見つからずエラーになります。

T2シリーズでは、driver が ena ではなく vif が使われています。

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

拡張ネットワーキングが有効化されているかは、AWS CLI で別のインスタンスから確認します。
コマンドを実行しているインスタンスには、IAM role で権限を付与しています。

aws ec2 describe-instances --instance-ids インスタンスID --query "Reservations[].Instances[].EnaSupport"
[
    false
]

false になっているので拡張ネットワーキングは有効化されていません。

拡張ネットワーキングの有効化

ENAがインストールされていて要件は満たしているので、実際に拡張ネットワーキングを有効化してみます。
有効化には、別のインスタンスからAWS CLI を実行する必要があり且つ対象のインスタンスが停止している必要があります。その為、まず先にインスタンスを停止状態にします。

停止が確認出来たら、以下のコマンドを実行します。
エラーが無ければ何も出力されずにコマンドが終了します。

aws ec2 modify-instance-attribute --instance-id インスタンスID --ena-support

あとは、停止済みのインスタンスでインスタンスサイズをT3シリーズに変更してインスタンスを起動してみます。

今度は、エラーなくインスタンスが起動出来るようになっているはずです。

起動後に以下のコマンドでdriverがvif から ena に変わったことが確認出来ます。

ethtool -i eth0
driver: ena
version: 1.0.2
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

まとめ

T2シリーズの比較的古いインスタンスだったので、新しくインスタンスを作り直してもろもろ設定する必要があると思っていたのですが運よくそのままT3シリーズに移行する事が出来ました。

OSをアップデートしてしまうと、動作周りに影響が出たり別途確認する必要があるのであまりやりたくない作業だったので今回はよかったです。

他にあるT2シリーズのインスタンスも移行できればT3シリーズに移行していこうと思います。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA