AWS Lambda

김명식·2024년 1월 16일
0

AWS

목록 보기
2/5
post-thumbnail

Lambda ?

자바 개발자라면 Lambda 라는 말이 익숙할 것이다.
서로 전혀 다른 일을 수행하지만, 개념적으로는 비슷한 의미를 가지고 있다.
바로 "간결함" "특정 작업에 대한 초점" 이다.

AWS Lambda서버 관리 없이 코드를 실행하기 위해 사용되며,
코드 실행에 필요한 모든 인프라 관리를 AWS가 담당한다.

AWS 람다의 주요 특징장점은 다음과 같다.

  • 서버리스 아키텍처

    • Lambda는 서버 관리를 필요로 하지 않는다
      AWS가 서버 인프라를 관리하며, 사용자는 코드 작성과 실행에 집중 할 수 있다.
  • 자동 스케일링

    • Lambda는 자동으로 트래픽에 맞춰 확장 및 축소된다.
      이는 사용자가 수동으로 리소스를 관리할 필요가 없다는 장점이다.
  • 이벤트 기반

    • Lambda는 다양한 이벤트 소스에 의해 트리거 될 수 있다.
      예를 들어,
      AWS S3 버킷에 이미지가 업로드 되면
      해당 이미지가 S3에 Create 되었다는 이벤트를 발생시켜 Lambda를 실행시켰다.
  • 언어 지원

    • Python, Node.js, Java, C#, Go, Ruby 등 다양한 프로그래밍 언어를 지원한다.
      하지만 내 주력 언어인 Java의 경우는 jar 파일을 올려야만 실행되는 반면
      Python은 웹 에디터에서 수정 및 실행할 수 있으므로
      나는 Lambda를 개발할 필요가 생기면 Python으로 개발을 진행한다.
  • 비용 효율성

    • Lambda는 실제로 코드가 실행되는 시간에 대해서만 비용을 지불한다.
      실행 시간과 메모리 사용량에 따라 요금이 부과되므로,
      사용하지 않는 시간에는 비용이 발생하지 않는다.
      이는 일정치 않은 트래픽이나 간헐적으로 실행되는 작업데 매우 효율적인 비용 구조이다.

사용시 주의사항으로,

람다함수를 생성하고 구성으로 가면 [일반 구성] 이라는 탭이 있을텐데,
여기서 제한시간 및 메모리를 잘 설정해야한다.
아마 기본 제한시간이 3초일텐데, 로직이 복잡하다면 3초를 초과하여 TimeOut Error가 발생한다.
또한, 메모리의 용량이 낮으면 람다함수의 동작 시간이 늘어나는데
메모리를 늘리면 물론 동작은 빨라지겠지만 비용이 늘어난다.
실제로 여러번의 테스트를 거쳐 어느 정도가 적합한지를 알아내는 과정이 반드시 필요하다

profile
BackEnd & AWS Developer

0개의 댓글