📌 API란?
API는 Application Programming Interface의 약자이며, 요청을 받고 요청받은 일들을 알아서 처리해준다.
📌 RESTful API란?
API 종류들 중 하나
- REpresentational State Transfer : 상태에 변화를 주기 위해 그 정보를 서버와 클라이언트 간에 공유하고 주고 받기 위해 사용된다.
- CREATE(post), READ(get), UPDATE(put), DELETE(delete)
- JSON형태로 요청을 받고 해결함
- ex) { “customer_id”: “simon_05”,
“category”: “car”}
API Gateway에 들어가기 앞서
- 대부분의 어플리케이션은 RESTful API 기반으로 운용됨
- 매우 힘든 RESTful API 관리
- Authentication & Authorization
어플리케이션에서 모든 사용자들이 API 요청을 하는 것을 허용해서는 안된다. 예로 회원/비회원, 로그인/비로그인
- API 요청을 모니터링 해야함
- 더나은 성능을 위해 API 요청 캐시 시스템 필요
사용한 API를 캐시에 넣어 빠르게 요청할 수 있도록 함
📌 API Gateway란?
- 뛰어난 확장성 제공 및 API를 만들고 운영하고 모니터링 가능
모니터링은 CloudWatch 로그를 통해 확인
- Back-end 서비스 (웹 어플리케이션, EC2)에 들어있는 데이터 접근 허용
- Pay As You Go
계속 비용을 지불하는 것이 아니라 API를 사용할때 오래걸리는지, 얼마나 많은 데이터를 처리하는지에, 대해 비용 지불, 비용적으로 큰 이점
실습
API Gateway : 사용자로부터 다양한 요청을 받음
Lambda Function : 이 정보를 람다함수로 전달
DynamoDB : 사용자 요청에 따라 DynamoDB에 데이터를 관리(업데이트, 삭제, 수정)
1) DynamoDB 생성
파티션 키에 따라 DynamoDB 성능을 극대화 시킬 수 있음
2) API Gateway 생성
보안상 VPC 내에서만 사용할 수 있는 것은 프라이빗
새 API 생성하는 방법은 3가지 (람다함수처럼)
엔드포인트 유형 - 지역
3) 이 API를 사용하여 DynamoDB에 넣고 싶은데, 리소스를 생성 후 메소드 생성
4) Lambda 함수 생성, API Gateway에서 전달받은 요청은 Lambda에서 어떻게 보여질 것인지? 배포 (저장)
5) API Gateway에서 생성한 Lambda 함수와 연결 후 메서드 실행할 때 요청 본문에 내용을 보내고 후에 로그 보기