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

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

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

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

x1.32xlarge20 Gbps25 Gbpsr4.16xlarge20 Gbps25 Gbpsp2.16xlarge20 Gbps25 Gbpsg3.16xlarge20 Gbps25 Gbpsf1.16xlarge20 Gbps25 Gbpsi3.16large20 Gbps25 Gbps

インスタンスタイプ 拡張前 拡張後
m4.16xlarge 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上で構築することが可能になりますね。