서버리스 아키텍처 - AWS Lambda 개요
개요
AWS Lambda 공부를 시작하려고 "AWS를 통한 서버리스 아키텍처"구매
조금 읽어 보면 아주 좋은 책이므로 책 소개와 자신의 람다 비망록을 위해 투고
Lambda에 대한 개요, 사용법, 제한, 주의사항 등 정리해 나갈 예정
소개 서적
AWS를 통한 서버리스 아키텍처
서버리스 아키텍처의 원칙
주문형 코드를 실행하기 위해 (서버가 아닌) 컴퓨팅 서비스 사용
하나의 목적으로 상태 비 저장 함수를 작성하십시오.
푸시 기반 이벤트 구동 파이프라인 설계
더 두껍고 강력한 프런트 엔드 만들기
타사 서비스 활용
서버리스의 장점과 단점
장점
서버 관리 불용
저렴한 비용
시장 투입까지의 시간 단축
구현이 간단하고 코드 양이 줄어들 수 있음
☆ 멀티스레드를 고려할 필요가 없다
확장 가능하고 유연하며 병렬 처리에 탁월합니다.
단점
대기 시간에 엄격한 제약이있는 AP에 적합하지 않습니다.
벤더 록인
퍼블릭 클라우드가 제공할 수 있는 수준보다 높은 성능, 신뢰성이 요구되는 미션 크리티컬 서비스에 적합하지 않음
서비스 분산에 의한 원격 호출, 네트워크를 통한 오류 처리, 대기 시간 증가
OS 커스터마이징이나 그 아래 인스턴스를 조정할 수 없습니다.
Lambda 특정 처리 (여러 번 실행되는 등)가 발생할 수 있음
Lambda 호출 방법
이벤트 구동형(비동기형)
푸시 모델
풀 모델
요구/응답형(동기형)
〇Lambda 함수 실행까지의 흐름(※1)
ENI 만들기
컨테이너 만들기
배포 패키지 로드
배포 패키지 배포
런타임 시작 및 초기화
함수/메소드 실행
1.ENI의 작성은 VPC를 이용하는 경우만
모든 것을 실행하는 것이 콜드 스타트 / 6.만 실행하는 것이 웜 스타트
Lambda 함수 상태
콜드 상태: 함수의 코드가 로드되지 않고 초기화, 설정 코드가 지금부터 실행되는 상태
웜 상태: 한 번 이상 함수가 실행되고 함수 코드가 로드된 상태
(처리 시작 시간이 걸린다) 콜드 상태를 줄이기위한 조치함수를 웜 상태로 유지하기 위해 일정 이벤트를 사용하여 정기적으로 실행하도록 설정
초기화, 셋업 코드를 이벤트 핸들러 밖으로 낸다. 컨테이너가 웜 상태이면 코드가 실행되지 않습니다.
Lambda 함수에 할당된 메모리 용량을 늘립니다. CPU 공유는 함수에 할당된 메모리 용량에 따라 결정됩니다.
코드의 크기를 가능한 한 작게 한다. 불필요한 모듈을 줄이고 가져 오기위한 requires () 호출도 줄입니다. 포함 및 초기화하는 모듈을 줄이면 부팅시 성능을 향상시킬 수 있습니다.
다른 언어도 검토해 본다. (향후 바뀔지도 모르지만) 콜드 스타트가 가장 긴 것은 Java
Lambda 제한
AWS 문서
AWS Lambda 제한
SDK를 통한 Lambda 함수 직접 호출 참고
Amazon API Gateway와의 연동
Lambda 프록시 통합 정보
{
"authToken" : "$input.params('Authorization')"
}
※$input은, API Gateway상의 변수. 자세한 내용은 아래 참조
API Gateway 매핑 템플릿 참조
{
"body" : $input.json('$')
}
참고 URL
Using API Gateway to pass non-JSON data (e.g. XML) to a Lambda
Lambda와 RDS의 연결 수 문제에 대해
보충
☆표는 자신의 견해로서 추가
〇표는 다른 자료로부터의 참조
참조
※ 1 : 모두 가르칩니다! 서버리스 앱의 안티 패턴 및 튜닝
참고 페이지
알아두는 것이 더 나은 Lambda 함수 호출 유형과 재시도 방법 요약
Reference
이 문제에 관하여(서버리스 아키텍처 - AWS Lambda 개요), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/fkooo/items/9e5a1f9986651ff79d28텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)