Cloud/Amazon Cloud

[AWS] API Gateway REST API에 대해 알아보고 GET 메서드 실습하기

__Evening 2023. 4. 27. 16:20
반응형

안녕하세요

 

이번 시간에는 API Gateway REST API에 대해 알아보고 REST API를 이용한 GET 메서드 실습을 진행하겠습니다.

 

1. REST API 란?

REST API는 전통적인 RESTful API입니다. 이 API는 클라이언트와 서버 간의 통신을 위해 HTTP를 사용하며, RESTful 원칙을 따릅니다. 이러한 API는 API Gateway에서 매우 유연하게 구성할 수 있으며, API에서 자체 작성한 코드 또는 Lambda 함수를 호출하여 백엔드 서비스와 통합할 수 있습니다. 또한, REST API는 다양한 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 요청을 처리합니다.

 

2. REST API 장점

1. 유연성

다양한 HTTP 메소드를 지원하여 다양한 요청을 처리할 수 있습니다. 이 API는 자체 작성한 코드나 AWS Lambda 함수와 통합할 수 있어 백엔드 시스템과의 통합이 용이합니다. 또한, AWS API Gateway에서 REST API를 구성할 때 다양한 요청 및 응답 형식, 매개변수, 캐싱, 로깅, 보안 등의 구성 옵션을 제공하여 API를 맞춤 설정할 수 있습니다.

 

2. 다중 리소스 경로

다중 리소스 경로를 지원합니다. 이를 통해 리소스 경로에 하위 리소스 경로를 추가하여 API의 구조를 유연하게 설계할 수 있습니다. 예를 들어, /users/{userId}/orders와 같은 경로를 사용하여 특정 사용자의 주문을 검색할 수 있습니다.

 

3. 사용자 지정 도메인

사용자 지정 도메인 이름을 설정할 수 있습니다. 이를 통해 API에 대한 사용자 정의 URL을 사용하여 더 쉽게 호출할 수 있습니다. 또한, 사용자 지정 도메인을 사용하면 API를 외부 서비스와 통합하는 데도 용이합니다.

 

4. 스테이지 변수

다양한 스테이지 변수를 사용하여 서로 다른 스테이지 환경 간에 동일한 API를 배포할 수 있습니다. 이를 통해 개발, 테스트, 스테이징 및 프로덕션 환경을 각각 다른 스테이지로 구성하고 각 스테이지의 API 요청과 응답을 다른 방식으로 처리할 수 있습니다.

 

5. 보안

AWS IAM (Identity and Access Management)과 통합하여 API에 대한 액세스 권한을 관리할 수 있습니다. 또한, SSL/TLS 암호화를 지원하여 데이터 보안을 보장할 수 있습니다. API Gateway는 또한 API 요청을 검증하고 AWS WAF(Web Application Firewall)를 사용하여 악성 요청으로부터 보호할 수 있습니다.

 

6. 모니터링 및 로깅

AWS CloudWatch를 사용하여 API의 성능 및 가용성을 모니터링할 수 있습니다. 또한, API Gateway는 API 요청 및 응답 데이터를 로그에 기록하여 API의 작동 상태를 추적하고 문제를 식별할 수 있습니다.

 

3. REST API GET 메서드 실습하기

[AWS] AWS Lambda에 대해 알아보고 Python 외부 모듈 적용하기 (tistory.com)

 

[AWS] AWS Lambda에 대해 알아보고 Python 외부 모듈 적용하기

안녕하세요 이번 시간에는 AWS Lambda에 대해 알아보고 2가지 방법으로 외부 모듈을 적용하는 실습을 진행하겠습니다. 1. Lambda 란? AWS Lambda는 Amazon Web Services의 서비스 중 하나로, 서버리스 아키텍처

eveningdev.tistory.com

실습을 진행하기 앞서 Lambda에 대한 내용을 전혀 모르신다면 위 포스팅을 참고해 주세요.

 

import json

def lambda_handler(event, context):
    get_data = event['myKey']
    return {
        'statusCode': 200,
        'body': json.dumps(get_data + ' get method')
    }

REST API GET 메서드 실습을 위해 다음과 같이 Lambda 함수를 작성합니다.

 

AWS 콘솔에서 API Gateway를 검색한 후 선택합니다.

 

우측 상단에 있는 [API 생성] 버튼을 선택합니다.

 

실습할 내용은 REST API이기 때문에 REST API [구축]을 선택합니다.

 

다음과 같이 선택한 후 [API 생성]을 눌러줍니다.

 

메서드 생성에 앞서 [리소스 생성]을 선택합니다.

 

리소스 이름을 설정한 후 [리소스 생성] 버튼을 눌러줍니다.

 

메서드를 생성하기 위해 다음과 같이 [/hyuk]이라는 리소스를 선택한 후 [작업] - [메서드 생성]을 선택합니다.

 

다음과 같이 [GET] 메서드를 선택한 후 체크를 눌러줍니다.

 

통합 유형으로 Lambda를 선택하고 만들어주었던 Lambda 함수를 지정한 후 [저장] 합니다.

 

Lambda 함수를 호출하기 위한 권한을 부여합니다.

 

[메서드 요청]을 선택합니다.

 

GET 메서드를 사용하기 위해 URL에 GET으로 들어갈 쿼리 문자열을 추가합니다.

 

Lambda 함수에서 event로 받는 'myKey' 값을 추가한 후 체크합니다.

 

다시 GET 메서드 메인으로 나옵니다.

 

다음은 [통합 요청]을 선택합니다.

 

매핑 템플릿을 설정하면 Lambda 함수에 event로 동작하게 되는데 다음과 같이 설정한다.

 

{ 
    "myKey": "$input.params('myKey')"
}

URL에 myKey 값을 지정하면 `$input.params`로 인해 "myKey" 값의 Value 값으로 들어가게 된다.

 

다시 상단으로 올라와서 [메서드 실행] 버튼을 눌러 메서드 메인 화면으로 돌아간다.

 

다음과 같이 [테스트]를 눌러 GET으로 동작하는지 테스트해줍니다.

 

 

 

다음으로 API를 배포합니다.

 

API Gateway에서 배포 스테이지는 API의 라이브 버전을 관리하는 방법을 제공합니다. 배포 스테이지를 사용하여 특정 API 버전을 특정 환경에 배포할 수 있는데 각각의 배포 스테이지는 고유한 URL을 가지고 있어 URL을 이용하여 API에 대한 요청을 보낼 수 있습니다.

 

그러면 다음과 같이 스테이지가 정상적으로 생성된 것을 확인할 수 있습니다.

 

URL 파라미터 부분에 Key와 Value 값을 넣으면 Lambda 함수의 return 값으로 들어가는 것을 확인할 수 있습니다.

 

Lambda 함수로 돌아와 확인해 보면 트리거 위치에 API 게이트웨이가 추가된 것을 확인할 수 있습니다. API 게이트웨이를 선택하면 다음과 같이 구성에 대해 상세하게 볼 수 있는데 [API 엔드포인트]를 선택한 후 파라미터를 추가하면 GET 메서드가 동작합니다.

 

이번 시간에는 API Gateway REST API에 대해 알아보고 REST API를 이용한 GET 메서드 실습을 진행해 봤습니다.

 

감사합니다.

 

반응형