본문 바로가기
개발/devOps

AWS API Gateway와 Lambda 연동하기: Cognito로 보안까지 챙기자!🚀 (1편 Lambda 세팅)

by coking 2024. 12. 18.

안녕하세요, AWS 서비스들로 아키텍처를 구축하면서 겪은 경험을 공유하려고 합니다. 오늘은 API Gateway, Lambda, 그리고 Cognito를 활용한 안전하고 확장 가능한 서버리스 아키텍처 구축 이야기를 들려드릴게요!

 

왜 이런 구성을 선택했나요? 🤔

"API는 누구나 호출할 수 있어야 하지만, 아무나 호출하면 안 되죠!"

이 모순적인 문장이 바로 오늘 이야기의 시작점입니다. API는 접근성이 좋아야 하지만, 동시에 보안도 챙겨야 하는 양날의 검과 같죠. 그래서 저는 다음과 같은 AWS 서비스들을 조합해서 해결책을 만들어보았습니다:

  1. Amazon API Gateway: API 요청을 받아주는 문지기 👮
  2. AWS Lambda: 실제 비즈니스 로직을 처리하는 일꾼 💪
  3. Amazon Cognito: 인증과 권한 부여를 담당하는 보안 담당자 🔐

AWS 서비스 소개

Amazon API Gateway

API Gateway는 말 그대로 API의 관문입니다. 마치 고급 레스토랑의 안내 데스크처럼, 들어오는 손님(요청)을 적절한 자리(서비스)로 안내해주죠. REST API부터 WebSocket까지 다양한 형태의 API를 쉽게 만들고 관리할 수 있게 해줍니다.

AWS Lambda

Lambda는 서버리스의 핵심이자, 진정한 페이퍼 핸즈(?)입니다. 왜냐고요? 요청이 있을 때만 실행되고, 사용한 만큼만 과금되니까요! 마치 아르바이트 직원처럼, 필요할 때만 와서 일하고 돈을 받아가죠. 😄

Amazon Cognito

Cognito는 우리 시스템의 보안 담당자입니다. 사용자 인증부터 권한 관리까지, 보안과 관련된 모든 것을 처리해주죠. JWT 토큰을 발급하고 관리하는 것도 Cognito의 몫입니다.

 

 

먼저 람다 함수 먼저 생성하도록 합니다. 정말 간단합니다. 

람다 메뉴로 이동후 함수 메뉴 -> 함수 생성 -> 그럼 아래의 화면이 나옵니다.

 

기본 실행 역할은 권한입니다. lambda가 실행될때 가지는 권한이라 필요하신 부분을 새 역할 생성으로 만들어주시거나 람다만을 테스트해보는 용도라면 기본 옵션 그대로 가져가시면 됩니다. 기본 옵션으로 만들고 거기에 권한을 추가하는 것도 가능합니다!!

 

생성된 함수에 들어가보면 이런 화면이 나오는데 여기서 하단 메뉴 코드 버튼 클릭하면 아래와 같이 기본 code가 나옵니다. 

여기서 왼쪽 하단 Test 버튼 클릭하면 Create new test event 라는 버튼이 화면 중상단에 나오고 클릭하면

 

 

아래의 화면이 나오는데 이름 정하고 save 버튼 눌러주시면 됩니다. 나중에 테스트 할 때 람다 코드 실행시키는 용도입니다!

 

완료 후 다시 Test 버튼을 누르면 람다 코드가 실행되는 걸 확인 하실 수 있습니다!

이러면 람다는 호출 받을 준비가 끝났습니다. 다음 글에는 api gateway 생성, lambda연동 후 호출
그리고 cognito 생성 및 api gateway에 연동 글로 찾아뵐게요!

댓글