OS와 같은 인프라를 관리할 필요가 없으므로 사용자는 프로그램 코드를 준비하고 Lambda에 업로드만 하면 된다.
서버리스란 AWS에서 서비스가 실행될 인프라를 관리하므로 사용자가 관리할 서버가 없다는 것이다.
즉, 사용자는 인프라 관리를 AWS에 맡기고 코드 개발에만 집중하면 된다.
- AWS Lambda는 서버리스의 핵심
- 서버를 프로비저닝하거나 관리하지 않고 코드를 실행
- 이벤트에 대한 응답으로 자동 트리거
- 자동으로 확장
- Amazon CloudWatch를 통한 내장된 코드 모니터링 및 로깅 제공
보안
AWS에서 OS와 미들웨어 등의 기반 시스템을 모두 관리한다.
장애와 보안 패치 등도 모두 AWS 소관하에 이루어지므로 Lambda로 사용할 코드만 관리하면 된다.
비용
EC2는 사용하지 않아도 기동하고 있는 시간만큼 요금이 발생하지만, Lambda에서는 코드가 실행될 때만 요금이 부과되므로 비용을 절감할 수 있다.
가용성
AWS에는 물리적으로 독립된 여러 개의 가용 영역이 있으며 Lambda는 복수의 가용 영역에서 실행된다. 사용자가 설정하지 않아도 고가용성, 장애 대응성이 유지된다.
확장성
Lambda는 동시에 다수의 처리를 해야하는 경우 자동으로 AWS가 관리하는 처리용 인스턴스가 시작되면서 확장된다. 서울 리전의 동시 실행 수는 최대 1000개이며 별도의 확장 신청을 통해 동시 실행 수를 늘리는 것도 가능하다.
API Gateway 서비스와 Lambda를 결합해 사용자의 HTTP 요청을 Lambda 함수로 처리할 수 있다.
API Gateway는 사용자로부터 HTTP 요청을 받으면 GET 같은 HTTP 메소드나 /api 등의 요청 경로에 대한 정보가 포함된 JSON 데이터를 Labmda 함수에 전달한다. Lambda 함수에서 응답 내용을 반환하도록 코드를 작성하면 API Gateway를 통해 응답을 반환한다. 웹 브라우저라면 웹 브라우저 화면에 응답 데이터가 표시된다.
API Gateway도 서버리스 서비스이므로 사용자는 서버를 구축하지 않고도 웹 응용 프로그램을 만들 수 있다.
실행 역할은 서비스와 상화 작용할 수 있는 권한 부여
IAM 정책: 수행할 작업을 정의
신뢰 정책: Lambda에 역할을 수임하고 사용자를 대신하여 함수를 호출할 수 있는 권한을 부여(AssumRole)
Lambda 함수를 VPC 내부의 리소스에 액세스할 수 있게 하려면
람다는 이러한 목적을 위해 AWSLambdaVPCAccessExecutionRole이라는 권한 정책을 제공한다.
Lambda 함수가 다른 서비스와 상호 작용하기 위해서는 실행 역할에 어떤 IAM 엔터티 를 포함해야 합니까? 해당 사항을 모두 선택하세요.
답: 1,2
수행할 수 있는 작업을 정의하는 IAM정책
Lambda에 "AssumeRole" 권한을 부여하는 신뢰 정책
호출할 수 있는 권한 부여
람다 함수를 호출할 수 있는 권한이 있는 이벤트를 람다 서비스에 알리는데 사용
AWS 계정 전체에서 람다 함수에 대한 액세스 권한을 쉽게 부여할 수 있음
많은 서비스가 이벤트 소스가 될 수 있다.
이벤트 소스는 이벤트를 게시하는 엔티티이고
람다 함수는 이벤트를 처리하는 사용자 지정 코드
서비스를 이벤트 트리거로 사용하는 구성을 소스 매핑이라고 한다.
함수 호출에서 즉각적인 응답 기대
람다에 기본 제공 재시도가 없음
애플리케이션 내에서 재시도 전략을 관리해야 한다.
API를 통해 동기식으로 람다를 호출하려면 RequestResponse를 사용해라
대기열에 들어가고 요청자가 함수가 완료될 때까지 기다리지 않는다.
배치 프로세스에 적합
람다는 사용자를 대신하여 호출을 두 번 더 자동으로 다시 시도
람다 함수에서 배달하지 못한 편지 대기열을 활성화할 수 있다.
API를 통해 비동기식으로 함수를 호출하려면 이벤트를 사용해라
람다 함수를 프로그래밍 방식으로 호출할 때는 호출 유형을 지정해해야 한다.
AWS 서비스가 소스일 때 호출 유형은 미리 결정 된다.
사용자 편의를 위해 람다 콘솔은 지정된 함수에 대한 모든 이벤트 소스를 보여준다.
람다 콘솔에서 테스트를 선택하면 항상 람다 함수를 동기식으로 호출한다.
비동기식 호출에 대한 대상을 지원하는데 코드를 작성하지 않고도 비동기식 호출의 결과를 AWS 서비스로 라우팅할 수 있다.
샤드에서 오류 발생 시 추가 처리가 차단됨
실패가 발생하면 실패한 레코드 배치가 만료되거나 성공적으로 처리될 때까지 람다는 스트림에서 새 레코드를 읽기 못한다. 스트림에서 각 샤드의 이벤트를 순서대로 처리해야 하기 때문에 중요하다.
대기열을 사용하면 배치의 오류가 대기열로 반환된다.
람다는 성공적으로 처리되거나 재시도 또는 보존 기간이 초과될 때까지 실패한 메시지를 계속 다시 시도한다.
메시지가 모든 재시도에 실패하면 DLQ가 구성된 경우 메시지가 DLQ로 이동하거나 삭제된다.
오류로 인해 배치 처리가 중단되지는 않지만, 메시지가 처리되는 순서가 변경될 수 있다.
이벤트 소스는 한동안 호출되지 않은 람다 함수를 트리거한다.
컨테이너를 시작하고 코드를 다운로드하고 런타임을 초기화한다.
함수 종속성을 초기화한 다음 코드를 실행한다.
4.이벤트 소스는 최근에 호출된 람다 함수의 호출을 트리거한다.
프로덕션에 있는 Lambda 함수의 문제를 해결하라는 메시지가 표시되었습니다. 5분 동안 실행된다고 들었으며 청구 가능 비용을 절약하기 위해 기간을 단축하라는 메시지가 표시되었습니다. 다음 중 어떤 조치를 취했습니까? 해당 사항을 모두 선택하세요.
• B - 프로덕션 모니터링을 통해 5분이 일반적인 기간인지 확인합니다.
• D - 더 높은 메모리 구성에서 테스트하고 각 구성의 기간과 비용을 비교합니다.
• E - 배포 패키지에 필요하지 않은 sdk 구성 요소가 있는지 확인합니다.
함수에 동시성 제한 또는 예약을 설정해야 하는 경우를 모두 고르세요.
- 비용 관리
- 이벤트 배치를 처리하는데 걸리는 시간 규제
- 다운스트림 리소스오 일치
- 예상 피크를 처리
좋은 정보 얻어갑니다, 감사합니다.