ENECHANGE Developer Blog

ENECHANGE開発者ブログ

t2インスタンスからt3インスタンスへ移行した話

キャンプシーズン到来で焚き火したくて発狂寸前のCTO室のkazです。 今回は、t2インスタンスで起動している既存サーバをt3インスタンスに変更した際の手順を書きたいと思います。

オンデマンド料金で東京リージョンでの性能と料金

現行世代 vCPU メモリ 料金
t3.nano 2 0.5 GiB 0.0068USD/時間
t3.micro 2 1 GiB 0.0136USD/時間
t3.small 2 2 GiB 0.0272USD/時間
t3.medium 2 4 GiB 0.0544USD/時間
t3.large 2 8 GiB 0.1088USD/時間
t3.xlarge 4 16 GiB 0.2176USD/時間
t3.2xlarge 8 32 GiB 0.4352USD/時間
t2.nano 1 0.5 GiB 0.0076USD/時間
t2.micro 1 1 GiB 0.0152USD/時間
t2.small 1 2 GiB 0.0304USD/時間
t2.medium 4 1 GiB 0.0608USD/時間
t2.large 2 8 GiB 0.1216USD/時間
t2.xlarge 4 16 GiB 0.2432USD/時間
t2.2xlarge 8 32 GiB 0.4864USD/時間
  • そもそもt2とは?t3とは? バーストベースラインパフォーマンスという概念があるんですが、[公式ドキュメント]がわかりやすいです。 その中でも運用で注意しないとEC2インスタンス料金がスパイクする恐れのある概念が「Unlimited」です。

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

  • AmazonEC2インスタンスで使用できる仮想ネットワークアダプターは 3 種類あり、T3系のインスタンスを使用するにはvifをENAに変更する必要があります。
アダプター 利用可能なインスタンスタイプ カーネルモジュール Windows ドライバー パフォーマンス
vif すべて Xen-netfront Citrix または AWS PV 低〜中
Intel 82599 VF C3、C4、D2、I2、R3、および M4 (m4.16xlarge は除く) ixgbevf Intel 82599 VF 最大 10 Gbps
Elastic Network Adapter P2、R4、X1、および m4.16xlarge ena ena 最大 20 Gbps

拡張ネットワーキングが有効化されているか確認するには下記をチェックする

①enaモジュール がインスタンスにインストールされている

②enaSupport 属性が設定されている

  • 以下はenaモジュールがインストールされていない状態
$ modinfo ena
modinfo: ERROR: Module ena not found.
  • osをupdateし、enaモジュールがインストールされたことを確認する
$ sudo yum -y update --skip-broken && sudo shutdown -r now
$ modinfo ena
filename:       /lib/modules/4.14.77-70.59.amzn1.x86_64/kernel/drivers/amazon/net/ena/ena.ko
version:        2.0.2g
license:        GPL
description:    Elastic Network Adapter (ENA)
author:         Amazon.com, Inc. or its affiliates
srcversion:     DF971F3B33F323495F5FAC6
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
name:           ena
vermagic:       4.14.77-70.59.amzn1.x86_64 SMP mod_unload modversions
parm:           debug:Debug level (0=none,...,16=all) (int)
parm:           rx_queue_size:Rx queue size. The size should be a power of 2. Max value is 8K
 (int)
  • インスタンスを停止した後、enaSupport属性を有効化する
$ aws ec2 modify-instance-attribute --instance-id i-xxxxxxxx --ena-support
  • enaSupport属性がを有効化設定されているか確認
$ aws ec2 describe-instances --instance-ids i-xxxxxxxx | jq '.Reservations[].Instances[].EnaSupport'
true
  • インスタンスタイプをT3系に変更しサーバを起動させる

  • ネットワークインターフェイスで使用されているモジュールがENAであることが確認できる

$ ethtool -i eth0
driver: ena
version: 2.0.2g
firmware-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