Snow Family デバイス上のコンピューティングインスタンスのネットワーク設定 - AWS Snowball Edge 開発者ガイド

Snow Family デバイス上のコンピューティングインスタンスのネットワーク設定

Snow Family デバイスでコンピューティングインスタンスを起動した後、ネットワークインターフェイスを作成して IP アドレスを指定する必要があります。Snow Family デバイスは、仮想ネットワークインターフェイスとダイレクトネットワークインターフェイスの 2 種類のネットワークインターフェイスをサポートします。

仮想ネットワークインターフェイス (VNI) – 仮想ネットワークインターフェイスは、Snow Family デバイス上の EC2 互換インスタンスに接続するための標準ネットワークインターフェイスです。ダイレクトネットワークインターフェイスを使用するかどうかにかかわらず、各 EC2 互換インスタンスに対して VNI を作成する必要があります。VNI を通過するトラフィックは、設定したセキュリティグループによって保護されます。VNI は、Snow Family デバイスの制御に使用する物理ネットワークポートにのみ関連付けることができます。

注記

VNI は Snow Family デバイスの管理に使用されているものと同じ物理インターフェイス (RJ45、SFP+、または QSFP) を使用します。デバイス管理に使用しているものとは異なる物理インターフェイスで VNI を作成すると、予期しない結果が生じる可能性があります。

ダイレクトネットワークインターフェイス (DNI) – ダイレクトネットワークインターフェイス (DNI) は、マルチキャストストリーム、推移的ルーティング、ロードバランシングなどのユースケースを可能にする高度なネットワーク機能です。中間変換やフィルタリングなしでインスタンスにレイヤー 2 ネットワークアクセスを提供することで、Snow Family デバイスのネットワーク構成に対する柔軟性を高め、ネットワークパフォーマンスを向上させることができます。DNI は VLAN タグと MAC アドレスのカスタマイズをサポートします。DNI 上のトラフィックは、セキュリティグループによって保護されません。

Snowball Edge デバイスでは、DNI を RJ45、SFP、または QSFP ポートに関連付けることができます。各物理ポートは最大 63 の DNI をサポートします。DNI は、Snow Family デバイスの制御に使用するのと同じ物理ネットワークポートに関連付ける必要はありません。

注記

Snowball Edge ストレージ最適化 (EC2 コンピューティング機能搭載) デバイスは DNI をサポートしません。

Snow Family デバイス上の DNI または VNI の前提条件

VNI または DNI を設定する前に、次の前提条件が満たされていることを確認します。

  1. デバイスの電源がオンになっており、物理的なネットワークインターフェイス (RJ45 ポートなど) のいずれかが IP アドレスと接続されていることを確認します。

  2. Snow Family デバイスで使用している物理ネットワークインターフェイスに関連付けられている IP アドレスを取得します。

  3. Snowball Edge クライアントを設定します。詳細については、「Snowball Edge クライアント用プロファイルの設定」を参照してください。

  4. AWS CLI を設定します。詳細については、「AWS Command Line Interface ユーザーガイド」の「Getting started with the AWS CLI」を参照してください。

  5. デバイスのロックを解除します。

  6. デバイス上の EC2 互換インスタンスを起動します。VNI をこのインスタンスに関連付けます。

  7. Snowball Edge クライアントを使用して describe-device コマンドを実行します。コマンドの出力は、物理ネットワークインターフェイス ID のリストを提供します。詳細については、「Snow Family デバイスのステータスの表示」を参照してください。

  8. 使用する物理ネットワークインターフェイスの ID を特定し、これを書き留めます。

Snow Family デバイスでの仮想ネットワークインターフェイス (VNI) の設定

物理ネットワークインターフェイスの ID を確認した後、その物理インターフェイスで仮想ネットワークインターフェイス (VNI) を設定できます。次の手順に従って、VNI を設定します。VNI を作成する前に、前提条件となるタスクを実行していることを確認してください。

VNI を作成して IP アドレスを関連付け
  1. Snowball Edge クライアントを使用して create-virtual-network-interface コマンドを実行します。以下の例では、このコマンドの実行に 2 つの異なる IP アドレス割り当て方法 (DHCPSTATIC) を使用しています。DHCP メソッドは Dynamic Host Configuration Protocol (DHCP) を使用します。

    snowballEdge create-virtual-network-interface \ --profile profile-name --physical-network-interface-id s.ni-abcd1234 \ --ip-address-assignment DHCP //OR// snowballEdge create-virtual-network-interface \ --profile profile-name --physical-network-interface-id s.ni-abcd1234 \ --ip-address-assignment STATIC \ --static-ip-address-configuration IpAddress=192.0.2.0,Netmask=255.255.255.0

    このコマンドによって、IP アドレスを含む JSON 構造が返ります。後のプロセスの ec2 associate-address AWS CLI コマンドで使用するために、この IP アドレスを書き留めます。

    この IP アドレスが必要な場合はいつでも、describe-virtual-network-interfaces Snowball Edge クライアントコマンド、または AWS CLI コマンド aws ec2 describe-addresses を使用して取得できます。

  2. AWS CLI を使用して IP アドレスを EC2 互換インスタンスに関連付け、赤いテキストを値に置き換えます。

    aws ec2 associate-address --public-ip 192.0.2.0 --instance-id s.i-01234567890123456 --endpoint http://Snow Family device physical IP address:8008

Snow Family デバイスでのダイレクトネットワークインターフェイス (DNI) の設定

注記

ダイレクトネットワークインターフェイス機能は 2021 年 1 月 12 日以降、使用可能で、Snow Family デバイスを使用できるすべての AWS リージョン で使用できます。

Snow Family デバイスでの DNI の前提条件

ダイレクトネットワークインターフェイス (DNI) を設定する前に、前提条件セクションのタスクを実行する必要があります。

  1. DNI を設定する前に、前提条件となるタスクを実行します。手順については、Snow Family デバイス上の DNI または VNI の前提条件 を参照してください。

  2. さらに、デバイスでインスタンスを起動し、VNI を作成してインスタンスに関連付ける必要があります。手順については、Snow Family デバイスでの仮想ネットワークインターフェイス (VNI) の設定 を参照してください。

    注記

    現場でソフトウェアアップデートを実行して、既存のデバイスにダイレクトネットワークを追加した場合、機能を完全に有効にするために、デバイスを2回再起動する必要があります。

DNI を作成し、IP アドレスを関連付ける
  1. 次のコマンドを実行して、ダイレクトネットワークインターフェイスを作成し、Amazon EC2 互換インスタンスにアタッチします。次のステップでは、デバイスの MAC アドレスが必要です。

    create-direct-network-interface [--endpoint endpoint] [--instance-id instanceId] [--mac macAddress] [--physical-network-interface-id physicalNetworkInterfaceId] [--unlock-code unlockCode] [--vlan vlanId]

    OPTIONS

    --endpoint <endpoint> このリクエストを送信するエンドポイント。デバイスのエンドポイントは、https スキームの後に IP アドレスが続く URL です。例えば、デバイスの IP アドレスが 123.0.1.2 の場合、デバイスのエンドポイントは https://123.0.1.2 になります。

    --instance-id <instanceId> インターフェイスをアタッチする EC2 互換インスタンス ID (オプション)。

    --mac <macAddress> ネットワークインターフェイスの MAC アドレスを設定します (オプション)。

    --physical-network-interface-id <physicalNetworkInterfaceId> 新しい仮想ネットワークインターフェイスを作成する物理ネットワークインターフェイスの ID。describe-device コマンドを使用して、Snowball Edge で使用可能な物理ネットワークインターフェイスを決定できます。

    --vlan <vlanId> インターフェイスに、割り当てられた VLAN を設定します (オプション)。指定すると、インターフェイスから送信されるすべてのトラフィックは、指定した VLAN ID でタグ付けされます。着信トラフィックは、指定した VLAN ID でフィルタリングされ、インスタンスに渡される前にすべての VLAN タグが除去されます。

  2. DNI を作成し、EC2 互換インスタンスに関連付けた後、Amazon EC2 互換インスタンス内で 2 つの設定変更を行う必要があります。

    • 1 つ目の変更は、EC2 互換インスタンスに関連付けられた VNI 用のパケットが eth0 を介して送信されるように設定することです。

    • 2 つ目の変更は、ブート時に DCHP または静的 IP を使用するようにダイレクトネットワークインターフェイスを設定することです。

    以下に、これらの設定変更を行う Amazon Linux 2 と CentOS Linux のシェルスクリプトの例を示します。

    Amazon Linux 2
    # Mac address of the direct network interface. # You got this when you created the direct network interface. DNI_MAC=[MAC ADDRESS FROM CREATED DNI] # Configure routing so that packets meant for the VNI always are sent through eth0. PRIVATE_IP=$(curl -s http://169.254.169.254/latest/meta-data/local-ipv4) PRIVATE_GATEWAY=$(ip route show to match 0/0 dev eth0 | awk '{print $3}') ROUTE_TABLE=10001 echo "from $PRIVATE_IP table $ROUTE_TABLE" > /etc/sysconfig/network-scripts/rule-eth0 echo "default via $PRIVATE_GATEWAY dev eth0 table $ROUTE_TABLE" > /etc/sysconfig/network-scripts/route-eth0 echo "169.254.169.254 dev eth0" >> /etc/sysconfig/network-scripts/route-eth0 # Query the persistent DNI name, assigned by udev via ec2net helper. # changable in /etc/udev/rules.d/70-persistent-net.rules DNI=$(ip --oneline link | grep -i $DNI_MAC | awk -F ': ' '{ print $2 }') # Configure DNI to use DHCP on boot. cat << EOF > /etc/sysconfig/network-scripts/ifcfg-$DNI DEVICE="$DNI" NAME="$DNI" HWADDR=$DNI_MAC ONBOOT=yes NOZEROCONF=yes BOOTPROTO=dhcp TYPE=Ethernet MAINROUTETABLE=no EOF # Make all changes live. systemctl restart network
    CentOS Linux
    # Mac address of the direct network interface. You got this when you created the direct network interface. DNI_MAC=[MAC ADDRESS FROM CREATED DNI] # The name to use for the direct network interface. You can pick any name that isn't already in use. DNI=eth1 # Configure routing so that packets meant for the VNIC always are sent through eth0 PRIVATE_IP=$(curl -s http://169.254.169.254/latest/meta-data/local-ipv4) PRIVATE_GATEWAY=$(ip route show to match 0/0 dev eth0 | awk '{print $3}') ROUTE_TABLE=10001 echo from $PRIVATE_IP table $ROUTE_TABLE > /etc/sysconfig/network-scripts/rule-eth0 echo default via $PRIVATE_GATEWAY dev eth0 table $ROUTE_TABLE > /etc/sysconfig/network-scripts/route-eth0 # Configure your direct network interface to use DHCP on boot. cat << EOF > /etc/sysconfig/network-scripts/ifcfg-$DNI DEVICE="$DNI" NAME="$DNI" HWADDR="$DNI_MAC" ONBOOT=yes NOZEROCONF=yes BOOTPROTO=dhcp TYPE=Ethernet EOF # Rename DNI device if needed. CURRENT_DEVICE_NAME=$(LANG=C ip -o link | awk -F ': ' -vIGNORECASE=1 '!/link\/ieee802\.11/ && /'"$DNI_MAC"'/ { print $2 }') ip link set $CURRENT_DEVICE_NAME name $DNI # Make all changes live. systemctl restart network