[AWS] EC2 vs Lambda

2024. 2. 11. 17:50·AWS

 

서론

클라우드 환경에서 백엔드 서버(자바, 스프링)를 배포하고자한다.

 

AWS 서비스 중 EC2와 Lambda를 선택하고자 하는데 각자 비교해보고 결론을 지어보고자한다.

 

EC2

특징

  • 가상화된 컴퓨팅 환경을 제공한다.
  • 사용자는 운영 체제, 애플리케이션 서버, 애플리케이션을 포함한 인스턴스의 전체 스택을 관리할 수 있다.
  • 다양한 인스턴스 유형과 크기를 제공해서 요구사항에 맞게 유연하게 선택할 수 있다.
  • 온디맨드, 예약 인스턴스, 스팟 인스턴스 등 다양한 가격 모델을 제공한다.

 

장점

  • 높은 유연성과 제어력
    • 시스템의 모든 측면을 제어할 수 있어 복잡한 애플리케이션과 다양한 아키텍처 요구사항을 수용할 수 있다.
  • 확장성
    • 애플리케이션 요구사항에 따라 인스턴스를 수평 확장하거나 축소할 수 있다.
  • 네트워킹 옵션의 유연성
    • VPC를 통해 보안과 네트워킹 구성을 세밀하게 조정할 수 있다.

단점

  • 관리 부담
    • 운영 체제와 애플리케이션 스택의 관리가 필요하다.
  • 비용 예측 어려움
    • 사용량에 따라 비용이 변동될 수 있어 예산 관리가 어려울 수 있다.

Lamda

특징

  • 서버리스 컴퓨팅을 제공한다.
  • 코드를 실행하는 데 필요한 서버 관리를 AWS가 자동으로 처리한다.
  • 이벤트 기반 트리거에 의해 자동으로 실행된다.
  • 사용한 컴퓨팅 리소스에 대해서만 비용을 지불한다.

장점

  • 서버 관리 없음
    • 인프라 관리 걱정 없이 애플리케이션 코드에 집중할 수 있다.
  • 비용 효율성
    • 실행 시간과 사용 리소스에만 비용을 지불해서 비용을 절약할 수 있다.
  • 자동 확장
    • 트래픽 증가에 따라 자동으로 확장되니 수동 스케일링 필요 없다.

단점

  1. 실행 시간 제한: Lambda 함수는 최대 15분 동안만 실행될 수 있다.제어력의 한계: 인프라와 실행 환경에 대한 제어가 제한된다.코드 스타트업 지연: 냉시작 문제로 첫 실행 시 지연이 발생할 수 있다.
  • 제어력의 한계
    • 인프라와 실행 환경에 대한 제어가 제한된다.
  • Cold Start
    • Cold start 문제로 첫 실행 시 지연이 발생할 수 있다.
    • https://inpa.tistory.com/entry/AWS-📚-람다-성능-개선-Cold-Start-해결

 

 

참고하면 좋은 자료

 

 

Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016

Lambda를 활용한 서버없는 아키텍쳐 구현하기 :: 김기완 :: AWS Summit Seoul 2016 - Download as a PDF or view online for free

www.slideshare.net

 

 

AWS Lambda를 시작하기 전 알았으면 좋았을것들

제가 처음 Serverlesss를 접했을때 생각했습니다. 정말 힙하고 쿨하다. 앞으로 로직에만 집중하고 서버따위는 생각조차 하지않고 뭐든 이렇게 개발하면 정말 좋겠다. 그러다 토이프로젝트를 만들

medium.com

결론

애플리케이션을 배포할 때 Amazon EC2와 AWS Lambda 중에서 선택하는 건 애플리케이션의 특성, 요구사항, 그리고 개발 및 운영팀의 선호도에 따라 다를 수 있다.

EC2는 높은 제어력과 유연성이 필요한 복잡한 애플리케이션에 적합할 수 있고, Lambda는 빠른 개발 사이클과 낮은 운영 비용을 중시하는 서버리스 아키텍처가 필요한 경우에 유리할 수 있다.

'AWS' 카테고리의 다른 글
  • [JAVA / SPRING BOOT] 백엔드 서버 CI / CD 구축 with Github actions, EC2, Code Deploy
  • EC2 ssh 연결이 안 된다면? (key pair) "Permission denied (publickey)", "Authentication failed, permission denied"
  • EC2 사용자 데이터(user-data) 확인법
  • [AWS] NestJS(NodeJS) 백엔드 서버 CI/CD Beanstalk으로 배포하기 with Docker
minseok__
minseok__
  • minseok__
    minseok_study
    minseok__
  • 전체
    오늘
    어제
    • 분류 전체보기 (89)
      • JAVA (1)
      • Kotlin (0)
      • CS (1)
      • SQL (7)
      • Python (2)
      • Docker (13)
      • Typescript (0)
      • Javascript (1)
      • AWS (6)
      • NestJS (1)
      • ElasticSearch (1)
      • 트러블슈팅 (10)
      • DB (6)
      • 알고리즘 (5)
      • Redis (1)
      • Postgresql (1)
      • AI (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    쿠버네티스
    mysql 아키텍처
    response data
    빅쿼리
    docker
    createMany
    bigquery
    amazon linux 2023
    useswrinfinite
    윈도우
    window
    EC2
    SQL
    k8s
    반환 데이터
    userauth_pubkey: key type ssh-rsa not in pubkeyacceptedalgorithms
    error: relation "batch_job_instance" does not exist
    node.js 20
    openssh 8.8
    외래키 참조
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
minseok__
[AWS] EC2 vs Lambda
상단으로

티스토리툴바