[AWS] API GateWay 사용기

HOKlNG·2021년 8월 3일
0

AWS

목록 보기
1/1

오늘은 aws의 api gateway를 사용해보도록 하겠습니다.

사용하는 이유를 간략히 설명하고 가자면

api 서버를 띄우기 위해서 엄청나게 많은 수고들을 api gateway에서는 매우 간단하게 진행할 수 있기 때문입니다.

보통 REST API 서버를 만들기 위해서 작업들을 생각해 본다면...

[기존 백엔드 REST API 서버 작업]

  • EC2 Instance(서버 장비)를 작동시켜야하고
  • 백엔드 서버를 구축하는데...(Django 예시)
  • Django와 django drf등 필요한 라이브러리를 설치하고
  • Django에서 project, app등을 생성하고
  • url을 연결하고, model, view 등을 작성하고
  • gunicorn 또는 uwsgi를 세팅하고 실행시키고
  • nginx도 세팅해서 실행시키고
  • 이후에 이 서버들을 관리해야합니다.

[API Gateway 작업]

  • aws lambda를 통해서 로직을 작성한다. (input과 output연산 및 정의 하는 코드)
  • API Gateway에 엔드포인트와 그에 실행될 lambda를 연결시킨다.

대충 보기에도 작업량의 차이가 엄청나죠??
조금 더 보태면 api gateway는 django에서는 urls.py를 작성하는 행위
aws lambdaviews.py를 작성하는 행위 정도 됩니다.

서버를 따로 띄우거나, 이후 관리하지 않아도 api gateway에 연결만 해놓으면 됩니다.

AWS Gateway 작성

  • api gateway 서칭

  • api gateway 생성

  • REST API 선택

  • 입력값 입력 후 생성

1.리소스 생성

  1. 작업 > 리소스생성

  2. 내용 입력

  3. 리소스 생성 확인

    다음과 같이 velog라는 이름으로 생겼죠? 이제 메서드를 생성해봅시다.

2. 메서드 생성

  1. 메서드 생성


다음과 같이 메서드 생성을 누르면 메서드를 선택하는 부분이 나옵니다. 이후 체크 표시를 눌러주세요
2. lambda 연결

근데 lambda함수를 생성한 적이 없으면 당연히 안 나오겠죠..?

Lambda 생성 (for apigateway)

  1. lambda 찾기

  2. lambda 생성

  3. 기본 세팅 화면

    여기서 이름과 런타임을 선택합니다.
    함수 이름은 velog로 하고, 런타임은 python을 선택하겠습니다.

4.lambda에서 의 함수

다음과 같이(노란부분) 코드를 작성하는 부분이 있는데
원하는 리턴값이 있다면
함수를 작성해서 다음처럼 json형식으로 return해주는 형식으로 세팅합니다.
(api gateway에 연결하면 나오는 response가 됨)

혹시 코드를 변경했으면 위에 Deploy를 눌러줘야합니다!

마무리 (lambda연결)

  1. lambda 입력

    아까 작성한 lambda함수의 이름을 입력하면 밑에 선택지가 나타날 것입니다.
    (종종 아무것도 안뜨시는 분은 lambda를 작성한 lambda 리전을 체크해보시기 바랍니다.)

  2. 저장

    저장을 누르게 되면 lambda를 부르는 권한을 추가하겠다는 부분이 나옵니다. 확인을 눌러주셔야합니다.

  3. 확인
    끝나면 다음과 같은 화면으로 이동됩니다.

테스트를 해봐도 되지만 바로 배포를 해보겠습니다.

4.배포


배포가 처음이면 배포 스테이지를 만들 수 있습니다. 그냥 이름 넣고 생성만 해주시면 됩니다.


스테이지를 만들고 다음단계로 넘어가면 호출하는 URL을 제공합니다. 사진에서는 검은색으로 가렸지만 해당부분으로 API를 요청하시면 됩니다!

결과


/velog 엔드포인트에서 연결해놓은 lambda함수의 return값이 출력되는 것이 확인되었습니다!

에러

{"message":"Missing Authentication Token"}

이런 메시지가 발생한다면 endpoint를 잘 넣었는지 다시 url의 뒷부분을 확인해주시기 바랍니다.

0개의 댓글