[AWS] Serverless architect와 AWS Lambda
2022. 4. 27. 15:35
반응형
서버리스 아키텍트(Serverless Architect)
서버리스(Serverless)
개발자가 서버를 직접 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델
문자 그대로 서버가 진짜 없는 것이 아니라 추상화된 것
서버리스 서비스의 경우 클라우드 서비스를 제공하는 기업에서 서버를 관리하기 때문에 사용자는 스케일링 등의 관리를 하지 않고 전적으로 서비스와 어플리케이션 개발에 집중할 수 있습니다.
서버리스 아키텍트의 장단점
장점 | 단점 |
서버 관리가 불필요 (자동 확장, 장애 방지) |
다른 클라우드 컴퓨팅 자원보다 비쌈 (시간당 비용으로 계산했을 경우) |
개발한 코드에만 집중 가능 | 트리거 호출과 동시에 서버가 세팅되어 속도가 느림 |
사용한 만큼만 과금(BaaS, FaaS) | 장기적인 작업에 적합하지 않음 |
급격한 트래픽 변화에 유연 | 함수의 처리 결과에 따라 상태를 따로 저장 |
서버리스의 2가지 서비스 형태
서비스 형태 | BaaS(Backend as a Service) | FaaS(Function as a Service) |
개요 | 백엔드 개발에 필요한 기능들을 API 형태로 제공하는 서비스 |
기능을 하나의 함수로 구현 |
커스터마이징 | 커스터마이징 어려움 | 로직을 개발자가 작성하므로 커스터마이징 가능 |
특징 | 빠른 개발 가능 | 업로드한 코드를 함수 단위로 쪼개어 대기상태로 두었다가 Request가 있을 때마다 실행시켜 처리 |
대표 서비스 | Google Firebase | AWS Lambda, NCP Cloud Functions |
AWS Lambda
- AWS 람다는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스
- 함수 실행 시간은 최대 15분으로 짧은 이벤트 기반 워크로드에 적합
- 코드가 실행되지 않을 때는 요금이 부과되지 않음
간단하게 예제를 통해 살펴봅시다.
AWS 콘솔에 접속해서 Lambda를 사용해봅니다.
함수를 생성하면 하단의 코드 소스란에 예시가 작성되어 있습니다.
정상적으로 작동하는지 테스트란에 들어가서 실제로 실행해봅시다.
Nodejs나 Python과 같은 언어는 코드 소스란을 통해 바로 수정 및 테스트가 가능하지만 Go lang의 경우 코드 소스 란이 없고 대신 zip파일을 업로드하거나 Amazon S3를 통해 업로드하는 형태로 Lambda를 사용할 수 있습니다.
반응형
'IT > Develop' 카테고리의 다른 글
[Algorithm] Merge Sort (합병 정렬) (0) | 2022.12.09 |
---|---|
[Nodejs] Nodejs 설치와 버전 관리, 개발용 의존성 설치 방법 (0) | 2022.04.28 |
[React] Axios로 API 호출하기 간단 예제 (0) | 2022.03.01 |
DBeaver로 Jumpbox를 거쳐 AWS Aurora PostgreSQL 접속해보기 (0) | 2022.02.22 |
[ flutter ] A RenderFlex overflowed by * pixels ... 오류 간단하게 해결하기 (0) | 2021.12.20 |