목 차
장점
서버 요청, 패치, 서버 작업을 신경 쓰지 않아도 된다.
개발자가 인프라가 아닌 개발에만 집중할 수 있게 해 준다.
비용이 저렴하다.
만능은 아니다. 필요한 경우에만 사용한다.
단점
시간적 제약이 있다.
최대 5분이상 수행할수 없다. 따라서 대규모 연산을 수행할수 없다.
이벤트를 처리하는 함수이다.
서버를 가지지 않는다.
MS의 Azure Function가 같다.
GCP의 Cloud Function 과 같다.
APIGW
S3
SNS
CloudWatch Event
CloudWatch log
Kinesis
DynamoDB
AWS Iot
CodeCommit
Cognito Sync
이벤트 발생 = 이벤트 트리거 = 이벤트 발생 소스
HTTP , APIGW , S3 등이 이벤트를 발생시킨다.
아래와 같은 순서로 원하는 것을 만들면 됩니다.
# 순서
1) 우선, 원하는 서비스의 구성을 간단히 그린다.
2) 구성에 따라 필요한 서비스를 만든다.
3) 정책을 만들고 필요한 role을 만든다.
4) 이벤트를 발생시킨다
5) 확인한다.
1. 람다 함수 만들기
2. role을 준다.
3. Test event를 만든다.
4. 기본적으로 제공되는 test lambda 코드를 확인과 수정.
5. Test 이벤트를 발생시킨다
6. 결과를 확인한다.
1. 람다 함수 만들기
람다 함수는 3가지로 만들 수 있다.
1) 새로 작성
2) 블루프 린프로 작성 - AWS 제공하는 템플릿으로 작성
3) AWS 파트너와 개발사에서 제공하는 람다 함수
1) 여기서는 새로 작성해 만들어 보겠다.
function name : lambda-start
node.js 10.x
[ Create function ]
2. 화면 아래쪽에서 실행 역할을 가져 온다.
1) 기존에 만들어진 role을 선택해 사용한다.
또는
1) AWS정책 템플릿에서 새 역할 생성
[Create a new role from AWS policy templates]로 해서 role을 새로 만든다.
Role name : role-text라고 이름을 만든다.
Policy templates : Basic Lambda@Edge permisions (for CloudFront trigger용)을 적용한다.
기본 Lambda@Edgwe권한 (Cloudfront 트리거 용)
AWSLambdaBasicExecutionRole
Lambda를 VPC안에 넣을 경우 Role
<SAVE>
2. Test event를 만든다.
lambda는 이벤트를 처리하는 함수이다.
이벤트가 있어야 한다.
실제 이벤트가 나올 때까지 기다릴 수 없다.
Test 할 수 있는 환경을 제공 하고 있다.
오른쪽 위에 TEST 클릭한다.
text를 보여주는 이벤트를 만든다.
Event name : startlambda로 한다.
테스트 : "text " : "start lambda!!!"로 한다.
3. 기본적으로 제공되는 test lambda 코드를 확인과 수정.
디폴트 코드를 확인한다.
Test 클릭해 실행한다.
4. 결과는 succeeded
내용은
200
Hello from Lambda!
이벤트로 입력한 text를
콘솔에 출력하는 것으로 수정한다.
5. Test 이벤트를 발생시킨다.
6. 결과를 확인한다.
Test 이벤트의 text가 결과로 나오도록 소스를 수정했다.
event.text 출력
결과가 Test 입력 내용인 start lambda!!! 가 나오는지 확인한다.
입력 이벤트 : text = "start lambda!!"
출력 : text 내용을 콘솔에 출력
start lambda!!
결과 보기
1. Lambda 생성후 기본 설정 편집하여 메모리 조정
빠르게 동작해야 하면 기본 128 보다 1024로 조정한다.
디폴트 128M이다.
최대 3008M까지 제공한다.
사용될 최대 메모리를 지정하는 것이다.
이에 따라 CPU가 결정된다.
2. 제한 시간 : 타임 아웃.
처리 시간이 걸리는건은 10초 정도로 조정한다.
기본 3초이다.
1초~300초(5분까지 가능)
3. X-ray
추척
X-Ray permission을 줘야 한다.
4. VPC 사용가능
Private에 놓는다.
5. DLQ Dead Letter Queue
Lambda로 보내지 못한 Letter 이다.
전송실패시 비동기 방식으로 큐의 데이터를 최소 2회 재시도 한다.
SNS와 SQS로 보낸다.
SNS, SQS 를 설정해야하는 이유이다.
SNS : from-xxxx-xxxx 로 만든다.
SNS Permission도 있어야 한다.
6. KMS 암호화 가능
AWK KMS (Key Management Service)를 사용해 암호화 환다.
7. 동시성 1000개
Concurrency
8. 대시보드
9. 버저닝
1) Action > Publish new version
2) 마지막 버전만 수정 가능하다.
Code and handler editing is only available for the $LATEST version. Go to $LATEST.
1
VPC 안에 Lambda를 넣자
Lambda가 VPC안에 있으면 Security Group으로 제어가 가능하다.
VPC > Private Subnet에 lambda 생성하자.
NATGW가 있어야 외부로 나갈수 있다.
2
VPC안에 람다를 설정하면, 보안그룹에서 80 443 에 대해 0.0.0.0/0 에서 하용하자.
3
VPC Flow-log를 통해 모니터링 가능하다.
https://brunch.co.kr/@topasvga/662
테스트 코드 입력
Zip 파일
S3에서 가져오기
감사합니다.