AWS/Lambda - Lambda 시작하기/생성하기
AWS Lambda란?
공식 문서의 설명은 다음과 같다.
https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/welcome.html
AWS Lambda란 무엇인가요? - AWS Lambda
AWS Lambda란 무엇인가요? AWS Lambda은 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스입니다. Lambda는 고가용성 컴퓨팅 인프라에서 코드를 실행하고 서버와
docs.aws.amazon.com
간단하게 정리하자면, 필요 시에만 함수를 실행하게 해주는 컴퓨팅 서비스라는 것이다.
굳이 서버가 내내 켜져있을 필요 없이 필요에 의해 Lambda 함수를 호출하면, 그 때 함수를 실행하는 것이다.
컴퓨터를 매일 켜놓을 필요 없이, 내가 하고 싶을 때만 켜서 전기요금을 절약한다고 생각하면 될 것 같다.
물론 이런 경우, 컴퓨터가 매일 켜져있는 상황과 비교하면 초기 응답속도 면에서 느릴 수도 있을 것이다.(Cold Start)
람다는 100 밀리초 단위로 실행한 시간 만큼만 과금하는 On-Demand 구조이며 다음과 같은 절차대로 동작한다.
- 함수 호출
- 인스턴스 생성 및 Handler 메서드 실행
- 함수가 응답을 반환하면 활성 상태 유지 및 추가 이벤트 처리하기 위해 대기함.
- 첫 번째 이벤트가 처리하는 동안 함수를 다시 호출하면 함수는 두 이벤트를 동시에 처리함.
- 이벤트가 추가로 수신되면 Lambda는 이 이벤트를 사용 가능한 인스턴스로 라우팅하고 필요 시 새 인스턴스를 생성.
- 함수는 함수의 리전에 대한 계정의 동시성 한도에 도달할 때까지 계속 확장.
AWS에서 Lambda를 생성하는 방법은 아주 간단하다.
자신이 Lambda에서 사용할 함수의 Runtime과 AWS내에서 권한 관리를 담당하는 IAM 아래의 Role만 잘 선택해주면 된다.
먼저, AWS Lambda의 메인 페이지에서 Create Function을 클릭하면 다음과 같은 Lambda 생성 페이지로 넘어간다.
클릭하면 아래와 같은 세부사항 설정 페이지로 넘어간다.
Function name, 함수 이름은 당연히 계정 내의 다른 함수와 중복되면 안된다.
Runtime의 경우 본인이 활용하는 언어를 선택해주면 된다. 참고로 자바를 활용하는 경우 Architecture 선택 시 다음 링크를 참고하자.
Java 8 Amazon Linux 1의 경우에는 x86_64만 가능하다.
https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/lambda-java.html
Java를 사용하여 Lambda 함수 빌드 - AWS Lambda
이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.
docs.aws.amazon.com
그 다음, Lambda의 권한을 설정해주어야 한다.
Lambda가 AWS 내의 다른 서비스(예를 들어, Dynamo DB, Step Function)나 리소스 (S3 버킷 안의 이미지 등)에 접근하기 위해서는AWS Identity and Access Management(IAM)에서 Lambda의 권한을 설정해주어야 한다.
캡쳐 이미지에서 볼 수 있듯, 권한 설정에는 3가지 옵션이 있는데 권한 설정에 대해서는 아래 글을 참고하자
https://seungboo.tistory.com/12
AWS/Lambda - Lambda Role 설정하기/권한 설정
https://seungboo.tistory.com/11 참고) 람다 생성하기 AWS/Lambda - Lambda 시작하기/생성하기 AWS Lambda란? 공식 문서의 설명은 다음과 같다. https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/welcome.html AWS Lambda란 무엇인가
seungboo.tistory.com