EC2 인스턴스에서 Elastic Network Adapter(ENA)로 향상된 네트워킹 지원 - Amazon Elastic Compute Cloud

EC2 인스턴스에서 Elastic Network Adapter(ENA)로 향상된 네트워킹 지원

Amazon EC2는 ENA(Elastic Network Adapter)를 통해 향상된 네트워킹을 제공합니다. 향상된 네트워킹을 사용하려면 필수 ENA 모듈을 설치하고 ENA 지원을 활성화해야 합니다.

요구 사항

ENA를 사용하여 향상된 네트워킹을 준비하려면 인스턴스를 다음과 같이 설정하세요.

  • AWS Nitro 시스템에 구축된 인스턴스를 시작합니다.

  • 인스턴스가 인터넷에 연결되어 있는지 확인합니다.

  • 인스턴스에 보존해야 할 중요한 데이터가 있는 경우 인스턴스에서 AMI를 만들어 데이터를 백업해야 합니다. 커널 및 커널 모듈 업데이트 외에도 enaSupport 속성을 활성화하면 호환되지 않는 인스턴스나 운영 체제에 접속할 수 없게 됩니다. 최신 백업을 확보하면 이 경우에도 데이터를 보존할 수 있습니다.

  • Linux 인스턴스 – 지원되는 Linux 커널 버전과 지원되는 배포판을 사용하여 인스턴스를 시작하면 인스턴스에 대해 ENA 향상된 네트워킹이 자동으로 사용 설정됩니다. 자세한 내용은 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 이상

  • Ubuntu 14.04 이상(linux-aws 커널 포함)

    참고

    Ubuntu 18.04 이상(linux-aws 커널 포함)이 필요한 AWS Graviton 기반 인스턴스 유형

  • 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 지원이 활성화되어 있습니다. 따라서 지원되는 인스턴스 유형에서 Amazon Linux의 HVM 버전을 사용하여 인스턴스를 시작하면, 확장 네트워크 기능이 이미 해당 인스턴스에서 활성화된 상태입니다. 자세한 내용은 향상된 네트워킹 기능 활성화 여부 테스트 섹션을 참조하세요.

구형 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. 인스턴스에 다시 연결하고 ena에서 modinfo ena 명령을 사용하여 향상된 네트워킹 기능 활성화 여부 테스트 모듈이 설치되어 있고 최소 권장 버전 요건을 충족하는지를 확인합니다.

  5. [EBS 지원 인스턴스] 로컬 컴퓨터에서 Amazon EC2 콘솔을 사용하거나 stop-instances(AWS CLI) 또는 Stop-EC2Instance(AWS Tools for Windows PowerShell) 명령 중 하나를 사용하여 인스턴스를 중지합니다. 인스턴스를 AWS OpsWorks에서 관리할 경우 AWS OpsWorks 콘솔에서 인스턴스를 중지해야 인스턴스 상태가 동기화됩니다.

    [인스턴스 스토어 지원 인스턴스] 속성을 수정하기 위해 인스턴스를 중지할 수 없습니다. 그 대신 이 절차(Amazon Linux AMI에서 향상된 네트워킹을 활성화하려면(인스턴스 스토어 지원 인스턴스))로 넘어가세요.

  6. 사용자의 로컬 컴퓨터에서 다음 명령 중 하나를 사용하여 확장 네트워크 속성을 활성화합니다.

  7. (선택 사항) 의 설명에 따라 인스턴스에서 AMI를 생성합니다Amazon EBS 지원 AMI 생성 생성된 AMI는 인스턴스의 향상된 네트워킹 enaSupport 속성을 상속합니다. 따라서 이 AMI를 사용하여 기본적으로 향상된 네트워킹 기능이 활성화된 상태로 다른 인스턴스를 시작할 수 있습니다.

  8. 로컬 컴퓨터에서 Amazon EC2 콘솔을 사용하거나 start-instances(AWS CLI) 또는 Start-EC2Instance(AWS Tools for Windows PowerShell) 명령 중 하나를 사용하여 인스턴스를 시작합니다. 인스턴스를 AWS OpsWorks에서 관리할 경우 AWS OpsWorks 콘솔에서 인스턴스를 시작해야 인스턴스 상태가 동기화됩니다.

  9. 인스턴스에 연결하고 ena에서 ethtool -i ethn 명령을 사용하여 향상된 네트워킹 기능 활성화 여부 테스트 모듈이 설치되어 있고 네트워크 인터페이스에 로드되었는지 확인합니다.

    향상된 네트워킹을 활성화한 이후에 인스턴스에 연결할 수 없는 경우 Linux에서 Elastic Network Adapter 문제 해결 단원을 참조하세요.

Amazon Linux AMI에서 향상된 네트워킹을 활성화하려면(인스턴스 스토어 지원 인스턴스)

이전 절차에서 인스턴스를 중지한 단계까지 진행합니다. 인스턴스 스토어 기반 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 지원 인스턴스] 로컬 컴퓨터에서 Amazon EC2 콘솔을 사용하거나 stop-instances(AWS CLI) 또는 Stop-EC2Instance(AWS Tools for Windows PowerShell) 명령 중 하나를 사용하여 인스턴스를 중지합니다. 인스턴스를 AWS OpsWorks에서 관리할 경우 AWS OpsWorks 콘솔에서 인스턴스를 중지해야 인스턴스 상태가 동기화됩니다.

    [인스턴스 스토어 지원 인스턴스] 속성을 수정하기 위해 인스턴스를 중지할 수 없습니다. 그 대신 이 절차(Ubuntu에서 확장 네트워킹 기능을 사용하려면(인스턴스 스토어 지원 인스턴스))로 넘어가세요.

  4. 사용자의 로컬 컴퓨터에서 다음 명령 중 하나를 사용하여 확장 네트워크 속성을 활성화합니다.

  5. (선택 사항) 의 설명에 따라 인스턴스에서 AMI를 생성합니다Amazon EBS 지원 AMI 생성 생성된 AMI는 인스턴스의 향상된 네트워킹 enaSupport 속성을 상속합니다. 따라서 이 AMI를 사용하여 기본적으로 향상된 네트워킹 기능이 활성화된 상태로 다른 인스턴스를 시작할 수 있습니다.

  6. 로컬 컴퓨터에서 Amazon EC2 콘솔을 사용하거나 start-instances(AWS CLI) 또는 Start-EC2Instance(AWS Tools for Windows PowerShell) 명령 중 하나를 사용하여 인스턴스를 시작합니다. 인스턴스를 AWS OpsWorks에서 관리할 경우 AWS OpsWorks 콘솔에서 인스턴스를 시작해야 인스턴스 상태가 동기화됩니다.

Ubuntu에서 확장 네트워킹 기능을 사용하려면(인스턴스 스토어 지원 인스턴스)

이전 절차에서 인스턴스를 중지한 단계까지 진행합니다. 인스턴스 스토어 기반 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. 의 GitHub에서 인스턴스의 ena 모듈에 대한 소스 코드를 복제합니다..https://github.com/amzn/amzn-drivers (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 Instance에서 강화된 네트워크 지원을 받기 위해 최신 ENS 드라이버를 설치하려면 어떻게 해야 합니까?를 참조하세요.

  4. 모듈 종속성을 갱신하려면 sudo depmod 명령을 실행합니다.

  5. 인스턴스에서 initramfs를 업데이트하여 부팅 시 새 모듈이 로드되도록 합니다. 예를 들어 배포에서 dracut을 지원하는 경우 다음 명령을 사용할 수 있습니다.

    dracut -f -v
  6. 시스템이 예측 가능한 네트워크 인터페이스 이름을 기본으로 사용하는지 확인합니다. 사용하는 systemd 또는 udev 버전이 197 이상인 시스템에서는 이더넷 디바이스의 이름 변경이 가능해 단일 네트워크 인터페이스가 아닌 경우에도 eth0 이름이 할당될 수 있습니다. 이에 따라 인스턴스 연결에 문제가 발생할 수 있습니다. 자세한 내용과 다른 구성 옵션을 보려면 freedesktop.org 웹 사이트에서 예측 가능한 네트워크 인터페이스 이름을 참조하세요.

    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=0GRUB_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 지원 인스턴스] 로컬 컴퓨터에서 Amazon EC2 콘솔을 사용하거나 stop-instances(AWS CLI) 또는 Stop-EC2Instance(AWS Tools for Windows PowerShell) 명령 중 하나를 사용하여 인스턴스를 중지합니다. 인스턴스를 AWS OpsWorks에서 관리할 경우 AWS OpsWorks 콘솔에서 인스턴스를 중지해야 인스턴스 상태가 동기화됩니다.

    [인스턴스 스토어 지원 인스턴스] 속성을 수정하기 위해 인스턴스를 중지할 수 없습니다. 그 대신 이 절차(Linux에서 향상된 네트워킹을 사용하려면(인스턴스 스토어 지원 인스턴스))로 넘어가세요.

  8. 사용자의 로컬 컴퓨터에서 다음 명령 중 하나를 사용하여 확장 네트워크 enaSupport 속성을 활성화합니다.

  9. (선택 사항) 의 설명에 따라 인스턴스에서 AMI를 생성합니다Amazon EBS 지원 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에서 향상된 네트워킹을 사용하려면(인스턴스 스토어 지원 인스턴스)

이전 절차에서 인스턴스를 중지한 단계까지 진행합니다. 인스턴스 스토어 기반 Linux AMI 생성에 설명된 것처럼 새 AMI를 생성하고, AMI를 등록할 때 향상된 네트워킹 속성을 활성화합니다.

이 방법은 테스트 및 피드백 목적으로만 사용됩니다. 프로덕션 배포에 사용하기 위한 것이 아닙니다. 프로덕션 배포는 Ubuntu를 참조하세요.

중요

DKMS를 사용하면 구독에 대한 지원 계약이 무효화됩니다. 프로덕션 배포에는 사용할 수 없습니다.

Ubuntu에서 ENA를 사용하여 향상된 네트워킹 기능을 활성화하려면(EBS 지원 인스턴스)
  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. ena 버전을 대체하여 다음 값을 사용하여 DKMS 구성 파일을 생성합니다.

    파일을 생성합니다.

    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. ena의 modinfo 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를 실행한 다음 install.ps1 PowerShell 스크립트를 다시 실행하세요.

  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 지원 속성을 확인합니다. 이 속성이 활성 상태가 아니면 "[]" 또는 공백이 출력됩니다. 기본적으로 EnaSupportfalse로 설정됩니다.

      • 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. 이전 설명과 같이 true 또는 describe-instances를 사용하여 속성이 Get-EC2Instance로 설정되어 있는지 확인합니다. 이제 다음 결과가 표시됩니다.

      [ 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. 세부 정보를 선택합니다. 네트워크 연결 세부 정보(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(Low Latency Queuing) 헤더 크기를 초과하는 헤더가 포함된 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 서버는 영향을 받지 않습니다.

2023년 2월 17일

2.4.0

새로운 기능

  • Windows Server 2022에 대한 지원을 추가합니다.

  • Windows Server 2008 R2에 대한 지원을 제거합니다.

  • 6세대 Amazon EC2 인스턴스의 성능을 개선하려면 짧은 지연 시간 큐잉(LLQ)을 항상 켜기로 설정합니다.

버그 수정

  • PCW(Windows용 성능 카운터) 시스템에 네트워크 성능 지표를 게시하지 못하는 문제를 수정합니다.

  • 레지스트리 키 읽기 작업 중 메모리 누수를 수정합니다.

  • 어댑터 재설정 프로세스 중에 복구할 수 없는 오류가 발생하는 경우 무한 재설정 루프를 방지합니다.

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를 통해 대량 업데이트를 수행합니다.

      • 이름: AwsEnaNetworkDriver

      • 버전: 2.2.3

2021년 10월 26일

2.2.3

새로운 기능

  • 최대 400Gbps의 인스턴스 네트워킹을 제공하는 새로운 Nitro Card에 대한 지원이 추가됩니다.

버그 수정

  • 시스템 시간 변경과 시스템 시간 쿼리 ENA 드라이버의 시스템 시간 쿼리 간의 경쟁 조건을 수정하여 HW 무응답의 거짓 탐지를 방지했습니다.

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

새로운 기능

  • 차세대 하드웨어 유형에 대한 지원을 추가합니다.

  • 중지-최대 절전 모드에서 재개한 후 인스턴스 시작 시간을 개선하고 오탐지 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 디바이스 기능을 도입하고 성능 향상을 제공하며 새로운 기능을 추가하고 여러 안정성 개선 기능을 포함합니다.
  • 새로운 기능

    • 점보 프레임 구성에 표준화된 Windows 레지스트리 키를 사용합니다.

    • ENA 드라이버 속성 GUI를 통한 VLAN ID 설정을 허용합니다.

    • 복구 흐름이 개선되었습니다.

      • 결함 식별 메커니즘이 개선되었습니다.

      • 튜닝 가능한 복구 파라미터에 대한 지원이 추가되었습니다.

    • vCPU가 8개 이상인 최신 EC2 인스턴스의 경우 최대 32개의 I/O 대기열을 지원합니다.

    • 드라이버 메모리 공간 90%까지 절감

  • 성능 최적화

    • 전송 경로 지연 시간 감소

    • 수신 체크섬 오프로드를 지원합니다.

    • 과다 로드된 시스템(잠금 메커니즘의 사용 최적화)을 위한 성능 최적화

    • CPU 사용률을 줄이고 로드 시 시스템 응답 속도를 개선하는 추가 향상 기능

  • 버그 수정

    • 불연속 Tx 헤더의 유효하지 않은 구문 분석으로 인한 충돌을 수정했습니다.

    • Bare Metal 인스턴스에서 탄력적 네트워크 인터페이스 분리 중 드라이버 v1.5 충돌 문제를 수정했습니다.

    • IPv6에 대한 LSO 의사 헤더 체크섬 계산 오류를 수정했습니다.

    • 초기화 실패 시 잠재적인 메모리 리소스 유출을 수정했습니다.

    • IPv4 조각에 대한 TCP/UDP 체크섬 오프로드를 비활성화했습니다.

    • VLAN 구성에 대해 수정했습니다. VLAN 우선 순위만 비활성화해야 한 경우 VLAN이 잘못 비활성화되었습니다.

    • 이벤트 뷰어로 사용자 지정 드라이버 메시지의 올바른 구문 분석을 활성화했습니다.

    • 잘못된 타임스탬프 처리로 인한 드라이버 초기화 실패 문제를 수정했습니다.

    • 데이터 처리 및 ENA 디바이스 비활성화 사이의 교착 상태를 수정했습니다.

2019년 7월 1일

1.5.0

  • 안정성 및 성능 수정 사항이 개선되었습니다.

  • 이제, ENA NIC의 고급 속성에서 수신 버퍼를 최대 8192의 값으로 구성할 수 있습니다.

  • 기본 수신 버퍼는 1k입니다.

2018년 10월 4일

1.2.3

안정성 수정 사항이 포함되고, Windows Server 2008 R2부터 Windows Server 2016에 이르는 지원을 통합합니다.

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 Driver 버전이 릴리스되면 이를 알리도록 Amazon SNS를 설정할 수 있습니다. 알림을 받으려면 다음 절차를 수행합니다.

EC2 알림을 받으려면
  1. https://console.aws.amazon.com/sns/v3/home에서 Amazon SNS 콘솔을 엽니다.

  2. 필요한 경우 탐색 모음에서 리전을 미국 동부(버지니아 북부)로 변경합니다. 구독을 신청하는 SNS 알림이 이 지역에 있기 때문에 이 지역을 선택해야 합니다.

  3. 탐색 창에서 구독을 선택합니다.

  4. Create subscription을 선택합니다.

  5. 구독 생성 대화 상자에서 다음 작업을 수행합니다.

    1. TopicARN의 경우, 다음 Amazon 리소스 이름(ARN)을 복사합니다.

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

    2. 프로토콜에서 Email을 선택합니다.

    3. 엔드포인트에는 알림을 받는 데 사용할 수 있는 이메일 주소를 입력합니다.

    4. Create subscription을 선택합니다.

  6. 확인 이메일이 발송됩니다. 이메일을 열고 지침에 따라 구독을 완료합니다.

새 EC2 Windows 드라이버가 릴리스될 때마다 구독자에게 알림이 전송됩니다. 이런 알림을 더 이상 받지 않기를 원하는 경우, 다음 절차를 수행해서 구독을 해제하세요.

Amazon EC2 Windows 드라이버 알림을 구독 해제하려면
  1. https://console.aws.amazon.com/sns/v3/home에서 Amazon SNS 콘솔을 엽니다.

  2. 탐색 창에서 구독을 선택합니다.

  3. 구독 확인란을 선택한 후 작업, 구독 삭제를 선택합니다. 확인 메시지가 나타나면 삭제를 선택합니다.