EC2 インスタンスで Intel 82599 VF インターフェイスを使用して拡張ネットワーキングを有効にする - Amazon Elastic Compute Cloud

EC2 インスタンスで Intel 82599 VF インターフェイスを使用して拡張ネットワーキングを有効にする

Amazon EC2 は Intel 82599 VF インターフェイスを通じて拡張ネットワーキング機能を提供しますが、この機能では Intel ixgbevf ドライバーを使用します。

要件

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

  • サポートされているインスタンスタイプ C3、C4、D2、I2、M4 (m4.16xlarge を除く)、R3 から選択します。

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

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

  • Linux インスタンス – Linux カーネルバージョン 2.6.32 以降を使用して、HVM AMI からインスタンスを起動します。最新の Amazon Linux HVM AMI では、拡張ネットワーキングに必要なモジュールがインストールされており、必要な属性も設定されています。したがって、最新の Amazon Linux HVM AMI を使用して、拡張ネットワーキングがサポートされている Amazon EBS–backed インスタンスを起動した場合は、インスタンスで拡張ネットワーキングが既に有効化されています。

    警告

    拡張ネットワーキングは、HVM インスタンスでのみサポートされています。PV インスタンスで拡張ネットワーキングを有効にすると、このインスタンスに到達できなくなります。また、適切なモジュールまたはモジュールバージョンを使用せずにこの属性を設定すると、インスタンスにアクセスできなくなる場合があります。

  • Windows インスタンス – 64 ビット HVM AMI からインスタンスを起動します。Windows Server 2008 では拡張ネットワーキングを有効にできません。Windows Server 2012 R2 および Windows Server 2016 以降の AMI では、拡張ネットワーキングが既に有効になっています。Windows Server 2012 R2 にはインテルドライバー 1.0.15.3 が含まれており、Pnputil.exe ユーティリティを使用してそのドライバーを最新のバージョンにアップグレードすることをお勧めします。

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

ドライバーがインストールされていることを確認する

インスタンスにドライバーがインストールされていることを確認します。

Linux ネットワークインターフェイスドライバー

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

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

[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

この例では、ixgbevf モジュールがロードされます。このインスタンスでは、拡張ネットワーキングが適切に設定されています。

[ec2-user ~]$ ethtool -i eth0 driver: ixgbevf version: 4.0.3 firmware-version: N/A bus-info: 0000:00:03.0 supports-statistics: yes supports-test: yes supports-eeprom-access: no supports-register-dump: yes supports-priv-flags: no
Windows ネットワークアダプター

ドライバーがインストールされていることを確認するには、インスタンスに接続し、デバイス マネージャーを開きます。Intel(R) 82599 Virtual Functionが 「ネットワーク アダプター」 の下に表示されていることを確認します。

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

sriovNetSupport 属性が設定されていることを確認します。

インスタンス属性 (sriovNetSupport)

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

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

    aws ec2 describe-instance-attribute --instance-id instance_id --attribute sriovNetSupport
  • Get-EC2InstanceAttribute (AWS Tools for Windows PowerShell)

    Get-EC2InstanceAttribute -InstanceId instance-id -Attribute sriovNetSupport
イメージ属性 (sriovNetSupport)

AMI に拡張ネットワーキングの sriovNetSupport 属性が既に設定されているかどうかを確認するには、次のいずれかのコマンドを使用します。属性が設定されている場合、値は simple になります。

  • describe-images (AWS CLI)

    aws ec2 describe-images --image-id ami_id --query "Images[].SriovNetSupport"
  • Get-EC2Image (AWS Tools for Windows PowerShell)

    (Get-EC2Image -ImageId ami-id).SriovNetSupport

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

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

警告

拡張ネットワーキング属性は、いったん有効にすると無効にする方法はありません。

最新の Amazon Linux HVM AMI では、拡張ネットワーキングに必要な ixgbevf モジュールがインストールされており、必要な sriovNetSupport 属性も設定されています。したがって、最新の Amazon Linux HVM AMI を使用してインスタンスタイプを起動した場合は、拡張ネットワーキングが既にインスタンスに対して有効になっています。詳細については、拡張ネットワーキングが有効化されているかどうかのテストを参照してください。

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

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

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

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

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

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

    [Instance store-backed インスタンス] インスタンスを停止して属性を変更することはできません。代わりに、次の手順に進みます。

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

    AWS CLI

    modify-instance-attribute (AWS CLI)

    aws ec2 modify-instance-attribute --instance-id instance_id --sriov-net-support simple
    PowerShell

    Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell)

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

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

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

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

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

AWS CLI

register-image (AWS CLI/AWS CloudShell)

aws ec2 register-image --sriov-net-support simple ...
PowerShell

Register-EC2Image (AWS Tools for Windows PowerShell)

Register-EC2Image -SriovNetSupport "simple" ...

開始する前に、インスタンスで拡張ネットワーキングがすでに有効になっているかどうかを確認します。

クイックスタート Ubuntu HVM AMI には、拡張ネットワーキングに必要なドライバーが搭載されています。ixgbevf 2.16.4 より前のバージョンを使用している場合は、linux-aws カーネルパッケージをインストールして最新の拡張ネットワーキングドライバーを取得できます。

以下の手順は、Ubuntu インスタンスで ixgbevf モジュールをコンパイルするための一般的なステップを示しています。

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

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

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

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

開始する前に、インスタンスで拡張ネットワーキングがすでに有効になっているかどうかを確認します。最新のクイックスタート HVM AMI には、拡張ネットワーキングに必要なドライバーが含まれているため、追加ステップを実行する必要はありません。

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

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

  2. Sourceforge (https://sourceforge.net/projects/e1000/files/ixgbevf%20stable/) からインスタンスに ixgbevf モジュールのソースをダウンロードします。

    ixgbevf の 2.16.4 より前のバージョン (バージョン 2.14.2 を含む) は、一部の Linux ディストリビューション (特定のバージョンの Ubuntu など) では適切にビルドされません。

  3. インスタンスで ixgbevf モジュールをコンパイルし、インストールします。

    警告

    現在のカーネルに ixgbevf モジュールをコンパイルし、新しいカーネルをドライバを再構築しないで更新すると、システムは次回の再起動の際にディストリビューション固有の ixgbevf モジュールに戻る場合があります。これにより、ディストリビューション固有のバージョンが拡張ネットワーキングと互換性がない場合に、システムに接続できなくなります。

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

  5. 起動時に新しいモジュールがロードされるように、インスタンスの initramfs を更新します。

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

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

      [ec2-user ~]$ 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 行に追加することによって、予測可能なネットワークインターフェイス名を無効にします。

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

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

    [Instance store-backed インスタンス] インスタンスを停止して属性を変更することはできません。代わりに、次の手順に進みます。

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

    AWS CLI

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

    aws ec2 modify-instance-attribute --instance-id instance_id --sriov-net-support simple
    PowerShell

    Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell)

    Edit-EC2InstanceAttribute -InstanceId instance_id -SriovNetSupport "simple"
  9. (オプション) Amazon EBS-backed AMI を作成するの説明に従って、インスタンスから AMI を作成します。AMI は、インスタンスから拡張ネットワーキング属性を継承します。このため、この 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. (オプション) インスタンスに接続し、モジュールがインストールされていることを確認します。

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

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

AWS CLI

register-image (AWS CLI/AWS CloudShell)

aws ec2 register-image --sriov-net-support simple ...
PowerShell

Register-EC2Image (AWS Tools for Windows PowerShell)

Register-EC2Image -SriovNetSupport "simple" ...

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

重要

Windows AMI の最新のドライバーアップデートを確認するには、AWS Windows AMI リファレンスの「Windows AMI のバージョン履歴」を参照してください。

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

  2. [Windows Server 2016 以降] ドライバーがインストールされたら以下の EC2 Launch PowerShell スクリプトを実行し、インスタンスを設定します。

    PS C:\> C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 -Schedule
    重要

    管理者パスワードは、インスタンス初期化 EC2 Launch スクリプトを有効にするとリセットされます。初期化タスクの設定で指定することで、管理者パスワードのリセットを無効にするように設定ファイルを変更できます。

  3. インスタンスから、OS 用の Intel ネットワークアダプタードライバーをダウンロードします。

    • [Windows Server 2022]

      ダウンロードページWired_driver_version_x64.zip のダウンロードを見てください。

    • Windows Server 2019 Server バージョン 1809 以降を含む*

      ダウンロードページWired_driver_version_x64.zip のダウンロードを見てください。

    • Windows Server 2016 Server バージョン 1803 以前を含む*

      ダウンロードページWired_driver_version_x64.zip のダウンロードを見てください。

    • [Windows Server 2012 R2

      ダウンロードページWired_driver_version_x64.zip のダウンロードを見てください。

    • Windows Server 2012

      ダウンロードページWired_driver_version_x64.zip のダウンロードを見てください。

    • Windows Server 2008 R2

      ダウンロードページPROWinx64Legacy.exe のダウンロードを見てください。

    *Server バージョン 1803 以前および 1809 以降は、Intel のドライバーおよびソフトウェアのページでは特に扱われていません。

  4. OS 用の Intel ネットワークアダプタードライバーをインストールします。

    • Windows Server 2008 R2

      1. ダウンロードフォルダで、PROWinx64Legacy.exe ファイルを見つけて、名前を PROWinx64Legacy.zip に変更します。

      2. PROWinx64Legacy.zip ファイルの内容を展開します。

      3. コマンドラインを開き、抽出されたフォルダに移動し、pnputil ユーティリティを使用して次のコマンドを実行して、ドライバーストアで INF ファイルを追加およびインストールします。

        C:\> pnputil -a PROXGB\Winx64\NDIS62\vxn62x64.inf
    • Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、および Windows Server 2012

      1. ダウンロードフォルダで、Wired_driver_version_x64.zip ファイルの内容を展開します。

      2. 抽出されたフォルダで、Wired_driver_version_x64.exe ファイルを見つけて、名前を Wired_driver_version_x64.zip に変更します。

      3. Wired_driver_version_x64.zip ファイルの内容を展開します。

      4. コマンドラインを開き、抽出されたフォルダに移動し、pnputil ユーティリティを使用して次のコマンドのいずれかを実行して、ドライバーストアで INF ファイルを追加およびインストールします。

        • Windows Server 2022

          C:\> pnputil -i -a PROXGB\Winx64\WS2022\vxs.inf
        • Windows Server 2019

          C:\> pnputil -i -a PROXGB\Winx64\NDIS68\vxn68x64.inf
        • Windows Server 2016

          C:\> pnputil -i -a PROXGB\Winx64\NDIS65\vxn65x64.inf
        • Windows Server 2012 R2

          C:\> pnputil -i -a PROXGB\Winx64\NDIS64\vxn64x64.inf
        • Windows Server 2012

          C:\> pnputil -i -a PROXGB\Winx64\NDIS63\vxn63x64.inf
  5. ローカルコンピュータから、次のいずれかのコマンドを使用して拡張ネットワーキングの属性を有効化します。

    AWS CLI

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

    aws ec2 modify-instance-attribute --instance-id instance_id --sriov-net-support simple
    PowerShell

    Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell)

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

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

接続に関する問題のトラブルシューティング

拡張ネットワーキングを有効化しているときに接続が失われると、ixgbevf モジュールとカーネルの互換性が保たれない可能性があります。この場合、インスタンスの Linux ディストリビューションに含まれる ixgbevf モジュールのバージョンをインストールしてみます。

PV インスタンスまたは AMI で拡張ネットワーキングを有効にすると、お使いのインスタンスに到達できなくなります。

詳細については、「EC2 インスタンスで拡張ネットワーキングを有効化および設定する方法」を参照してください。