( 참고 : “당신이 지금 알아야 할 AWS” )
[ Data Engineering ]
7장. 서버 없이 알림 서비스 생성
Contents
- 서버리스 컴퓨팅 시대
- 서버리스 컴퓨팅 (Severless Computing)
- AWS Lambda 서비스
- AWS Lambda
- AWS Lambda의 특징
- Lambda 함수의 이해
- 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) 람다 함수 테스트 실행 & 결과 확인