본문 바로가기

클라우드/AWS

[AWS] Elastic Beanstalk VS Lambda

elastic beanstalk

  • 코드를 올리면 그 코드를 실행할 환경을 자동으로 만들어 주는 것 - 작성한 코드를 zip파일로 올릴 수 있음 (paas형 서비스)
  • IaasS인 EC2와 다르게 PaaS로서 서버구성, Auto Scaling, 배포 자동화, 모니터링 등 서버 운영에 필요한 대부분의 작업을 최대한 자동화 해서 제공하는 서비스
  • 실제 서버에 올리기 위해 서버 구성에 시간을 쏟을 필요 없이 현재 애플리케이션의 언어에 맞는 환경만 선택하고 작성한 애플리케이션 소스코드를 압축해서 업로드 하면 Elastic Beanstalk가 웹서버, 언어 등 환경 구성이 완료된 서버를 생성하고 해당 서버에 애플리케이션 배포까지 자동으로 진행
  • CPU등 정해둔 지표에 따라 Auto Scaling도 자동으로 진행
  • PHP, 자바, 파이썬, 루비, Node.js, .NET, GO언어와 그 환경을 지원하고 Docker로 만든 임의의 환경도 지원한다.
  • 하나의 애플리케이션 내 여러 가지의 환경을 생성할 수 있게 한다.(하나의 애플리케이션이라도 보통 테스트, 운영환경과 같이 최소 두 가지 환경을 갖고 있음)
  • 사용한 구성을 저장해둘 수 있고 그 환경의 설정값을 그대로 복제해서 다른 환경도 쉽게 생성할 수 있다.
  • 장점
    • 빠른 서버환경 구축
    • 서버운영 지식이 없더라도 다중서버, 보안그룹이 구성돼있는 서버 환경을 구축할 수 있다.
    • 개발자는 개발에 더욱 집중할 수 있다.
    • Elastic Beanstalk를 사용하더라도 추가 요금을 내지 않는다. EC2, ELB등 기본 AWS 자원에 대한 비용만 지급하면 된다.
    • Docker, 사용자 지정 플랫폼, 사용자 지정 이미지 등의 기능을 활용해 나만의 환경을 구축하는 것도 가능하다.

 

  • 단점
    • 자동화가 많이 돼 있다는 것은 신경쓸 것이 적다는 뜻일 수 있지만, 버그가 발생하는 경우 그 문제를 찾기가 더 어렵다.
    • Elastic Beanstalk에서 제공하는 틀이 있기 때문에 이 틀을 벗어난 세부 설정에 대한 유연성이 떨어진다. 
    • 일반적인 웹 애플리케이션 서버 구성이 아니라 조금씩 특이한 부분이 생기면 원하는 것들을 구현하기 어려워진다.

 

lambda

  • aws안에서 코드를 작성해서 올려야함