안녕하세요!
이번주에 모임에서는 'AWS Lambda를 어떻게 다른 AWS 서비스들과 연동해서 사용하는지' 에 대하여 얘기를 해보았습니다
1. AWS Lambda 라는 서비스는 무엇인가?
Lambda가 무엇인가에 대해서는
https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/welcome.html <- 이곳에서 문서를 볼수 있습니다
간단하게 설명을 하자면
서비스를 개발하고 있는데 서버를 두고 관리하기에는 부담스럽다 하시면 Lambda는 괜찮은 서비스입니다
그 밖에도 장점이 있는데 말로 설명하기보다는
https://www.youtube.com/watch?v=eOBq__h4OJ4&feature=youtu.be
이 영상을 한번 보시는게 더 이해가 빨리 되실것 같네요
2. AWS Lambda 함수 생성하기
이제 람다 함수를 만들어 볼까요
AWS Console -> Lambda 로 들어가면 보이는 페이지입니다
람다에서는 코드의 실행 단위를 함수라고 부르고있습니다
왜 함수라고 부르는지는 이 글을 잘 따라오시다보면 느낌이 오실거라고 생각합니다
일단 함수 생성을 해볼까요?
함수 생성을 누르면 보이는 화면입니다
1. 함수의 이름
2. 사용할 언어
3. 람다의 실행 역할 (권한)
을 설정해주고 함수를 생성해주시면 됩니다
혹시 여기서 1,2 번은 알겠는데 3번을 잘 모르시겠다면 일단은 그냥 진행해도 괜찮습니다
아래에 적혀있듯이 추후에 수정할 수 있습니다
3. AWS Lambda 함수 살펴보기
축하합니다! 람다 함수가 생성되었어요!
이제 한번 간단하게 살펴볼까요
Disigner는 말 그대로 람다 함수를 디자인 할 수 있습니다
왼쪽에 보이는 AWS 서비스를 추가하여 함수를 실행시키는 트리거를 설정할 수 있습니다
오른쪽에는 함수가 실행되어 작업을 할 수 있는 AWS 서비스들을 볼 수 있습니다
이 곳은 보이시는대로 함수에서 실행될 코드를 넣어주는 곳입니다
람다 함수로 실행하고싶은 코드를 작성하여 유형을 선택해주시면 됩니다
이 곳은 실행 역할(권한) 과 사용할 메모리, 제한 시간을 설정 할 수 있습니다
람다 함수는 사용하는 메모리도 요금 책정에 중요한 지표가 되니 너무 크게 설정해두면 낭패를 보실 수도 있어요
4. AWS Lambda 함수 역할 설정해주기
아까 그냥 넘어갔던 역할을 설정해볼까요?
역할 확인을 클릭해주세요
나타나는 화면에서 정책 연결을 클릭해주세요
저는 람다 함수로 DynamoDB의 테이블 내용을 바꿔주고 싶기때문에
람다 함수에 DynamoDB를 수정할 수 있는 역할(권한)을 주고 싶어요
이글을 보시는 여러분들은 각자 원하는 정책을 검색해서 추가해주세요
5. AWS Lambda 함수 트리거 설정해주기
다시 이곳으로 돌아와서 트리거를 설정해볼까요
설정해준 역할(권한)이 잘 적용된걸 람다 함수 오른쪽을 보시면 알 수 있습니다
저는 S3에 제가 설정한 버킷에 파일이 올라오면 람다 함수가 실행되도록 해보겠습니다
왼쪽 '트리커 추가' 에서 S3 를 선택해줍니다
S3 를 선택하게되면 트리거를 구성해주는 화면이 나타납니다
1. S3 버킷 선택
2. 버킷에 일어나는 이벤트
3.접두사
4. 접미사
를 설정해주시고 추가를 해주시면 트리거가 추가됩니다
접두사 접미사가 감이 잘 안오신다면 이렇게 이해하시면 됩니다
ex ) S3버킷이름 / uploads(폴더) / image.jpg -> 버킷 / 접두사 / 파일이름 + 접미사
6. AWS Lambda 함수 저장 후 실행하기
활성화된 저장 버튼을 누르시고 (저장은 언제 어디서나 아주 중요합니다)
트리거로 설정해둔 S3 버킷의 폴더에 이미지 파일을 올려보겠습니다
그리고 DynamoDB의 테이블로 가보면
파일이름을 Key 로 삼아 Table에 데이터를 넣어주었습니다
물론 S3에 올라온 이미지파일의 데이터를 가져와서 DynamoDB 에 넣어주는것은 람다 함수에 코드를 작성해주셔야 합니다 ^^
7. 전체도
오늘 만든 Lambda 함수의 전체도입니다
부족한 글을 여기까지 읽어주셔서 감사합니다!
좋은 하루 보내세요!
'개발이야기' 카테고리의 다른 글
생체로그인의 표준인 FIDO2.0 소개 (0) | 2019.07.12 |
---|---|
이번주 개발 이야기 (0) | 2019.06.29 |
생산성과 일 머리 (0) | 2019.06.28 |
TypeScript 적용하여 개발하기 (0) | 2019.06.23 |
개발작당 모임 팀블로그 시작하다 (0) | 2019.06.09 |