서버리스 ( Serverless )
- 서버리스란 실제로 가동하는 서버가 없다는 뜻이 아닌 AWS에서 서비스가 실행될 인프라를 AWS에서 관리하기 떄문에 사용자가 관리할 서버가 존재하지 않는다는 뜻
- OS같은 인프라를 관리할 필요가 없으므로 사용자는 프로그램 코드를 준비하고 Lamda에 업로드하여 인프라 관리에서 발생하는 오버헤드를 줄이고 응용 프로그램 개발에 집중할 수 있음
EC2의 관리대상
- 프로그램 코드
- 소프트웨어 설정
- 확장성 및 가용성 관리
- OS설정
Lambda의 관리대상
- 프로그램 코드
Lambda 지원 언어
- Node.js
- Java
- Python
- PowerShell
- Ruby
- C#
- Go
Lambda 장점
보안
- AWS에서 OS와 미들웨어 등의 기반시스템을 모두 관리한다
- 장애와 보안 패치 등도 모두 AWS에서 이루어짐
- 사용자는 Lambda로 사용할 코드만 관리
비용ㅁㄴㅇㄹ
- Lambda는 코드가 실행될 때만 요금이 부과되므로 비용절감 가능
가용성
- Lambda는 복수의 가용 영역에서 실행됨
- 사용자가 설정하지 않아고 복수의 가용영역에서 실행되어 특정 가용 영역이 사용불가 하더라도 가능 가용영역에서 실행가능하여 장애 대응 가능
확장성
- 동시에 다수의 처리를 해야 하는 겅우 자동으로 AWS가 관리하는 처리용 인스터스가 실행
- 서울 리전의 동시 실행 수는 최대 1000개, 별도의 확장신청으로 동시 실행 갯수를 확장 가능
- 대용량 트래픽을 처리하는 경우 EC2가 비용적으로 유리
Lambda 함수
- 함수라고 하는 단위로 프로그램 코드를 관리함
1. 함수 생성
- 함수 이름 및 사용할 런타임을 설정하여 함수 새엉
2. 프로그래밍 코드 편집
- 함수 생성후 프로그래밍 코드 편집
3. 테스트
- 전달할 데이터를 JSON 형식으로 지정하고 함수가 실행되는지 테스트
4. 함수 실행
- 실제 함수 실행
Lambda 활용법
- API Gateway를 활용한 웹 API 서버
- S3를 활용한 파일 처리 서버
- EventBridge를 활용한 배치 프로그램 작성
- Cloudwatch를 활용해 서버리스 요청별 실행 상황 모니터링
Lambda 추가 설정
메모리 용량
- 함수 실행 시 사용할 수 있는 메모리 용량을 지정
- 기본 값은 128MB ~ 10,240MB 까지 설정 가능
- CPU는 메모리 용량에 비롛여 자동 설정됨
타임아웃 시간
- 함수가 실행되는 최대 시간
- 타임아웃 시간이 지나면 실행되는 함수도 정지됨
- 기본값은 3초, 1~900초 사이로 지정 가능
환경변수
- 프로그램 런타임에 필요한 환경 변수를 지정
'AWS' 카테고리의 다른 글
AWS 네트워크 및 콘텐츠 전송 서비스 (0) | 2023.09.30 |
---|---|
AWS S3 (0) | 2023.09.27 |
AWS EC2 (0) | 2023.09.26 |
AWS EC2 M2 Pro MAC 인스턴스 출시 (0) | 2023.09.21 |
AWS VPC (0) | 2023.09.19 |