서론
클라우드 환경에서 백엔드 서버(자바, 스프링)를 배포하고자한다.
AWS 서비스 중 EC2와 Lambda를 선택하고자 하는데 각자 비교해보고 결론을 지어보고자한다.
EC2
특징
- 가상화된 컴퓨팅 환경을 제공한다.
- 사용자는 운영 체제, 애플리케이션 서버, 애플리케이션을 포함한 인스턴스의 전체 스택을 관리할 수 있다.
- 다양한 인스턴스 유형과 크기를 제공해서 요구사항에 맞게 유연하게 선택할 수 있다.
- 온디맨드, 예약 인스턴스, 스팟 인스턴스 등 다양한 가격 모델을 제공한다.
장점
- 높은 유연성과 제어력
- 시스템의 모든 측면을 제어할 수 있어 복잡한 애플리케이션과 다양한 아키텍처 요구사항을 수용할 수 있다.
- 확장성
- 애플리케이션 요구사항에 따라 인스턴스를 수평 확장하거나 축소할 수 있다.
- 네트워킹 옵션의 유연성
- VPC를 통해 보안과 네트워킹 구성을 세밀하게 조정할 수 있다.
단점
- 관리 부담
- 운영 체제와 애플리케이션 스택의 관리가 필요하다.
- 비용 예측 어려움
- 사용량에 따라 비용이 변동될 수 있어 예산 관리가 어려울 수 있다.
Lamda
특징
- 서버리스 컴퓨팅을 제공한다.
- 코드를 실행하는 데 필요한 서버 관리를 AWS가 자동으로 처리한다.
- 이벤트 기반 트리거에 의해 자동으로 실행된다.
- 사용한 컴퓨팅 리소스에 대해서만 비용을 지불한다.
장점
- 서버 관리 없음
- 인프라 관리 걱정 없이 애플리케이션 코드에 집중할 수 있다.
- 비용 효율성
- 실행 시간과 사용 리소스에만 비용을 지불해서 비용을 절약할 수 있다.
- 자동 확장
- 트래픽 증가에 따라 자동으로 확장되니 수동 스케일링 필요 없다.
단점
- 실행 시간 제한: Lambda 함수는 최대 15분 동안만 실행될 수 있다.제어력의 한계: 인프라와 실행 환경에 대한 제어가 제한된다.코드 스타트업 지연: 냉시작 문제로 첫 실행 시 지연이 발생할 수 있다.
- 제어력의 한계
- 인프라와 실행 환경에 대한 제어가 제한된다.
- Cold Start
- Cold start 문제로 첫 실행 시 지연이 발생할 수 있다.
- https://inpa.tistory.com/entry/AWS-📚-람다-성능-개선-Cold-Start-해결
참고하면 좋은 자료
결론
애플리케이션을 배포할 때 Amazon EC2와 AWS Lambda 중에서 선택하는 건 애플리케이션의 특성, 요구사항, 그리고 개발 및 운영팀의 선호도에 따라 다를 수 있다.
EC2는 높은 제어력과 유연성이 필요한 복잡한 애플리케이션에 적합할 수 있고, Lambda는 빠른 개발 사이클과 낮은 운영 비용을 중시하는 서버리스 아키텍처가 필요한 경우에 유리할 수 있다.