EC2 インスタンスで Elastic Network Adapter (ENA) による拡張ネットワーキングを有効にする - Amazon Elastic Compute Cloud

EC2 インスタンスで Elastic Network Adapter (ENA) による拡張ネットワーキングを有効にする

Amazon EC2 は、Elastic Network Adapter (ENA) を介してネットワーキング機能を提供します。拡張ネットワーキングを使用するには、必要な ENA モジュールをインストールし、ENA のサポートを有効にする必要があります。

要件

ENA を使用した拡張ネットワーキングを準備するには、次のようにインスタンスをセットアップします。

  • AWS Nitro System に構築されたインスタンスを起動します。

  • インスタンスがインターネットに接続されていることを確認します。

  • 保持する必要がある重要なデータがインスタンスにある場合、インスタンスから AMI を作成してそのデータをバックアップする必要があります。enaSupport 属性を有効にするとともに、カーネルおよびカーネルモジュールを更新すると、互換性のないインスタンスがレンダリングされたり、オペレーティングシステムに接続できなくなったりする可能性があります。最近のバックアップがある場合は、これが発生してもデータは保持されます。

  • Linux インスタンス – インスタンスに対して ENA 拡張ネットワーキングが自動的に有効化されるように、サポートされているバージョンの Linux カーネルとサポートされているディストリビューションを使用してインスタンスを起動します。詳細については、ENA Linux Kernel Driver リリースノートを参照してください。

  • Windows インスタンス – インスタンスで Windows Server 2008 R2 SP1 を実行している場合は、SHA-2 コード署名サポートが更新されていることを確認します。

  • 選択した任意のコンピュータ、できればローカルのデスクトップまたはノートパソコンで、AWS Management Console から AWS CloudShell を使用するか、AWS CLI もしくは AWS Tools for Windows PowerShell をインストールし設定します。詳細については、Amazon EC2 へのアクセスもしくは AWS CloudShell ユーザーガイドを参照してください。拡張ネットワーキングは、Amazon EC2 コンソールから管理することはできません。

拡張ネットワーキングのパフォーマンス

以下のドキュメントには、ENA 拡張ネットワーキングをサポートするインスタンスタイプのネットワークパフォーマンスの概要が記載されています。

必要なモジュールを備えた Linux AMI

次の AMI には必要な ENA モジュールが含まれており、ENA のサポートが有効になっています。

  • AL2023

  • Amazon Linux 2

  • Amazon Linux AMI 2018.03 以降

  • linux-aws カーネルを搭載した Ubuntu 14.04 以降

    注記

    AWS Graviton ベースのインスタンスタイプには、linux-aws カーネル搭載の Ubuntu 18.04 以降が必要です

  • Red Hat Enterprise Linux 7.4 以降

  • SUSE Linux Enterprise Server 12 SP2 以降

  • CentOS 7.4.1708 以降

  • FreeBSD 11.1 以降

  • Debian GNU/Linux 9 以降

拡張ネットワーキングが既に有効になっているかどうかをテストするには、ena モジュールがインスタンスにインストールされていることと、enaSupport 属性が設定されていることを確認します。確認できた場合は、コマンド ethtool -i ethn によって、そのモジュールがネットワークインターフェイスで使用されていることが示されるはずです。

カーネルモジュール (ena)

ena モジュールがインストールされたことを確認するには、以下の例に示されるように modinfo コマンドを使用します。

[ec2-user ~]$ modinfo ena filename: /lib/modules/4.14.33-59.37.amzn2.x86_64/kernel/drivers/amazon/net/ena/ena.ko version: 1.5.0g license: GPL description: Elastic Network Adapter (ENA) author: Amazon.com, Inc. or its affiliates srcversion: 692C7C68B8A9001CB3F31D0 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 ...

Amazon Linux インスタンスでは、ena モジュールはインストールされています。

ubuntu:~$ modinfo ena ERROR: modinfo: could not find module ena

Ubuntu インスタンスでは、モジュールはインストールされていないため、まずモジュールをインストールする必要があります。詳細については、「Ubuntu」を参照してください。

拡張ネットワーキングが有効化されているかどうかのテスト

インスタンスまたは AMI で拡張ネットワーキングが有効になっているかどうかをテストできます。

インスタンス属性

インスタンスに拡張ネットワーキングの enaSupport 属性が設定されているかどうかを確認するには、次のいずれかのコマンドを使用します。属性が設定されている場合、レスポンスは true です。

  • describe-instances (AWS CLI/AWS CloudShell)

    aws ec2 describe-instances --instance-ids instance_id --query "Reservations[].Instances[].EnaSupport"
  • Get-EC2Instance (Windows PowerShell 用のツール)

    (Get-EC2Instance -InstanceId instance-id).Instances.EnaSupport
イメージ属性

AMI に拡張ネットワーキングの enaSupport 属性が設定されているかどうかを確認するには、次のいずれかのコマンドを使用します。属性が設定されている場合、レスポンスは true です。

  • describe-images (AWS CLI/AWS CloudShell)

    aws ec2 describe-images --image-id ami_id --query "Images[].EnaSupport"
  • Get-EC2Image (Windows PowerShell 用のツール)

    (Get-EC2Image -ImageId ami_id).EnaSupport
Linux ネットワークインターフェイスドライバー

次のコマンドを使用して、ena モジュールが特定のインターフェイスで使用されていることを確認し、確認するインターフェイス名に置き換えます。単一のインターフェイス (デフォルト) を使用している場合は、eth0 です。オペレーティングシステムで予測可能なネットワーク名がサポートされている場合は、ens5 のような名前にすることができます。

次の例で、リストされているドライバーは vif であるため、ena モジュールはロードされていません。

[ec2-user ~]$ ethtool -i eth0 driver: vif version: firmware-version: bus-info: vif-0 supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no

この例では、ena モジュールがロードされており、最小推奨バージョンです。このインスタンスでは、拡張ネットワーキングが適切に設定されています。

[ec2-user ~]$ ethtool -i eth0 driver: ena version: 1.5.0g firmware-version: expansion-rom-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

インスタンスでの拡張ネットワーキングの有効化

使用する手順は、インスタンスのオペレーティングシステムによって異なります。

Amazon Linux 2 および Amazon Linux AMI の最新バージョンには、ENA がインストールされた拡張ネットワーキングに必要なモジュールが含まれており、ENA のサポートが有効になっています。したがって、サポートされるインスタンスタイプで HVM バージョンの Amazon Linux を使用してインスタンスを起動した場合、拡張ネットワーキングは既にインスタンスで有効になっています。詳細については、「拡張ネットワーキングが有効化されているかどうかのテスト」を参照してください。

以前の Amazon Linux AMI を使用してインスタンスを起動し、まだ拡張ネットワーキングが有効になっていない場合、拡張ネットワーキングを有効にするには次の手順を実行します。

Amazon Linux AMI で拡張ネットワーキングを有効化するには
  1. インスタンスに接続します。

  2. インスタンスから、次のコマンドを実行して、ena を含む最新のカーネルとカーネルモジュールでインスタンスを更新します。

    [ec2-user ~]$ sudo yum update
  3. ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用して、インスタンスを再起動します。reboot-instances (AWS CLI)、Restart-EC2Instance (AWS Tools for Windows PowerShell)。

  4. インスタンスに再接続し、enamodinfo ena コマンドを使用して、拡張ネットワーキングが有効化されているかどうかのテスト モジュールがインストールされ、最小推奨バージョンであることを確認します。

  5. [EBS-backed インスタンス] ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用して、インスタンスを停止します。stop-instances (AWS CLI)、Stop-EC2Instance (AWS Tools for Windows PowerShell)。インスタンスを AWS OpsWorks で管理する場合、インスタンスの状態が同期し続けるために、AWS OpsWorks コンソールでインスタンスを停止する必要があります。

    [Instance store-backed インスタンス] インスタンスを停止して属性を変更することはできません。代わりに、この手順に進んでください: Amazon Linux AMI で拡張ネットワーキングを有効にするには (Instance store-backed インスタンス)

  6. ローカルコンピュータから、次のいずれかのコマンドを使用して拡張ネットワーキングの属性を有効化します。

  7. (オプション) Amazon EBS-backed AMI を作成するの説明に従って、インスタンスから AMI を作成します。AMI は、インスタンスから拡張ネットワーキング enaSupport 属性を継承します。このため、この AMI を使用することで、拡張ネットワーキングがデフォルトで有効になっている別のインスタンスを起動できます。

  8. ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用して、インスタンスを開始します。start-instances (AWS CLI)、Start-EC2Instance (AWS Tools for Windows PowerShell)。インスタンスを AWS OpsWorks で管理する場合、インスタンスの状態が同期し続けるために、AWS OpsWorks コンソールでインスタンスを停止する必要があります。

  9. インスタンスに接続し、拡張ネットワーキングが有効化されているかどうかのテストethtool -i ethn コマンドを使用して、ena モジュールがインストールされ、ネットワークインターフェイスにロードされていることを確認します。

    拡張ネットワーキングを有効にした後にインスタンスに接続できない場合、Linux での Elastic Network Adapter のトラブルシューティングを参照してください。

Amazon Linux AMI で拡張ネットワーキングを有効にするには (Instance store-backed インスタンス)

インスタンスを停止するステップまで、前の手順に従います。instance store-backed Linux AMI を作成するに記述されているように、新しい AMI を作成します。AMI を登録するときに拡張ネットワーキング属性を有効にしてください。

  • register-image (AWS CLI)

    aws ec2 register-image --ena-support ...
  • Register-EC2Image (AWS Tools for Windows PowerShell)

    Register-EC2Image -EnaSupport $true ...

最新の Ubuntu HVM AMI には、ENA がインストールされた拡張ネットワーキングに必要なモジュールが含まれており、ENA のサポートが有効になっています。したがって、サポートされるインスタンスタイプで最新の Ubuntu HVM AMI を使用してインスタンスを起動した場合、拡張ネットワーキングは既にインスタンスで有効になっています。詳細については、「拡張ネットワーキングが有効化されているかどうかのテスト」を参照してください。

以前の AMI を使用してインスタンスを起動した場合、まだ拡張ネットワーキングが有効になっていなければ、linux-aws カーネルパッケージをインストールして最新の拡張ネットワーキングドライバーを取得して、必要な属性を更新できます。

linux-aws カーネルパッケージをインストールするには (Ubuntu 16.04 以降)

Ubuntu 16.04 および 18.04 には、Ubuntu カスタムカーネル (linux-aws カーネルパッケージ) が付属しています。別のカーネルを使用するには、AWS Support にお問い合わせください。

linux-aws カーネルパッケージをインストールするには (Ubuntu Trusty 14.04)
  1. インスタンスに接続します。

  2. パッケージキャッシュおよびパッケージを更新します。

    ubuntu:~$ sudo apt-get update && sudo apt-get upgrade -y linux-aws
    重要

    更新プロセス中に grub をインストールするよう求められた場合は、/dev/xvda のインストール先として grub を使用し、現在のバージョンの /boot/grub/menu.lst を保持することを選択します。

  3. [EBS-backed インスタンス] ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用して、インスタンスを停止します。stop-instances (AWS CLI)、Stop-EC2Instance (AWS Tools for Windows PowerShell)。インスタンスを AWS OpsWorks で管理する場合、インスタンスの状態が同期し続けるために、AWS OpsWorks コンソールでインスタンスを停止する必要があります。

    [Instance store-backed インスタンス] インスタンスを停止して属性を変更することはできません。代わりに、この手順に進んでください: Ubuntu で拡張ネットワーキングを有効にするには (Instance store-backed インスタンス)

  4. ローカルコンピュータから、次のいずれかのコマンドを使用して拡張ネットワーキングの属性を有効化します。

  5. (オプション) Amazon EBS-backed AMI を作成するの説明に従って、インスタンスから AMI を作成します。AMI は、インスタンスから拡張ネットワーキング enaSupport 属性を継承します。このため、この AMI を使用することで、拡張ネットワーキングがデフォルトで有効になっている別のインスタンスを起動できます。

  6. ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用して、インスタンスを開始します。start-instances (AWS CLI)、Start-EC2Instance (AWS Tools for Windows PowerShell)。インスタンスを AWS OpsWorks で管理する場合、インスタンスの状態が同期し続けるために、AWS OpsWorks コンソールでインスタンスを停止する必要があります。

Ubuntu で拡張ネットワーキングを有効にするには (Instance store-backed インスタンス)

インスタンスを停止するステップまで、前の手順に従います。instance store-backed Linux AMI を作成するに記述されているように、新しい AMI を作成します。AMI を登録するときに拡張ネットワーキング属性を有効にしてください。

  • register-image (AWS CLI)

    aws ec2 register-image --ena-support ...
  • Register-EC2Image (AWS Tools for Windows PowerShell)

    Register-EC2Image -EnaSupport $true ...

Red Hat Enterprise Linux、SUSE Linux Enterprise Server、および CentOS 用の最新の AMI には、ENA を使用した拡張ネットワーキングに必要なモジュールが含まれており、ENA のサポートが有効になっています。したがって、サポートされるインスタンスタイプで最新の AMI を使用してインスタンスを起動した場合、拡張ネットワーキングは既にインスタンスで有効になっています。詳細については、「拡張ネットワーキングが有効化されているかどうかのテスト」を参照してください。

次の手順では、Amazon Linux AMI または Ubuntu 以外の Linux ディストリビューションで拡張ネットワーキングを有効にするための一般的なステップを説明します。コマンドの詳細な構文、ファイルの場所、パッケージやツールのサポートなどの詳細については、使用する Linux ディストリビューションのドキュメントを参照してください。

Linux で拡張ネットワーキングを有効化するには
  1. インスタンスに接続します。

  2. https://github.com/amzn/amzn-drivers の GitHub からインスタンスで ena モジュールのソースコードのクローンを作成します。(SUSE Linux Enterprise Server 12 SP2 以降には、デフォルトで ENA 2.02 が含まれているため、ENA ドライバーをダウンロードしてコンパイルする必要はありません。SUSE Linux Enterprise Server 12 SP2 以降では、必要なドライバーバージョンを標準カーネルに追加するためリクエストを申請する必要があります。)

    git clone https://github.com/amzn/amzn-drivers
  3. インスタンスで ena モジュールをコンパイルし、インストールします。これらの手順は Linux ディストリビューションによって異なります。Red Hat Enterprise Linux でのモジュールのコンパイルの詳細については、「RHEL を実行する Amazon EC2 インスタンスに拡張ネットワークサポート用の最新の ENS ドライバーをインストールする方法」を参照してください。

  4. sudo depmod コマンドを実行して、モジュールの依存関係を更新します。

  5. 起動時に新しいモジュールがロードされるように、インスタンスの initramfs を更新します。例えば、ディストリビューションで dracut がサポートされる場合、次のコマンドを使用できます。

    dracut -f -v
  6. システムがデフォルトで予測可能なネットワークインターフェイス名を使用するかどうかを確認します。systemd または udev のバージョン 197 以上を使用するシステムの場合、イーサネットデバイスの名前を変更でき、単一ネットワークインターフェイスの名前が eth0 になることは保証されません。この動作は、インスタンスに接続する際に問題の原因となる可能性があります。詳細と他の設定オプションについては、freedesktop.org ウェブサイトでPredictable Network Interface Names/を参照してください。

    1. 次のコマンドを使用して、RPM ベースのシステムで systemd または udev のバージョンを確認できます。

      rpm -qa | grep -e '^systemd-[0-9]\+\|^udev-[0-9]\+' systemd-208-11.el7_0.2.x86_64

      上記の Red Hat Enterprise Linux 7 の例では、systemd のバージョンは 208 であるため、予測可能なネットワークインターフェイス名は無効になっている必要があります。

    2. net.ifnames=0 オプションを GRUB_CMDLINE_LINUX/etc/default/grub 行に追加することによって、予測可能なネットワークインターフェイス名を無効にします。

      sudo sed -i '/^GRUB\_CMDLINE\_LINUX/s/\"$/\ net\.ifnames\=0\"/' /etc/default/grub
    3. grub の設定ファイルを再ビルドします。

      sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  7. [EBS-backed インスタンス] ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用して、インスタンスを停止します。stop-instances (AWS CLI)、Stop-EC2Instance (AWS Tools for Windows PowerShell)。インスタンスを AWS OpsWorks で管理する場合、インスタンスの状態が同期し続けるために、AWS OpsWorks コンソールでインスタンスを停止する必要があります。

    [Instance store-backed インスタンス] インスタンスを停止して属性を変更することはできません。代わりに、この手順に進んでください: Linux で拡張ネットワーキングを有効にするには (Instance store-backed インスタンス)

  8. ローカルコンピュータから、次のいずれかのコマンドを使用して拡張ネットワーキングの enaSupport 属性を有効化します。

  9. (オプション) Amazon EBS-backed AMI を作成するの説明に従って、インスタンスから AMI を作成します。AMI は、インスタンスから拡張ネットワーキング enaSupport 属性を継承します。このため、この AMI を使用することで、拡張ネットワーキングがデフォルトで有効になっている別のインスタンスを起動できます。

    インスタンスオペレーティングシステムに /etc/udev/rules.d/70-persistent-net.rules が含まれている場合には、AMI を作成する前にそれを削除する必要があります。このファイルには、元のインスタンスのイーサネットアダプターの MAC アドレスが保存されています。別のインスタンスがこのファイルを使用して起動した場合、オペレーティングシステムがそのデバイスを検出できなくなり、eth0 が失敗して、起動に関する問題が発生することがあります。このファイルは次の起動サイクルで再び生成され、AMI から起動されるインスタンスごとに独自のバージョンが作成されます。

  10. ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用して、インスタンスを開始します。start-instances (AWS CLI)、Start-EC2Instance (AWS Tools for Windows PowerShell)。インスタンスを AWS OpsWorks で管理する場合、インスタンスの状態が同期し続けるために、AWS OpsWorks コンソールでインスタンスを停止する必要があります。

  11. (オプション) インスタンスに接続し、モジュールがインストールされていることを確認します。

    拡張ネットワーキングを有効にした後にインスタンスに接続できない場合、Linux での Elastic Network Adapter のトラブルシューティングを参照してください。

Linux で拡張ネットワーキングを有効にするには (Instance store-backed インスタンス)

インスタンスを停止するステップまで、前の手順に従います。instance store-backed Linux AMI を作成するに記述されているように、新しい AMI を作成します。AMI を登録するときに拡張ネットワーキング属性を有効にしてください。

この方法は、テストおよびフィードバックのみを目的としています。本番稼働用デプロイによる使用を目的としていません。本番稼働デプロイについては、Ubuntuを参照してください。

重要

DKMS を使用すると、サブスクリプションのサポート契約が無効になります。本稼働環境では使用しないでください。

Ubuntu で ENA を使用した拡張ネットワーキングを有効にするには (EBS-backed インスタンス)
  1. Ubuntu のステップ 1 および 2 を行います。

  2. build-essential パッケージをインストールしてカーネルモジュールと dkms パッケージをコンパイルし、カーネルが更新されるたびに ena モジュールが再構築されるようにします。

    ubuntu:~$ sudo apt-get install -y build-essential dkms
  3. の GitHub からインスタンスで ena モジュールのソースのクローンを作成します。。https://github.com/amzn/amzn-drivers

    ubuntu:~$ git clone https://github.com/amzn/amzn-drivers
  4. amzn-drivers パッケージを /usr/src/ ディレクトリに移動して、カーネルの更新のたびに DKMS がこのパッケージを見つけて構築できるようにします。ソースコードのバージョン番号 (現在のバージョン番号はリリースノートにあります) をディレクトリ名に付加します。例えば、バージョン 1.0.0 は以下のようになります。

    ubuntu:~$ sudo mv amzn-drivers /usr/src/amzn-drivers-1.0.0
  5. 以下の値を使用して DKMS 設定ファイルを作成し、ena のバージョンに置き換えます。

    ファイルを作成します。

    ubuntu:~$ sudo touch /usr/src/amzn-drivers-1.0.0/dkms.conf

    ファイルを編集し、次の値を追加します。

    ubuntu:~$ sudo vim /usr/src/amzn-drivers-1.0.0/dkms.conf PACKAGE_NAME="ena" PACKAGE_VERSION="1.0.0" CLEAN="make -C kernel/linux/ena clean" MAKE="make -C kernel/linux/ena/ BUILD_KERNEL=${kernelver}" BUILT_MODULE_NAME[0]="ena" BUILT_MODULE_LOCATION="kernel/linux/ena" DEST_MODULE_LOCATION[0]="/updates" DEST_MODULE_NAME[0]="ena" AUTOINSTALL="yes"
  6. DKMS を使用して、インスタンスで ena モジュールを追加、構築、インストールします。

    DKMS にモジュールを追加します。

    ubuntu:~$ sudo dkms add -m amzn-drivers -v 1.0.0

    dkms コマンドを使用してモジュールを構築します。

    ubuntu:~$ sudo dkms build -m amzn-drivers -v 1.0.0

    dkms を使用してモジュールをインストールします。

    ubuntu:~$ sudo dkms install -m amzn-drivers -v 1.0.0
  7. 起動時に正しいモジュールがロードされるように、initramfs を再ビルドします。

    ubuntu:~$ sudo update-initramfs -u -k all
  8. 拡張ネットワーキングが有効化されているかどうかのテスト から modinfo ena コマンドを使用して、ena モジュールがインストールされていることを確認します。

    ubuntu:~$ modinfo ena filename: /lib/modules/3.13.0-74-generic/updates/dkms/ena.ko version: 1.0.0 license: GPL description: Elastic Network Adapter (ENA) author: Amazon.com, Inc. or its affiliates srcversion: 9693C876C54CA64AE48F0CA 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: 3.13.0-74-generic SMP mod_unload modversions parm: debug:Debug level (0=none,...,16=all) (int) parm: push_mode:Descriptor / header push mode (0=automatic,1=disable,3=enable) 0 - Automatically choose according to device capability (default) 1 - Don't push anything to device memory 3 - Push descriptors and header buffer to device memory (int) parm: enable_wd:Enable keepalive watchdog (0=disable,1=enable,default=1) (int) parm: enable_missing_tx_detection:Enable missing Tx completions. (default=1) (int) parm: numa_node_override_array:Numa node override map (array of int) parm: numa_node_override:Enable/Disable numa node override (0=disable) (int)
  9. Ubuntu のステップ 3 に進みます。

インスタンスを起動し、すでに拡張ネットワーキングが有効になっていない場合、必要なネットワークアダプタードライバーをダウンロードしてインスタンスにインストールし、拡張ネットワーキングを有効にするように enaSupport インスタンス属性を設定する必要があります。この属性は、サポートされるインスタンスタイプにおいて、ENA ドライバーがインストールされている場合のみ有効にできます。詳細については、「拡張ネットワークのサポート」を参照してください。

拡張ネットワーキングを有効にするには
  1. インスタンスに接続してローカル管理者としてログインします。

  2. [Windows Server 2016 と 2019 のみ] 以下の EC2Launch PowerShell スクリプトを実行して、ドライバーのインストール後にインスタンスを設定します。

    PS C:\> C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 -Schedule
  3. インスタンスから、次のようにドライバーをインストールします。

    1. インスタンスに最新のドライバーをダウンロードします。

    2. zip アーカイブを展開します。

    3. install.ps1 PowerShell スクリプトを実行してドライバーをインストールします。

      注記

      実行ポリシーエラーが発生した場合は、ポリシーを Unrestricted に設定します (デフォルトでは、Restricted または RemoteSigned に設定されています)。コマンドラインで、Set-ExecutionPolicy -ExecutionPolicy Unrestricted を実行し、次に PowerShell スクリプト install.ps1 を再度実行します。

  4. ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用して、インスタンスを停止します。stop-instances (AWS CLI/AWS CloudShell)、Stop-EC2Instance (AWS Tools for Windows PowerShell)。インスタンスを AWS OpsWorks で管理する場合、インスタンスの状態が同期し続けるために、AWS OpsWorks コンソールでインスタンスを停止する必要があります。

  5. 次のように、インスタンスの ENA サポートを有効にします。

    1. ローカルコンピュータから、次のいずれかのコマンドを実行して、インスタンスの EC2 インスタンス ENA サポート属性を確認します。属性が有効になっていない場合、出力は「[]」 または空白です。EnaSupportはデフォルトで false に設定されます。

      • describe-instances (AWS CLI/AWS CloudShell)

        aws ec2 describe-instances --instance-ids instance_id --query "Reservations[].Instances[].EnaSupport"
      • Get-EC2Instance (Windows PowerShell 用のツール)

        (Get-EC2Instance -InstanceId instance-id).Instances.EnaSupport
    2. ENA サポートを有効にするには、次のいずれかのコマンドを実行します:

      • modify-instance-attribute (AWS CLI/AWS CloudShell)

        aws ec2 modify-instance-attribute --instance-id instance_id --ena-support
      • Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell)

        Edit-EC2InstanceAttribute -InstanceId instance_id -EnaSupport $true

      インスタンスを再開するときに問題が発生した場合は、次のいずれかのコマンドを使用して ENA サポートを無効にすることもできます。

      • modify-instance-attribute (AWS CLI/AWS CloudShell)

        aws ec2 modify-instance-attribute --instance-id instance_id --no-ena-support
      • Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell)

        Edit-EC2InstanceAttribute -InstanceId instance_id -EnaSupport $false
    3. 前述のように describe-instances または Get-EC2Instance を使用して、属性が true に設定されていることを確認します。次のような出力が表示されます。

      [ true ]
  6. ローカルコンピュータから、Amazon EC2 コンソールまたは次のいずれかのコマンドを使用して、インスタンスを開始します。start-instances (AWS CLI/AWS CloudShell)、Start-EC2Instance (AWS Tools for Windows PowerShell)。インスタンスを AWS OpsWorks で管理する場合、インスタンスの状態が同期し続けるために、AWS OpsWorks コンソールを使用してインスタンスを停止する必要があります。

  7. インスタンスで、次のように ENA ドライバーがインストールされて有効であることを検証します。

    1. ネットワークアイコンを右クリックして、[Open Network and Sharing Center] を選択します。

    2. イーサネットアダプター ([Ethernet 2] など) を選択します。

    3. [Details] を選択します。[Network Connection Details] で、[Description] が [Amazon Elastic Network Adapter] であることを確認します。

  8. (オプション) インスタンスから AMI を作成します。AMI は、インスタンスから enaSupport 属性を継承します。したがって、この AMI を使用して、ENA がデフォルトで有効になっている別のインスタンスを起動できます。

ドライバーのリリースノート

Linux ENA ドライバーのバージョンについては、ENA Linux カーネルドライバーのリリースノートを参照してください 。

Windows AMI には、拡張ネットワーキングを有効にするために Amazon ENA ドライバーが含まれています。

次の表に、Windows Server バージョンごとにダウンロードする ENA ドライバの各バージョンを示します。

Windows Server バージョン ENA ドライバーバージョン

Windows Server 2022

2.4.0 以降

[Windows Server 2019]

最新

Windows Server 2016 最新
Windows Server 2012 R2 2.6.0 以前
Windows Server 2012 2.6.0 以前
Windows Server 2008 R2 2.2.3 以前

次の表は、各リリースの変更をまとめたものです。

ドライバーのバージョン 詳細 リリース日

2.7.0

新機能

  • Windows Server 2012 (Windows 8) および Windows Server 2012 R2 (Windows 8.1) のサポートが削除されました。これらのオペレーティングシステムのバージョンは、AWS からのサポートが終了しました。Windows Server 2012 以前のバージョンでは、ドライバーのインストールが失敗します。

  • デバイスへの IPv6 Tx チェックサム計算のオフロードのサポートが追加されました。

  • 低レイテンシーキューイング (LLQ) の幅広いサポートが追加されました。これは、デバイスのレコメンデーションに基づいて動的に有効になります。この設定は、新しい「WideLLQ」レジストリキーで上書きできます。

  • 受信パケットの Rx リングの容量が不足していることを示す、Rx オーバーランによるパケットドロップのレポート機能が追加されました。

  • デバイスからの準最適な設定通知のサポートが追加されました。Windows イベントビューアーのイベント ID 59000 を参照してください。

バグ修正

  • 低レイテンシーキューイング (LLQ) ヘッダーの最大サイズを超えるヘッダーを持つ Tx パケットによる不要なデバイスリセットは回避されます。

2024 年 5 月 1 日

2.6.0

新機能

  • ENA Express をサポートするインスタンスタイプ用に、次のネットワークパフォーマンスメトリクスを追加しました。

    • ena_srd_mode

    • ena_srd_tx_pkts

    • ena_srd_eligible_tx_pkts

    • ena_srd_rx_pkts

    • ena_srd_resource_utilization

  • Nitro ベースのインスタンスタイプ用に、conntrack_allowance_available ネットワークパフォーマンスメトリクスを追加しました。

  • RX データ破損の検出による新しいアダプタのリセット理由を追加しました。

  • ドライバーのログ記録におけるインフラストラクチャを更新しました。

バグ修正

  • CPU 不足によりネットワークパフォーマンスメトリクスの更新が失敗した場合、アダプターがリセットを防止します。

  • デバイスのハートビートの中断の誤検出を防止できます。

  • ダウングレードの操作をサポートするようにドライバーインストールスクリプトを修正しました。

  • 受信エラー数の統計情報を修正しました。

2023 年 6 月 20 日

2.5.0

発表

ENA Windows ドライバーのバージョン 2.5.0 は、Windows ドメインコントローラーで初期化できなかったため、ロールバックされました。Windows クライアントと Windows Server は影響を受けません。

2023 年 2 月 17 日

2.4.0

新機能

  • Windows Server 2022 のサポートの追加

  • Windows Server 2008 R2 のサポートの終了

  • 第 6 世代の Amazon EC2 インスタンスのパフォーマンスを向上させるため、低レイテンシーキューイング (LLQ) を常にオンに設定します。

バグ修正

  • Windows (PCW) のパフォーマンスカウンター (PCW) システムにネットワークパフォーマンスメトリクスを公開できない問題を修正しました。

  • レジストリキーの読み取り操作に発生するメモリリークを修正しました。

  • アダプターのリセット処理中に回復不能なエラーが発生した際に生じる、無限のリセットループを防止しました。

2022 年 4 月 28 日

2.2.4

発表

ENA Windows ドライバーのバージョン 2.2.4 は、第 6 世代 EC2 インスタンスでパフォーマンスが低下する可能性があるため、ロールバックされました。次のいずれかの方法を使用して、ドライバーをダウングレードすることをお勧めします。

  • 以前のバージョンをインストールする
    1. この表のリンクから、以前のバージョンのパッケージをダウンロードします (バージョン 2.2.3)。

    2. install.ps1 PowerShell インストールスクリプトを実行します。

    インストール前とインストール後の手順の詳細については、「Windows の拡張ネットワーキングの有効化」を参照してください。

    Amazon EC2 Systems Manager を使用して一括更新する
    • 次のパラメータを使用して、SSM ドキュメント AWS-ConfigureAWSPackage を介して一括更新を実行します。

      • [Name] (名前): AwsEnaNetworkDriver

      • バージョン: 2.2.3

2021 年 10 月 26 日

2.2.3

新機能

  • 最大 400 Gbps インスタンスネットワーキングを備えた新しい Nitro Card のサポートを追加します。

バグ修正

  • ハードウェア応答不能の誤検出発生の原因となっていた、ENA ドライバによるシステム時刻の変更とシステム時刻クエリとの競合状態を修正します。

Windows ENA ドライババージョン 2.2.3 は、Windows Server 2008 R2 をサポートする最後のバージョンです。現時点で ENA を利用可能なインスタンスタイプは、引き続き Windows Server 2008 R2 でサポートされ、ドライバをダウンロードすることができます。今後、Windows Server 2008 R2 をサポートするインスタンスタイプはリリースされません。また、将来のインスタンスタイプに対し、Windows Server 2008 R2 イメージをインポートおよび移行して、起動することはできません。

2021 年 3 月 25 日

2.2.2

新機能

  • CloudWatch と、Windows コンシューマー用のパフォーマンスカウンターを使用したネットワークアダプターのパフォーマンスメトリクスのクエリに対するサポートを追加します。

バグ修正

  • ベアメタルインスタンスでのパフォーマンスの問題が修正されました。

2020 年 12 月 21 日

2.2.1

新機能

  • ホストが Elastic Network Adapter にネットワークパフォーマンスメトリクスをクエリできるようにするメソッドを追加します。

2020 年 10 月 1 日

2.2.0

新機能

  • 次世代ハードウェアタイプのサポートを追加しました。

  • stop-hibernate から再開後のインスタンスの開始時間を短縮し、誤検出の ENA エラーメッセージを排除しました。

パフォーマンスの最適化

  • 受信トラフィックの処理を最適化しました。

  • 低リソース環境での共有メモリ管理を改良しました。

バグ修正

  • ドライバーのリセットに失敗するまれなシナリオで、ENA デバイスの取り外し時のシステムクラッシュが解消されました。

2020 年 8 月 12 日

2.1.5

バグ修正

  • ベアメタルインスタンスでときどき発生するネットワークアダプタの初期化エラーを修正します。

2020 年 6 月 23 日

2.1.4

バグ修正

  • ネットワークスタックから届く破損 LSO パケットメタデータに起因する接続問題が解消されました。

  • すでにリリースされているパケットメモリへのアクセスを生じさせる、まれな競合条件に起因するシステムクラッシュが解消されました。

2019 年 11 月 25 日

2.1.2

新機能

  • OS が MAC ベースの UUID を生成できるように、ベンダー ID レポートのサポートを追加しました。

バグ修正

  • 初期化中の DHCP ネットワーク設定パフォーマンスを改善しました。

  • 最大送信単位 (MTU) が 4K を超える場合、インバウンド IPv6 トラフィックの L4 チェックサムを適切に計算します。

  • ドライバの安定性の全般的な改善と軽微なバグの修正。

2019 年 11 月 4 日

2.1.1

バグ修正
  • オペレーティングシステムから着信する高度にフラグメント化された TCP LSO パケットの削除を防ぎます。

  • IPv6 ネットワークの IPSec 内で、カプセル化セキュリティペイロード (ESP) プロトコルを適切に処理します。

2019 年 9 月 16 日

2.1.0

ENA Windows ドライバー v2.1 は、新しい ENA デバイス機能を提供し、パフォーマンスの向上をもたらします。また、複数の新機能を加え、安定性に関する複数の機能強化を行っています。
  • 新機能

    • Jumbo Frames 設定で標準化された Windows レジストリキーを使用。

    • ENA ドライバープロパティ GUI を介した VLAN ID 設定が可能。

    • 復旧フローの改善

      • 失敗を識別する機構を改善。

      • 調整可能な復旧パラメータのサポートを追加。

    • vCPU 数が 8 台を超える新しい EC2 インスタンスで I/O キューを最大 32 個までサポート。

    • ドライバーのメモリ占有領域を最大 90% 削減。

  • パフォーマンスの最適化

    • 転送パスのレイテンシーの短縮。

    • 受信チェックサムオフロードのサポート。

    • 負荷が大きいシステムのパフォーマンスの最適化 (ロック機構の使用の最適化)。

    • CPU 使用率を低減させて負荷時のシステム応答を改善するための機能強化。

  • バグ修正

    • 連続しない Tx ヘッダーの無効な解析に伴うクラッシュを修正。

    • ベアメタルインスタンスにおける Elastic Network Interface デタッチ中のドライバー v1.5 のクラッシュを修正。

    • IPv6 での LSO 疑似ヘッダーチェックサム計算エラーを修正。

    • 初期化の失敗時に起こり得るメモリリソースリークの修正。

    • IPv4 フラグメントの TCP/UDP チェックサムオフロードを無効化。

    • VLAN 設定の修正。VLAN の優先度のみを無効化すべきときに VLAN が間違って無効化されていました。

    • イベントビューアーによるカスタムドライバーメッセージの正しい解析を有効化。

    • 無効なタイムスタンプ処理に伴うドライバーの初期化エラーを修正。

    • データ処理と ENA デバイス無効化との間の競合状態を修正。

2019 年 7 月 1 日

1.5.0

  • 安定性の向上およびパフォーマンス修正。

  • [Receive Buffers] は、ENA NIC の [Advanced Properties] で最大 8192 に設定できるようになりました。

  • デフォルトの [Receive Buffers] は 1000 です。

2018 年 10 月 4 日

1.2.3

信頼性の修正が含まれ、Windows Server 2016 から Windows Server 2008 R2 のサポート内容を統合します。

2018 年 2 月 13 日

1.0.8

初回リリース。Windows Server 2008 R2、Windows Server 2012 RTM、Windows Server 2012 R2、および Windows Server 2016 用の AMI が含まれています。

2016年7月日

EC2 Windows ドライバーの新しいバージョンがリリースされたときには、Amazon SNS から通知を受け取ることができます。このような通知をサブスクライブするには、以下の手順を使用します。

EC2 の通知をサブスクライブするには
  1. Amazon SNS コンソール(https://console.aws.amazon.com/sns/v3/home)を開きます。

  2. ナビゲーションバーで、必要に応じて、リージョンを [米国東部 (バージニア北部)] に変更します。購読する SNS 通知がこのリージョンにあるため、このリージョンを選択する必要があります。

  3. ナビゲーションペインで [Subscriptions] を選択します。

  4. [Create subscription] を選択します。

  5. [Create subscription] ダイアログボックスで、次の操作を行います。

    1. [TopicARN] では、次の Amazon リソースネーム (ARN) をコピーします。

      arn:aws:sns:us-east-1:801119661308:ec2-windows-drivers

    2. [プロトコル] で Email を選択します。

    3. [Endpoint] に、通知を受信するために使用できる E メールアドレスを入力します。

    4. [Create subscription] を選択します。

  6. 確認メールが送信されます。E メールを開き、指示に従ってサブスクリプションを完了します。

サブスクライバには、EC2 Windows ドライバーの新しいバージョンがリリースされるたびに、通知が送信されます。通知が不要になった場合は、次の手順で受信登録を解除します。

Amazon EC2 Windows ドライバー通知から受信登録を解除するには
  1. Amazon SNS コンソール(https://console.aws.amazon.com/sns/v3/home)を開きます。

  2. ナビゲーションペインで [Subscriptions] を選択します。

  3. サブスクリプションのチェックボックスを選択し、[アクション]、[サブスクリプションの削除] を選択します。確認を求めるメッセージが表示されたら、[削除] を選択します。