Serverless의 주축을 담당
기존에는 서버를 만들고 다양한 모니터링을 하고 문제점을 발생할때 해결 했어야 하지만, 서버리스의 경우 클라우드가 직접 서버를 돌려주고 생성하며 리소스들을 서버의 사용량에 따라 직접 할당해주기 때문에 문제점이 덜 발생한다. 즉, 사람의 간섭이 거의 없는 경우이다.
Events를 통하여 Lambda를 실행시킴
주어 + 동사 -> 동사부분이 이벤트라고 이해하자
즉, s3에 파일을 '업로드 한다', '삭제한다' 가 이벤트
이런 이벤트가 발생될때 lambda가 실행된다
NodeJS, Python, Java, GO등 다양한 언어 지원
이벤트가 감지됐을때 짠 코드가 실행되고, 마무리 될 때 또 다른 서비스를 불러올 수 있다. 즉, lambda는 aws 아키텍처를 구현할때 중간중간에 배치 되는 경우가 흔하다.
Lambda Function
람다에서 짠 코드가 람다 함수
CloudWatch와 매우 밀접한 관련
S3 버켓에 파일을 올리는 경우 PutObject라는 이벤트 발생-> 람다함수 실행시킴 -> 람다는 데이터 변환, 불필요한 데이터 삭제 -> 람다는 데이터 베이스에 깨끗한 데이터를 업로드
IoT를 통해 실시간 데이터가 들어오는 경우 topic을 통해 다양한 이벤트들을 관리, 데이터를 보내 람다 함수 호출 -> SNS 실시간 경고 줄 수 있음
동시성(concurrency)
얼마나 많은 함수들을 같은 요청이 들어왔을 때 돌릴 수 있는지에 대한 설정
만약 우리가 설정해놓은 동시성보다 더 많은 함수 요청이 들어온다면 모든 함수가 정상적으로 호출 되지 않으므로 어플리케이션에 맞게 설정해줘야 한다.
람다 함수 생성
기본 Lambda 권한을 가진 새 역할 생성 : Lambda 함수를 사용하면서 생성되는 로그파일들이 CloudWatch로 쓰여지는 권한이 생긴다
아래에 Lambda 함수 코드 작성된다
람다 함수 테스트
람다함수에 보내고 싶은 값 보낼 수 있으며, 함수가 올바른 값 출력 할 수 있는지 테스트함
람다 함수와 CloudWatch 관계
함수가 돌아가는데 걸린 시간, 차지한 메모리를 확인할 수 있고, CloudWatch로 들어가 확인할 수도 있음. 즉, 람다 함수를 돌릴때 cloudwatch 기능을 사용하여 람다함수가 잘 돌아가는지 디버깅할 수 있다
람다 함수와 IAM 관계
람다함수 만들때 AWS에서 만들어준 역할을 사용했음
어떻게 생겼는지 확인 IAM - 역할 -> 보관해준 역할 이름과 같음
람다 함수와 S3 관계
S3 이벤트 안에 알람 추가로 전송 대상이 람다함수를 넣을 수도 있음