본문 바로가기
DevOps/Architecture

Serverless아키텍쳐 구성3 - Lambda(람다)& API Gateway

by 카프리썬 2020. 3. 24.
728x90

1) Lambda 

AWS에서제공하는 함수기반의 서비스 -> FaaS(Function as a Service)

즉, 실제 ec2와 같은 서버없이도 서버의 역할을 대신 해 줄 수 있는 aws서비스

 

Serverless에서 실질적으로 back-end코딩을 하는 곳
보통 JSP,PHP로 일반 서버에서 DB에 접근해서 데이터를 처리하는 로직을 람다에서 수행가능

 

*일반 서버와 다른점
서버의 환경설정에 대해 큰 신경을 쓰지 않아도댐
AWS
서비스에서 제공하는 환경에 따라서 오토스케일링 할 수 있고, 간단한게 셋팅가능

 

*람다에 역할이 필요한 이유
람다는 AWS내에 있는 서비스들을 접근해서 이용할 수 있음
그래서 권한에 맞게 서비스를 가져다 쓸 수 잇도록 역할부여
->대신 디폴트로 들어가는 람다수행롤에는 Cloudwatch log 서비스 허용권한이 들어감

 

*이벤트 : 클라이언트의 활동

*트리거 : 이벤트가 발생되는 시점
트리거를 추가한다 = 람다함수가 언제 실행될지를 결정한다.
즉 ,api
게이트웨이로 트리거를 추가한다 = api 게이트웨이로 이벤트가 들어오면 람다함수 실행된다!

이벤트가 발생하면 핸들러 함수의 event 매개변수로 값이 들어옴

*핸들러함수 : 가장 먼저 실행되는 메인 함수 

 

2) API 게이트웨이

사용할 api를 정의할 수 있는 aws서비스
게이트웨이를 통과한 데이터들을 사용자가 정의한 API 메소드에 따라서 람다와 같은 역할을 수행

 

 

 

결론 : 서버클라이언트 간에 API Gateway를 통해서 데이터를 주고받을 수 있음

-메소드생성 : GET/POST/PUT/DELETE 메소드
메소드가 실행되면 어느 곳에서 처리를 할지 선택(람다함수,HTTP, AWS서비스 선택가능)

 

aws내부의 서비스(lambda)와 외부의 연결통로
여기로 들어온 요청을 지정된 곳으로 리다이렉트 해줄 수 있음

그 규칙을 Restful API방식으로 지정한다!


람다를 만든 후에 외부에서 해당 람다에 접근할 수 있도록 하기 위해서 api gateway필요
람다는 함수로서 역할을 수행하기 때문에 실제 서버처럼 동작하려면 api gateway를 이용해서 공인ip주소 설정이 필요

 

*Restful API

HTTP 통신에서 Request와 Response를 Method로 표현해서 주고받는 방식

데이터를 보내는 방식에 차이를 둬서 어떤 요청인지 알아내고, 데이터를 처리한 후에 응답을 보내는 방식

 

 

 

*GET방식

  • Request의 데이터를 URLQueryString 형태로 전송(URL에 직접노출)
  • 전송할 데이터의 길이 제한이 있음
  • 서버의 내용을 조회할 때 사용(SELECT)
  • ex) 로그인, 게시판 글 조회

*POST방식

  • Request의 데이터를 Body에 넣어서 전송 (URL에 직접노출이 되지 않음)
  • 전송할 데이터의 길이에 제한이 없음
  • 서버의 내용을 생성하거나 변경 할 때 사용
  • ex) 회원가입, 게시판 글 작성(CRUD)

https://pearlluck.tistory.com/13

 

get방식 vs post방식 차이점

HTTP 웹상에서 클라이언트와 서버간에 요청/응답으로 데이터를 주고받는 프로토콜 클라이언트가 HTTP 프로토콜을 통해서 서버서에 요청을 보내면 서버는 요청에 맞는 응답을 클라이언트에게 전송한다. 이때 HTTP메..

pearlluck.tistory.com

 

+추가

웹브라우저의 기본 method는 get방식, 따라서 post방식을 테스트해볼려면 추가작업필요(API테스트 툴)

chrome-extension://aejoelaoggembcahagimdiliamlcdmfm/index.html

또는 웹브라우저 단에서 추가로 POST방식 console입력

반응형