[AWS] Enhanced networking with the Elastic Network Adapter (ENA) is required for the instance type. Ensure that your instance is enabled for ENA.

출처URL : https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/enhanced-networking-ena.html#enable-enhanced-networking-ena-AL

 

최근 AWS EC2 는 새로운 버전들이 출시 되었다. (뭐 최근이랄것도 없이 시간이 좀 됐지만서도 ㅎ)
예를들면, T3, C5 등등

이들의 장점은 비슷하거나 제품에 따라 오히려 낮은 가격으로
최신의 프로세서를 포함하여 향상된 환경을 제공한다는 장점이 있다.

그랬다가 구버전(예를들면 T2, C4등) 인스턴스에 대해서 무심코 “인스턴스변경”후
“시작”을 했다가는…

Enhanced networking with the Elastic Network Adapter (ENA) is required for the ‘t3.micro’ instance type. Ensure that your instance ‘i-xxxxxxxxxxxxxxxxxx’ is enabled for ENA.

이런 문구를 보게 될 것이다.

아마도 새버전의 인스턴스 환경에서는 “ENA(Elastic Network Adapter 이하 ENA or ena)”가 반드시 필요한(지원되어야 하기 때문에 필요한) 모양이다.

최신 업데이트가 되지 않은 리눅스에서는 문제가 발생하게 될것이다.

URL : https://aws.amazon.com/ko/premiumsupport/knowledge-center/install-ena-driver-rhel-ec2/

를 확인해보면 RHEL(CENTOS)의 경우 7.4 미만의 커널에서는 ena를 지원하지 않는 것으로 보임

가장 위에 설명한 URL에는 전체적인 방법이 나와있지만
AWS에서 지원하는 일반적인 배포본 도는 아마존리눅스를 사용하고 있는 경우
최신버전으로 업데이트만 진행하면 될것으로 예상된다.

그리하여 필요한 부분만 설명한다.

 

시스템이 지원하는지 확인

우선 필요한것은 인스턴스 유형을 기존대로 “복원”하고 시작을 해야 한다.

 

1. 필요한 명령어

modinfo ena
ethtool -i eth0

  • 상태 확인을 위한 명령어이고, 시스템에 영향을 주지 않기 때문에 편하게 사용하자

 

2. ENA를 지원 하지 않는 경우

root # modinfo ena
modinfo: ERROR: Module ena not found.

ena 모듈을 찾을 수 없음을 출력

 

3. ENA를 지원 하는 경우

root # modinfo ena
filename: /lib/modules/3.10.0-1062.9.1.el7.x86_64/kernel/drivers/net/ethernet/amazon/ena/ena.ko.xz
version: 2.0.3K
license: GPL
description: Elastic Network Adapter (ENA)

 

시스템 업데이트

“ENA를 지원 하지 않는” 결과가 나왔다면 시스템을 업데이트 하면 된다.

yum update

본 내용은 RHEL(CENTOS)를 기준으로 작성했지만
ubuntu, debian 등의 리눅스 역시 동일한 방법을 사용하면 된다.

레드헷 계열이 지원하는 부분이라면 ubuntu등은 대부분 가능하다고 보면 된다.

업데이트 후 리부팅을 수행하자

 

시스템이 지원하는지 “재”확인

1. 모듈 탑재 확인

root # modinfo ena
filename: /lib/modules/3.10.0-1062.9.1.el7.x86_64/kernel/drivers/net/ethernet/amazon/ena/ena.ko.xz
version: 2.0.3K
license: GPL
description: Elastic Network Adapter (ENA)
...
...

  • 출력 결과는 배포본마다, 버전마다 차이가 있다.
  • ena 모듈에 대한 정보가 대략 나오는지만 확인하면 된다.

 

2. 네트워크 드라이버 확인

root # ethtool -i eth0
driver: vif
version:
firmware-version:
...

  • 시스템 내에 ena 모듈이 존재하는 것은 알았지만
  • ena 모듈이 네트워크 드라이버로 사용되지는 않았음을 알 수 있다

 

일단 아마존콘솔에서 해당 인스턴스의 전원을 끄자

 

인스턴스의 속성 수정

aws-cli 를 이용해서 인스턴스의 속성을 수정한다.

당연히 aws-cli 가 설치 되어 있어야 하고
이를 위해서는 사용자생성등의 사전작업이 되어 있어야 하는데
이 글에서는 설명하지 않는다.

 

1. 인스턴스 수준에서 향상된 네트워크 지원을 활성화

aws ec2 modify-instance-attribute --instance-id i-xxxxxxxxxxxxx --ena-support

  • 인스턴스의 ID가 “i-xxxxxxxxxxxxx”임을 가정
  • 즉, 작업하려는 instance id 로 대체하면 된다

명령어에 오류가 없다면 별다른 대화 메세지 없이 프롬프트가 떨어진다.

작업이 마무리 되었으면
인스턴스의 유형을 신버전으로 다시 변경해보고 인스턴스를 시작해보자.

아마도 아까 발생했던 경고창 없이 시작이 될것이다.

 

2. 네트워크 드라이버 확인

root # ethtool -i eth0
driver: ena
version: 2.0.3K
firmware-version:
...

  • ena 모듈이 네트워크 드라이버로 사용되고 있음을 알 수 있다

 

끝이다.

그간 AWS를 운영하면서
타입 또는 사양을 이리저리 변경했던 사례는 많지만
지금처럼 오래된 타입의 인스턴스를 신버전으로 변경했던 적이 없어서…
살짝 당황했다 ㄷ ㄷ ㄷ

About KENNETH 14034 Articles
지락문화예술공작단

Be the first to comment

Leave a Reply

Your email address will not be published.


*


이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.