AWS EC2 t2 から t3 へ移行する為の step by step
概要
AWS EC2 に t3 系インタスタンスが登場した為、サクッとできるかと思いきや、つまづいた箇所をまとめました。
今回対象のインスタンスは HVM で ubuntu 16.04.5 LTS を使用しました。
t2 と比べて t3 は何がいいの?
- 安い! *1
- t2.small 以下は仮装コア数が 1 でしたが、 t3 では 2 倍!
- t2 と t3 、同じインスタンスサイズでクレジットが倍!
- クレジットが無制限モードデフォルトで有効!
- EBS 最適化がデフォルトで有効
t2 から t3 へ移行する大まかな流れ
要は、ena モジュールをインストールし、EC2 ENA サポートを有効化する必要がありました。
- t2 インスタンス停止
- AMI 作成
- t2 インスタンス起動
- t2 インスタンスでカーネルモジュール(ena) のインストール
- ena モジュールインストール確認
- t2 インスタンス停止
- インスタンスタイプを t3 へ変更 (credit: unlimited もしたい場合はここで)
- t3 インスタンス起動
ENA って?
Elastic Network Adapter – Amazon EC2 向けの高性能パフォーマンスネットワークインターフェイス
プロセッサのワークロードを軽くし、ネットワークパケットと生成または処理を行う vCPU 間で短く効率的なパスを作成するために構築されています。
Linux インスタンスにおける Elastic Network Adapter (ENA) を使用した拡張ネットワーキングの有効化 には以下のように記載があります。
Amazon EC2 は、Elastic Network Adapter (ENA) を介して C5, C5d, F1, G3, H1, I3, m4.16xlarge, M5, M5d, P2, P3, R4, R5, R5d, X1, X1e, and z1d インスタンスに拡張されたネットワーキング機能を提供します。
拡張ネットワーキングは、Amazon EC2 コンソールから管理することはできません。
HVM インスタンスでのみサポート
まとめると、
- Amazon EC2 向けの高性能パフォーマンスネットワークインターフェイス
- HVM (Hardware-assited VM:完全仮想化) 環境でサポートされている。
- PV (ParaVirtual:準仮想化) 環境ではサポートされない。
- ENA というカーネルモジュールを介す事で、インスタンスに拡張されたネットワーキング機能が利用できる。
pv/hvm は AWS コンソール>EC2 説明の「仮想化」の項目で確認できます。
pv の場合は、 hvm の移行を検討する必要があります。
以下から設定に進みます。
ENA 有効化設定手順
以下前提とします。
- AMI を取る等のバックアップが済んでいる。
- t2.small から t3.small に移行する。
Ubuntu での拡張ネットワーキングの有効化
ubuntu:~$ sudo apt-get update && sudo apt-get upgrade -y linux-aws
他OSの対応法も先ほどの Linux インスタンスにおける Elastic Network Adapter (ENA) を使用した拡張ネットワーキングの有効化 に記載されています。
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays. エラーが発生した場合
`/etc/mdadm/mdadm.conf` ファイルに以下一文を追記します。
ARRAY <ignore> devices=<ルートデバイス>
自分の場合は以下の一文を一番下に追記して、もう一度 コマンド実行したら通りました。
ARRAY <ignore> devices=/dev/sda1
ena カーネルモジュールに関する情報表示
`modinfo ena` を実行し以下のように表示されれば OK です。
ubuntu:~$ modinfo ena filename: /lib/modules/4.4.0-81-generic/kernel/drivers/net/ethernet/amazon/ena/ena.ko version: 1.1.2 license: GPL description: Elastic Network Adapter (ENA) author: Amazon.com, Inc. or its affiliates ...
EC2 ENA サポート有効化
// インスタンス停止 macOS%$ aws ec2 stop-instances --instance-ids <instance id> // ENA サポート設定 macOS%$ aws ec2 modify-instance-attribute --instance-id <instance id> --ena-support true // EBS 最適化 (任意) macOS%$ aws ec2 modify-instance-attribute --instance-id <instance id> --ebs-optimized // credit unlimited 設定 (任意) macOS%$ aws ec2 modify-instance-credit-specification --instance-credit-specification "InstanceId=i-<instance id>,CpuCredits=unlimited" // インスタンスタイプ変更 macOS%$ aws ec2 modify-instance-attribute --instance-id <instance id> --instance-type t3.small // インスタンス起動 macOS%$ aws ec2 start-instances --instance-ids <instance id>
これで t3 デビューを飾ることができました♪
参照
AWS EC2 t2 から t3 へ移行する為の step by step
https://kenzo0107.github.io/2018/09/13/2018-09-14-aws-ec2-t2-t3-step-by-step/