( 참고 : “당신이 지금 알아야 할 AWS” )

[ Data Engineering ]

7장. 서버 없이 알림 서비스 생성

Contents

  1. 서버리스 컴퓨팅 시대
    1. 서버리스 컴퓨팅 (Severless Computing)
  2. AWS Lambda 서비스
    1. AWS Lambda
    2. AWS Lambda의 특징
  3. Lambda 함수의 이해
  4. Lambda 함수 생성 과정


7.1. 서버리스 컴퓨팅 시대

7.1.1. 서버리스 컴퓨팅 (Severless Computing)

  • 새로운 IT 인프라 아키텍쳐

  • 물리적인 서버가 없다? NO!

    BUT 추상 계층으로 제공 … 개발자는 운영 관련 신경 X, 오직 코드 개발에만 집중!

  • 즉, 사용자 입장에서 서버를 관리할 필요가 없다는 의미의 Severless!

  • 플랫폼이 모든 작업을 수행하고, 실행 횟수/시간에 따라서만 비용 청구


기본 실행 단위 :

  • 1) 클라우드 확산 초기 : “가상 머신” (AWS EC2)
  • 2) 이후 : “서비스 중심의 컨테이너”
  • 3) 현재 : 서버리스 컴퓨팅은 이를 “기능 단위로 더 잘게 쪼갬”


장/단점

  • 장) 정확하게 실행한 횟수만큼의 비용 청구, 보다 경제적
  • 단) 아직 충분히 성숙 X< 개발자가 기존과 다른 방식으로 개발을 해야한다는 점
구분 가상 머신 컨테이너 서버리스
AWS 서비스 EC2 ECS Lambda
단위 가상 머신 애플리케이션 함수
추상화 단계 하드웨어 운영 체제 런타임


7.2. AWS Lambda 서비스

7.2.1. AWS Lambda

  • “오직 소스코드에만 집중하도록”

  • 서버의 유휴자원을 최소화
  • “산발적으로 발생하는 작업”에 서버를 계속 배치하는 것 보다 효율적


7.2.2. AWS Lambda의 특징

(1) 완전 관리형 서비스

  • 서버가 없는 컴퓨팅 = “Severless Computing”
  • 하드웨어/네트워크/운영체제(OS)까지, 개발자가 파악할 필요 X
  • 오직 “내 코드만 작성”하면 됨

(2) 유연한 확장성 : Lambda는 다른 AWS 서비스들을 호출하여, 자신만의 서비스를 만들 수 O

(3) 고가용성 : 99.9999%

(4) 유휴 용량 없음

  • (if 서버 설치) 항상 켜져 있는 상태 유지해야
  • (람다) 요청이 올 때만 Provisioning(사용자의 요구에 맞게 시스템 자원이 할당)되어 작동하기 때문에, 응답이 없을 때 비용이 청구되지 않음!

(5) 마이크로 서비스 호환성 : 작고 독립적인 코드단위로 개발 가능


7.3. Lambda 함수의 이해

AWS Lambda는 이벤트에 대한 응답으로 코드를 실행하고, 자동으로 기본 컴퓨팅 리소스를 관리하는 Severless Computing Service. ( 즉, 특정 상황 발생 시 “람다 함수” 코드 실행 )

  • 입력인자 & 출력인자를 활용하여 람다 함수를 활용

.


7.4. Lambda 함수 생성 과정

실습

  • 1) 람다 함수 만들기
    • 람다 함수 생성
    • 람다 함수 실행 역할 생성
  • 2) 람다 함수 입력에 해당하는 이벤트 테스트 구성
  • 3) 람다 함수 코드 작성
  • 4) 람다 함수 테스트 실행 & 결과 확인