안녕하세요
이번 시간에는 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)
실습을 진행하기 앞서 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 메서드 실습을 진행해 봤습니다.
감사합니다.
'Cloud > Amazon Cloud' 카테고리의 다른 글
[AWS] AWS WorkSpaces: 클라우드 기반 가상 데스크톱의 혁신적인 작업 환경 구성하기 (0) | 2023.07.07 |
---|---|
[AWS] API Gateway REST API를 이용해 POST 메서드 실습하기 (1) | 2023.04.27 |
[AWS] API Gateway에 대해 알아보고 간단한 HTTP API 실습하기 (0) | 2023.04.26 |
[AWS] AWS Lambda에 대해 알아보고 Python 외부 모듈 적용하기 (0) | 2023.04.26 |
[AWS] AWS SAM을 이용한 로컬 환경에서 Lambda-MySQL 연동하기 (0) | 2023.04.25 |
클라우드, 개발, 자격증, 취업 정보 등 IT 정보 공간
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!