Good Day

[AWS] C4 인스턴스에서 C5 인스턴스로 업그레이드 본문

개발/AWS

[AWS] C4 인스턴스에서 C5 인스턴스로 업그레이드

영악 2018. 5. 8. 17:42

오랜만에 블로그에 포스팅 끄적끄적.



계속해서 회사를 다니며 여러가지 인프라 관리를 진행하고 있는데,

그간 크게 신경쓰지 않던 인스턴스 세대 업그레이드를 위해 작업했던 내용을 적어봅니다.


1. C5 인스턴스


일단 C5인스턴스는 지난 2017년 11월 6일에 공식 출시가 되었습니다.(한국엔 언제된거지?)


C5인스턴스의 변경점 중 가장 큰 변화를 짧게 설명하면 ENA를 통한 최대 25Gbps 네트워크, NVMe기술이 적용되어 9Gbps EBS 대역폭이 제공되는 최신 인스턴습니다.


일단 저희는 메모리를 많이 사용하지는 않고 CPU 연산이 많기에 C4 인스턴스를 사용했고,

그간 ENA 설치의 번거로움과 다양한 업무의 습격으로 쉽사리 도전하지 못했었습니다만 결국 오늘 드디어 성공했습니다.(눈물)


참고로 비교적 최근에 생성하신 AMI의 경우 바로 업그레이드 하실 수 있으나 저희 처럼 17년 초 혹은 16년 말부터 AMI를 생성해서 관리해오던 분들은 직접 설치를 진행하거나 새로 AMI를 만드셔야 합니다.


Learnaws.org에 따르면 C4와 C5인스턴스는 평균적으로 10%이상 성능차이와 가격차이가 있으므로 가능하면 꼭 업그레이드 하시는 것을 권장합니다.


- Learn AWS "AWS EC2 Instance Comparison: C4 vs C5" (LINK)

- fittedcloud "Upgrading to AWS EC2 C5/M5 instances to reduce cost and the caveats" (LINK)


2. ENA 이용 가능 여부 확인 방법


AWS CLI도 안쓰고 AWS Tools도 안쓰신다면 가장 편한 방법은 해당 AMI로 바로 인스턴스를 생성시도해보시면 됩니다.

만일 5세대 인스턴스들이 생성이 가능하다면 다행스럽게도 별다른 작업 없이 업그레이드가 가능합니다.


혹은 해당 인스턴스에 ssh로 접속하셔서 "modinfo ena"를 입력해보시면 가능합니다.


3. ENA 설치 방법


해당 부분에 대해선 설치 문서가 잘 되어있으니 링크로 대체합니다(링크)만 제가 사용한 커맨드 내용을 같이 공유하니 참고하시면 좋을 것 같습니다.


저희는 Ubuntu 16.04 버전, AWS Tools(powershell)을 사용하고 있어 우분투 명령어 세트를 사용했으니 참고바랍니다.

https://github.com/amzn/amzn-drivers/releases


# 사전 업데이트 작업

sudo apt-get update && sudo apt-get upgrade -y


# 빌드 에센셜 패키지와 dkms 설치

sudo apt-get install -y build-essential dkms


# ena 인스턴스의 모듈 소스코드 클론

git clone https://github.com/amzn/amzn-drivers


# dkms가 찾을 수 있도록 패키지를 이동(붉은색으로 강조한 버전코드는 github repository에 releases를 보면 됩니다.(링크)

sudo mv amzn-drivers /usr/src/amzn-drivers-1.0.0


# 구성 파일을 생성합니다.

sudo touch /usr/src/amzn-drivers-1.0.0/dkms.conf


# 구성 파일을 수정합니다.

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에 모듈 추가

sudo dkms add -m amzn-drivers -v 1.0.0


# dkms를 사용해 빌드

sudo dkms build -m amzn-drivers -v 1.0.0


# dkms를 사용해 설치

sudo dkms install -m amzn-drivers -v 1.0.0


# initramfs 를 통해 올바르게 로드 될 수 있도록 빌드

sudo update-initramfs -c -k all


# 인스턴스 종료(AWS Tools for Windows PowerShell)

Stop-EC2Instance -InstanceId 인스턴스ID -Region 인스턴스소속리전(ap-northeast-2) -ProfileName 인증프로필이름(선택)


# 인스턴스에 ENA 지원여부 플래그 변경(AWS Tools for Windows PowerShell)

Edit-EC2InstanceAttribute -InstanceId 인스턴스ID -EnaSupport $true  -Region 인스턴스소속리전(ap-northeast-2) -ProfileName 인증프로필이름(선택)


# 인스턴스 재시작(AWS Tools for Windows PowerShell)

Start-EC2Instance -InstanceId 인스턴스ID -Region 인스턴스소속리전(ap-northeast-2) -ProfileName 인증프로필이름(선택)


# 만약 파워쉘 도구가 설치가 안되있으면 설치 후 

Set-AWSCredential -AccessKey 액세스키 -SecretKey 시크릿키 -StoreAs 프로필이름


4. 업그레이드 후기


일단 10%내외 차이라 드라마틱한 변화가 있다고 말은 못하겠지만,

저희 서비스는 jennifer를 통해 확인하는 평균 응답시간 자체가 70~80ms에서 55~75ms까지로 나오는걸 보면 어느정도 차이가 실감나긴 합니다.


뭔가 더 있을 줄 알았는데 싱겁게 끝나버렸네요.


다음에 또 뵙겠습니다 :D


'개발 > AWS' 카테고리의 다른 글

[RDS} 내 서버에서 RDS 도메인으로 연결이 잘 안될때.  (0) 2015.12.23
Comments