CentOS6のt3インスタンスを作りたかった。

先に結果から

ドライバーやら、拡張ネットワーキング有効を入れるだけでは作れなかった。

CentOSのmarketplace

ここの対応タイプにt3が追加される、もしくはプロダクトコードをどうにか外す、もしくはサポートチームに連絡し、サポートケースを開けばいけるかもしれない。

CentOS6からt3インスタンスを作ってみる

日本リージョンでも新世代、t3microが使えるようになりました!

Amazon EC2 T3 インスタンスをリリース

いままでt2を使っていたので、新世代が出たのならさっそく飛びつきたいところですが、Amazon linuxは簡単にt3に変更可能でしたが、centosはなかなかそうは行かない模様。

導入手順をまとめつつ変更してみます。

導入手順

t3インスタンスはNITRO世代のインスタンスになるので、以下の条件を満たす必要があります。

・NVMe用のドライバが入っていること。
・HVM AMIであること。
・ENA(拡張ネットワーキング機能)が有効であること。

ひとまず、centos6をマーケットプレイスから起動してみると、↑2つの条件は揃っていました。

ENAの有効化さえできれば問題なさそうです。

海外のお兄さんがまとめてくれたのを参考に、以下を流し込みます。

sudo su

yum --enablerepo=extras -y install epel-release
yum -y install patch dkms kernel-devel perl
yum update

reboot

sudo su 

cd /tmp
curl -o ena_linux_1.5.3.tar.gz https://codeload.github.com/amzn/amzn-drivers/tar.gz/ena_linux_1.5.3
tar zxvf ena_linux_1.5.3.tar.gz
mv amzn-drivers-ena_linux_1.5.3 /usr/src/ena-1.5.3

cat <<EOF > /usr/src/ena-1.5.3/dkms.conf
PACKAGE_NAME="ena"
PACKAGE_VERSION="1.5.3"
AUTOINSTALL="yes"
REMAKE_INITRD="yes"
BUILT_MODULE_LOCATION[0]="kernel/linux/ena"
BUILT_MODULE_NAME[0]="ena"
DEST_MODULE_LOCATION[0]="/updates"
DEST_MODULE_NAME[0]="ena"
CLEAN="cd kernel/linux/ena; make clean"
MAKE="cd kernel/linux/ena; make BUILD_KERNEL=\${kernelver}"
EOF

dkms add -m ena -v 1.5.3
dkms build -m ena -v 1.5.3
dkms install -m ena -v 1.5.3

dracut -f --add-drivers ena
modinfo ena

こちらで下記内容が戻ってくればOK。

# modinfo ena
filename:       /lib/modules/2.6.32-754.6.3.el6.x86_64/extra/ena.ko
version:        1.5.3g
license:        GPL
description:    Elastic Network Adapter (ENA)
author:         Amazon.com, Inc. or its affiliates
retpoline:      Y
srcversion:     D4B979EA6202E400E558CD0
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:        
vermagic:       2.6.32-754.6.3.el6.x86_64 SMP mod_unload modversions 
parm:           debug:Debug level (0=none,...,16=all) (int)

新世代タイプにできるかのテストスクリプトがあるので実行してみる

c5_m5_checks_script.sh

# sh /tmp/c5_m5_checks_script.sh 
------------------------------------------------

OK     NVMe Module is installed and available on your instance


OK     ENA Module with version 1.5.3g is installed and available on your instance


OK     fstab file looks fine and does not contain any device names. 

------------------------------------------------

あと、停止したあとに、別サーバーからインスタンスに対してenaをONにする

aws ec2 modify-instance-attribute --instance-id <INSTANCE_ID> --ena-support

あとは、AMIを取得して再度立ち上げ・・・と思ったら、以下内容の表示が。

The instance configuration for this AWS Marketplace product is not supported. 
Please see the AWS Marketplace site for more information about supported instance types, regions, and operating systems.

サポートされていないインスタンスタイプの RHEL/SLES Marketplace AMI を起動しようとしています。

だそうで・・・。

つまり、CentOSは現在マケプレに公式がおいてるのを使うと、プロダクトコードが入っており、それから起動可能なインスタンスが決まっている模様。

CentOSのmarketplace

この対応タイプにt3が無いため弾かれているものと思われる。

そのため、まずt3で起動するためにはプロダクトコードのないものを手動インストールなどで作る必要があるかと。

もしくはAMIの対応項目を変えてもらうorサポートチームに連絡し、起動させてもらうしかないようです・・・。