IT/AWS

[AWS] ENA Driver 업그레이드 하기(EC2 5세대 이전 ami 사용 시)

반응형

Intro

오늘은 서론이 길 예정이오니 결과만 보고싶으신 분들은 스크롤을 내려주세요.
오늘 AWS EC2 instance 5세대 이야기를 하면서 ena dirver upgrade하는 방법에 대해 알아 보도록 하겠습니다.

AWS는 세대를 거듭할 수록 가상화 기술 및 하드웨어 기술을 지속적으로 발전시켜서 가상머신의 성능을 향상 시키고 있습니다.

현재는 AWS가 Graviton이라는 프로세서를 자체개발하여 합리적인 가격과 향상된 성능으로 6세대 까지 지원하고 있습니다만.. 새로운 인스턴스 세대가 나오고나서 극초반에는 기술검증이 완벽하게 끝나지 않았기 때문에 사용하지 않는 것을 추천드립니다.

과거에 4세대에서 5세대로 넘어갈때 비용효과와 성능 향상을 위해 5세대로 타입을 변경해달라는 고객 요청이 있었습니다.

5세대 인스턴스는 AWS가 오픈소스 기술인 kvm를 사용하여 자체적으로 개발한 니트로시스템을 도입하였는데요. (참고 https://kim-dragon.tistory.com/11 ) 이런 니트로시스템에서 필요한 NVMe와 ENA드라이버가 타입을 변경할때 자동으로 설치되지 않았기 때문에 직접 다운로드를 받아서 설치를 해줘야했습니다. 당시 리눅스 OS에서는 비교적 쉽게 설치가 되었었지만 윈도우OS에서는 설치하는데 정확한 가이드가 없었기 때문에 어려움을 겪었었습니다.

어느 시점 이후에 aws에서 제공하는 기본 ami 이미지에는 NVMe와 ENA드라이버가 설치가 되고 적용된 상태로 제공을 해주어서 신경을 안써도 됐지만 과거에 만들어놓았던 ami 이미지를 계속해서 사용해야하는 경우에는 마찬가지로 직접 설치를 해야했습니다.

물론 새로운 이미지를 만들어서 사용하면 되지 않냐라고 생각할 수 있겠지만 과거에는 EC2 image builder라던지 앤서블, 패커 이런 골든이미지를 생성하는 툴이 없었을 뿐더러 OS안에 어떤걸 설치했었는지에 대해 스크립트화가 되어있지 않았고, 스크립트화가 되어있었더라도 형상관리가 되어있지 않았기 때문에 사실상 새로운 이미지를 만든다는 것 자체가 큰 서버 관리자 입장에서는 불가능한 상태가 되버리는 경우가 많았죠.

그래서 기존 이미지를 계속해서 사용해야하는 이슈가 발생했었습니다. 심지어 5세대 타입이 출시된 2018년 이후 지금까지도요.

어쨌든간에 5세대 이전에 만들어진 ami 이미지를 사용하는 관리자들은 ena driver를 설치하고 향상된 네트워크 기능을 활성화해야 해야합니다.

어떻게 해야할까요?

ena 모듈 확인

modinfo ena

…
version:        2.0.3K
…

커널과 일치하는 커널 모듈을 빌드하기 위한 개발 패키지를 설치

sudo yum install kernel-devel-$(uname -r) gcc git patch rpm-build wget -y
cd /usr/src/
sudo wget https://github.com/amzn/amzn-drivers/archive/master.zip
sudo unzip master.zip
cd amzn-drivers-master/kernel/linux/ena
sudo make

ena 모듈 재설정

modprobe -r ena && insmod ena.k

부팅 시 신규 버전 모듈로 로드 할 수 있도록 설정

make   -C /lib/modules/ uname   -r /build   M= pwd  modules_install 

dracut -f -v

커널 모듈 종속성 맵 파일 재생성

depmod

변경된 ena 모듈 확인

$ modinfo ena

…

version:        2.5.0g

…

참고

ena driver 설치, [https://aws.amazon.com/ko/premiumsupport/knowledge-center/install-ena-driver-rhel-ec2]

반응형