인스턴스에서 향상된 네트워킹 기능 활성화
사용하는 절차는 인스턴스의 운영 체제에 따라 달라집니다.
Amazon Linux용 AMI에는 ENA가 설치된 향상된 네트워킹에 필요한 커널 드라이버가 포함되어 있으며 ENA 지원이 활성화되어 있습니다. 따라서 지원되는 인스턴스 유형에서 Amazon Linux의 HVM 버전을 사용하여 인스턴스를 시작하면, 확장 네트워크 기능이 이미 해당 인스턴스에서 활성화된 상태입니다. 자세한 내용은 향상된 네트워킹 기능 활성화 여부 테스트 섹션을 참조하세요.
최신 Ubuntu HVM AMI에는 ENA가 설치된 향상된 네트워킹에 필요한 커널 드라이버가 포함되어 있으며 ENA 지원이 활성화되어 있습니다. 따라서 지원되는 인스턴스 유형에서 최신 Ubuntu HVM AMI를 사용하여 인스턴스를 시작하면, 확장 네트워크 기능이 이미 해당 인스턴스에서 활성화된 상태입니다. 자세한 내용은 향상된 네트워킹 기능 활성화 여부 테스트 섹션을 참조하세요.
이전의 AMI를 사용하여 인스턴스를 시작했고 확장 네트워킹 기능이 활성화되어 있지 않은 경우에는 linux-aws
커널 패키지를 설치하여 최신 확장 네트워킹 드라이버를 가져오고 필요한 속성을 업데이트할 수 있습니다.
linux-aws
커널 패키지를 설치하려면(Ubuntu 16.04 이상)
Ubuntu 16.04와 18.04는 Ubuntu 사용자 지정 커널(linux-aws
커널 패키지)과 함께 제공됩니다. 다른 커널을 사용하려면 지원
linux-aws
커널 패키지를 설치하려면(Ubuntu Trusty 14.04)
-
인스턴스에 연결합니다.
-
패키지 캐시와 패키지를 업데이트합니다.
ubuntu:~$
sudo apt-get update && sudo apt-get upgrade -y linux-aws중요
업데이트 과정에서
grub
설치 메시지가 표시되는 경우,/dev/xvda
를 사용하여grub
을 설치하고/boot/grub/menu.lst
의 현재 버전을 유지하도록 선택합니다. -
[EBS 지원 인스턴스] 로컬 컴퓨터에서 Amazon EC2 콘솔을 사용하거나 stop-instances(AWS CLI) 또는 Stop-EC2Instance(AWS Tools for Windows PowerShell) 명령 중 하나를 사용하여 인스턴스를 중지합니다.
[인스턴스 저장소 지원 인스턴스] 속성을 수정하기 위해 인스턴스를 중지할 수 없습니다. 그 대신 이 절차(Ubuntu에서 확장 네트워킹 기능을 사용하려면(인스턴스 저장소 지원 인스턴스))로 넘어가세요.
-
사용자의 로컬 컴퓨터에서 다음 명령 중 하나를 사용하여 확장 네트워크 속성을 활성화합니다.
-
modify-instance-attribute (AWS CLI)
aws ec2 modify-instance-attribute --instance-id
i-1234567890abcdef0
--ena-support -
Edit-EC2InstanceAttribute(Windows PowerShell용 도구)
Edit-EC2InstanceAttribute -InstanceId
i-1234567890abcdef0
-EnaSupport $true
-
-
(선택 사항) 의 설명에 따라 인스턴스에서 AMI를 생성합니다Amazon EBS 지원 AMI 생성 생성된 AMI는 인스턴스의 향상된 네트워킹
enaSupport
속성을 상속합니다. 따라서 이 AMI를 사용하여 기본적으로 향상된 네트워킹 기능이 활성화된 상태로 다른 인스턴스를 시작할 수 있습니다. -
로컬 컴퓨터에서 Amazon EC2 콘솔을 사용하거나 start-instances(AWS CLI) 또는 Start-EC2Instance(AWS Tools for Windows PowerShell) 명령 중 하나를 사용하여 인스턴스를 시작합니다.
Ubuntu에서 확장 네트워킹 기능을 사용하려면(인스턴스 저장소 지원 인스턴스)
이전 절차에서 인스턴스를 중지한 단계까지 진행합니다. 인스턴스 스토어 지원 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에서 향상된 네트워킹을 활성화하려면
-
인스턴스에 연결합니다.
-
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
-
인스턴스에
ena
커널 드라이버를 컴파일하고 설치합니다. 이러한 단계는 Linux 배포판에 따라 달라집니다. Red Hat Enterprise Linux에서 커널 드라이버를 컴파일하는 방법에 대한 자세한 내용은 RHEL을 실행하는 Amazon EC2 Instance에서 강화된 네트워크 지원을 받기 위해 최신 ENS 드라이버를 설치하려면 어떻게 해야 합니까?를 참조하세요. -
커널 드라이버 종속성을 업데이트하려면 sudo depmod 명령을 실행합니다.
-
인스턴스에서
initramfs
를 업데이트하여 부팅 시 새 커널 드라이버가 로드되도록 합니다. 예를 들어 배포에서 dracut을 지원하는 경우 다음 명령을 사용할 수 있습니다.dracut -f -v
-
시스템이 예측 가능한 네트워크 인터페이스 이름을 기본으로 사용하는지 확인합니다. 사용하는 systemd 또는 udev 버전이 197 이상인 시스템에서는 이더넷 디바이스의 이름 변경이 가능해 단일 네트워크 인터페이스가 아닌 경우에도
eth0
이름이 할당될 수 있습니다. 이에 따라 인스턴스 연결에 문제가 발생할 수 있습니다. 자세한 내용과 다른 구성 옵션을 보려면 freedesktop.org 웹 사이트에서 예측 가능한 네트워크 인터페이스 이름을 참조하세요. -
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이므로, 해당 네트워크 인터페이스 이름을 비활성화해야 합니다.
-
net.ifnames=0
의GRUB_CMDLINE_LINUX
줄에/etc/default/grub
옵션을 추가하여 예측 가능한 네트워크 인터페이스 이름을 비활성화합니다.sudo sed -i '/^GRUB\_CMDLINE\_LINUX/s/\"$/\ net\.ifnames\=0\"/' /etc/default/grub
-
GRUB 구성 파일을 재구축합니다.
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
-
-
[EBS 지원 인스턴스] 로컬 컴퓨터에서 Amazon EC2 콘솔을 사용하거나 stop-instances(AWS CLI) 또는 Stop-EC2Instance(AWS Tools for Windows PowerShell) 명령 중 하나를 사용하여 인스턴스를 중지합니다.
[인스턴스 저장소 지원 인스턴스] 속성을 수정하기 위해 인스턴스를 중지할 수 없습니다. 그 대신 이 절차(Linux에서 향상된 네트워킹을 사용하려면(인스턴스 저장소 지원 인스턴스))로 넘어가세요.
-
사용자의 로컬 컴퓨터에서 다음 명령 중 하나를 사용하여 확장 네트워크
enaSupport
속성을 활성화합니다.-
modify-instance-attribute (AWS CLI)
aws ec2 modify-instance-attribute --instance-id
i-1234567890abcdef0
--ena-support -
Edit-EC2InstanceAttribute(Windows PowerShell용 도구)
Edit-EC2InstanceAttribute -InstanceId
i-1234567890abcdef0
-EnaSupport $true
-
-
(선택 사항) 의 설명에 따라 인스턴스에서 AMI를 생성합니다Amazon EBS 지원 AMI 생성 생성된 AMI는 인스턴스의 향상된 네트워킹
enaSupport
속성을 상속합니다. 따라서 이 AMI를 사용하여 기본적으로 향상된 네트워킹 기능이 활성화된 상태로 다른 인스턴스를 시작할 수 있습니다.인스턴스 운영 체제에
/etc/udev/rules.d/70-persistent-net.rules
파일이 있는 경우 AMI 생성 전에 이 파일을 삭제해야 합니다. 이 파일에 원본 인스턴스의 이더넷 어댑터에 대한 MAC 주소가 포함되어 있습니다. 이 파일로 다른 인스턴스가 부팅되면 운영 체제에서 디바이스를 찾지 못하고,eth0
이 실패하여 부팅 문제가 발생할 수 있습니다. 이 파일은 다음 부팅 주기에 생성되고 AMI에서 시작된 모든 인스턴스가 자체 버전의 파일을 생성합니다. -
로컬 컴퓨터에서 Amazon EC2 콘솔을 사용하거나 start-instances(AWS CLI) 또는 Start-EC2Instance(AWS Tools for Windows PowerShell) 명령 중 하나를 사용하여 인스턴스를 시작합니다.
-
(선택 사항) 인스턴스에 연결하여 커널 드라이버의 설치 여부를 확인합니다.
향상된 네트워킹을 활성화한 이후에 인스턴스에 연결할 수 없는 경우 Linux에서 ENA 커널 드라이버 문제 해결 단원을 참조하세요.
Linux에서 향상된 네트워킹을 사용하려면(인스턴스 저장소 지원 인스턴스)
이전 절차에서 인스턴스를 중지한 단계까지 진행합니다. 인스턴스 스토어 지원 AMI 생성에 설명된 것처럼 새 AMI를 생성하고, AMI를 등록할 때 향상된 네트워킹 속성을 활성화합니다.
-
register-image (AWS CLI)
aws ec2 register-image --ena-support
...
-
Register-EC2Image (AWS Tools for Windows PowerShell)
Register-EC2Image -EnaSupport
...
이 방법은 테스트 및 피드백 목적으로만 사용됩니다. 프로덕션 배포에 사용하기 위한 것이 아닙니다. 프로덕션 배포는 Ubuntu를 참조하세요.
중요
DKMS를 사용하면 구독에 대한 지원 계약이 무효화됩니다. 프로덕션 배포에는 사용할 수 없습니다.
Ubuntu에서 ENA를 사용하여 향상된 네트워킹 기능을 활성화하려면(EBS 지원 인스턴스)
-
Ubuntu의 1과 2단계를 따르세요.
-
커널 드라이버를 컴파일하도록
build-essential
패키지를 설치하고 커널을 업데이트할 때마다ena
커널 드라이버가 다시 빌드되도록dkms
패키지를 설치합니다.ubuntu:~$
sudo apt-get install -y build-essential dkms -
https://github.com/amzn/amzn-drivers
의 GitHub에서 인스턴스의 ena
커널 드라이버에 대한 소스를 복제합니다.ubuntu:~$
git clone https://github.com/amzn/amzn-drivers -
amzn-drivers
패키지를/usr/src/
디렉터리로 이동하여 DKMS에서 커널이 업데이트될 때마다 파일을 찾아 빌드할 수 있도록 합니다. 디렉터리 이름에 소스 코드의 버전 번호(릴리스 정보에서 현재 버전 번호 확인 가능)를 추가합니다. 예를 들어1.0.0
버전은 아래 예시와 같이 표시됩니다.ubuntu:~$
sudo mv amzn-drivers /usr/src/amzn-drivers-1.0.0 -
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" -
DKMS를 사용하여 인스턴스에
ena
커널 드라이버를 추가 및 빌드하고 설치합니다.커널 드라이버를 DKMS에 추가합니다.
ubuntu:~$
sudo dkms add -m amzn-drivers -v 1.0.0dkms 명령을 사용하여 커널 드라이버를 빌드합니다.
ubuntu:~$
sudo dkms build -m amzn-drivers -v 1.0.0dkms를 사용하여 커널 드라이버를 설치합니다.
ubuntu:~$
sudo dkms install -m amzn-drivers -v 1.0.0 -
부팅 시 올바른 커널 드라이버가 로드되도록
initramfs
를 다시 빌드합니다.ubuntu:~$
sudo update-initramfs -u -k all -
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) -
Ubuntu의 3단계를 계속하세요.
확장 네트워크를 설정하지 않은 상태로 인스턴스를 시작한 경우에는 인스턴스에 필요한 네트워크 어댑터 드라이버를 다운로드하여 설치한 다음 enaSupport
인스턴스 속성을 설정하여 확장 네트워크를 활성화해야 합니다.
향상된 네트워킹을 활성화하려면
-
인스턴스 연결 후 로컬 관리자로 로그인합니다.
-
[Windows Server 2016 및 2019만 해당] 다음 EC2Launch PowerShell 스크립트를 실행하여 드라이버가 설치된 후의 인스턴스를 구성합니다.
PS C:\>
C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 -Schedule -
다음과 같이 인스턴스 상에서 드라이버를 설치합니다.
-
최신 드라이버를 인스턴스로 다운로드
합니다. -
ZIP 아카이브를 추출합니다.
-
install.ps1
PowerShell 스크립트를 실행하여 드라이버를 설치합니다.참고
실행 정책 오류가 발생하면 정책을
Unrestricted
(기본값으로Restricted
또는RemoteSigned
로 설정되어 있음)로 설정합니다. 명령 줄에서Set-ExecutionPolicy -ExecutionPolicy Unrestricted
를 실행한 다음install.ps1
PowerShell 스크립트를 다시 실행하세요.
-
-
로컬 컴퓨터에서 Amazon EC2 콘솔을 사용하거나 stop-instances(AWS CLI) 또는 Stop-EC2Instance(AWS Tools for Windows PowerShell) 명령 중 하나를 사용하여 인스턴스를 중지합니다.
-
다음과 같이 인스턴스에서 ENA 지원을 활성화합니다.
-
로컬 컴퓨터에서 다음 명령 중 하나를 실행하여 해당 인스턴스의 EC2 인스턴스 ENA 지원 속성을 확인합니다. 이 속성이 활성 상태가 아니면 "[]" 또는 공백이 출력됩니다. 기본적으로
EnaSupport
는false
로 설정됩니다.-
describe-instances (AWS CLI)
aws ec2 describe-instances --instance-ids
i-1234567890abcdef0
--query "Reservations[].Instances[].EnaSupport" -
Get-EC2Instance(Windows PowerShell용 도구)
(Get-EC2Instance -InstanceId
i-1234567890abcdef0
).Instances.EnaSupport
-
-
ENA 지원을 활성화하려면 다음 명령 중 하나를 실행합니다.
-
modify-instance-attribute (AWS CLI)
aws ec2 modify-instance-attribute --instance-id
i-1234567890abcdef0
--ena-support -
Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell)
Edit-EC2InstanceAttribute -InstanceId
i-1234567890abcdef0
-EnaSupport $true
인스턴스를 재시작할 때 문제가 발생하는 경우 다음 명령 중 하나를 사용하여 ENA 지원을 비활성화할 수도 있습니다.
-
modify-instance-attribute (AWS CLI)
aws ec2 modify-instance-attribute --instance-id
i-1234567890abcdef0
--no-ena-support -
Edit-EC2InstanceAttribute (AWS Tools for Windows PowerShell)
Edit-EC2InstanceAttribute -InstanceId
i-1234567890abcdef0
-EnaSupport $false
-
-
이전 설명과 같이
true
또는 describe-instances를 사용하여 속성이 Get-EC2Instance로 설정되어 있는지 확인합니다. 이제 다음 결과가 표시됩니다.[ true ]
-
-
로컬 컴퓨터에서 Amazon EC2 콘솔을 사용하거나 start-instances(AWS CLI) 또는 Start-EC2Instance(AWS Tools for Windows PowerShell) 명령 중 하나를 사용하여 인스턴스를 시작합니다.
-
인스턴스에서 다음과 같이 ENA 드라이버가 설치되고 활성화되어 있는지 확인합니다.
-
네트워크 아이콘을 마우스 오른쪽 버튼으로 클릭하고 네트워크 및 공유 센터 열기(Open Network and Sharing Center)를 선택합니다.
-
이더넷 어댑터(예: Ethernet 2)를 선택합니다.
-
세부 정보를 선택합니다. 네트워크 연결 세부 정보(Network Connection Details)에서 설명(Description)이 Amazon Elastic Network Adapter인지 확인합니다.
-
-
(선택 사항) 인스턴스에서 AMI를 만듭니다. 생성된 AMI는 인스턴스의
enaSupport
속성을 상속합니다. 따라서 이 AMI를 사용하여 기본적으로 ENA가 활성화된 상태로 다른 인스턴스를 시작할 수 있습니다.