【機能拡張】Amazon EC2で最大25Gbpsのネットワーク帯域幅が使えるようになりました

アイキャッチ AWS EC2

はじめに

今回の機能拡張のご紹介はこちら。

Amazon EC2で最大25Gbpsのネットワーク帯域幅が使えるようになりました。対象インスタンスタイプはM4、X1、P2、R4、I3、F1、G3で、具体的には以下のものとなります。他のインスタンスタイプが使えるネットワーク帯域幅に変動はありません。

インスタンスタイプ 拡張前 拡張後
m4.16xlarge 20 Gbps 25 Gbps
x1.32xlarge 20 Gbps 25 Gbps
r4.16xlarge 20 Gbps 25 Gbps
p2.16xlarge 20 Gbps 25 Gbps
g3.16xlarge 20 Gbps 25 Gbps
f1.16xlarge 20 Gbps 25 Gbps
i3.16large 20 Gbps 25 Gbps

また、今回拡張されたネットワーク帯域幅を使うためには、対応したElastic Network Adapter(ENA)ドライバーが必要になります。以下のOSについてはENAドライバーがバンドルされた状態でAMIが提供されています。

  • Amazon Linux
  • Ubuntu 14.04 and 16.04
  • RHEL 7.4
  • SLES 12
  • Windows Server 2008R2, 2012, 2012R2 and 2016

やってみた

EC2の起動画面を確認すると、以下のように[Network Performance]欄が25 Gigabitという表記になっていることがわかります。以下の画面はバージニアリージョンで試したものです。f1.16xlargeはまだ東京リージョンに来ていないため、東京リージョンでは表示されません。

EC2_Management_Console

m4.16xlargeを起動し、ENAドライバのバージョンを確認したところ...ちょっと古いです。記事執筆時点では1.2.0が最新です。

$ modinfo ena
filename:       /lib/modules/4.9.38-16.35.amzn1.x86_64/kernel/drivers/amazon/net/ena/ena.ko
version:        1.1.3
license:        GPL
description:    Elastic Network Adapter (ENA)
author:         Amazon.com, Inc. or its affiliates
srcversion:     DBE308BBEA7B7E30986348F
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:       4.9.38-16.35.amzn1.x86_64 SMP mod_unload modversions
parm:           debug:Debug level (0=none,...,16=all) (int)

そこで最新のENAドライバをGithub上から入手します。まずコンパイルするために必要な環境を整備します。

$ sudo yum update
$ sudo yum install gcc
$ sudo yum install kernel-devel-$(uname -r)

そして最新のENAドライバーのGitリポジトリを入手します。

$ sudo yum install git
$ git clone https://github.com/amzn/amzn-drivers

Linux driverのディレクトリでmakeします。

$ cd amzn-drivers/kernel/linux/ena
$ make

ENAドライバーが出来上がります。

$ ls -alF ena.ko
-rw-rw-r-- 1 ec2-user ec2-user 2313191  9月  7 05:54 ena.ko

そして再起動。再起動後にログインして確認します。

$ modinfo ena
filename:       /lib/modules/4.9.43-17.38.amzn1.x86_64/kernel/drivers/amazon/net/ena/ena.ko
version:        1.2.0u
license:        GPL
description:    Elastic Network Adapter (ENA)
author:         Amazon.com, Inc. or its affiliates
srcversion:     BFB7CE706A2EF88C9281647
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:       4.9.43-17.38.amzn1.x86_64 SMP mod_unload modversions
parm:           debug:Debug level (0=none,...,16=all) (int)

最新バージョンである1.2.0のENAドライバーがインストールされました!

さいごに

この機能拡張により、EC2間で大量データの高速な同期が必要なような、高スループットを期待されるようなシステムをAWS上で構築することが可能になりますね。