Backend/DevOps

AWS EC2 인스턴스 유형별 정리 (feat. 딥러닝 모델 서버)

mopil 2022. 8. 9. 17:47
반응형

# 서론

딥러닝 모델을 탑재한 백엔드 서버를 프리티어를 사용하는 인스턴스 (t2.micro) 를 통해서 배포하니까, 성능이슈가 발견되었다. (필자 로컬에서는 6초 정도 소요되는 style_transfer 모델이 EC2 에서는 무려 80초나 걸리는 문제가 있었다.)

 

조사해보니, vcpu랑 메모리 스펙관련 문제였다. 그래서 여러가지 EC2 인스턴스들을 바꿔가며 테스트해본 결과를 공유하고자 한다.

 

# EC2 인스턴스 변경 방법

인스턴스 중지 후 변경하고 재시작하면 된다.

  • 중지-시작 할 때 마다 유동 아이피가 변경된다. 이 점에 유의한다.

테스트 프로젝트 : FastAPI + NginX기반 EC2 서버, Route 53으로 DNS 매핑

그래서 새로운 인스턴스의 아이피를 계속 바꿔줘야한다. (Route 53 매핑 -> NginX 설정 파일 변경)

시간이 많이 소요되는 부분은 style_transfer의 denormalize 파트였다. 그래서 인스턴스를 변경해가며 해당 부분의 처리 시간을 측정했다.

 

가격과 스펙은 AWS 공식 홈페이지를 참조했다.

https://calculator.aws/#/addService?ch=cta&cta=lower-pricing-calc 

 

AWS Pricing Calculator

 

calculator.aws

https://aws.amazon.com/ko/ec2/instance-types/?trk=68913a17-4967-41f6-a766-0f2eb338dd04&sc_channel=ps&s_kwcid=AL!4422!3!588924203175!e!!g!!aws%20ec2%20%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4&ef_id=CjwKCAjw6MKXBhA5EiwANWLODI9ZyUyQ8FENwyYDLStHBKBjNsmTzvm_gyQlDYBUS6KAHhI2tx95OxoCoyMQAvD_BwE:G:s&s_kwcid=AL!4422!3!588924203175!e!!g!!aws%20ec2%20%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4 

 

Amazon EC2 인스턴스 유형 – Amazon Web Services

 

aws.amazon.com

 

# t2, t3, t3a 비교

인스턴스 유형 vCPU RAM 처리시간 (초)
t2.micro (free tier) 1 1 80
t2.small 1 2 30
t2.medium 2 4 11
t3.medium 2 4 15
t3.large 2 8 16
t3a.micro 2 1 60
t3a.small 2 2 30
t3a.medium 2 4 30
t3a.large 2 8 26

 

# c5a.large 테스트

컴퓨팅 최적화 인스턴스인 c시리즈로도 테스트를 해봤는데, 14, 15초가 나왔다.

vCPU 스펙과 갯수에 따라서 처리 시간이 차이난다고 예측했으나, 꼭 그렇지는 않은 것 같았다. 

 

확실한건 메모리 용량과는 상관이 없어보였다.

 

 

# 결론

딥러닝 연산과 관련된 CPU의 문제라고 생각했으나, 범용 인스턴스에서 가장 좋은 성능을 내서 문제의 원인을 파악하기 어려웠다. 여튼 가장 성능이 빠르면서 저렴한 t2.medium으로 인스턴스를 구성하면 된다는 결론을 내렸다.

반응형