Amazon Web Serivce 자격증 쉽게 공부하기/AWS Solutions Architect Associate 핵심
SAA-C03 핵심 #30, API Gateway
네트워크 엔지니어 환영
2024. 1. 19. 20:54
반응형
필수개념
- REST(Representational State Transfer)의 추상적 정의 :
소프트웨어의 구성요소들 사이의 관계를 표현한 '소프트웨어 아키텍쳐'의 한 형식, Server에서 제공하는 자원을 정의하고 자원에 대한 주소를 지정하는 방식을 뜻함. - REST(Representational State Transfer)의 구체적 정의 :
모든 자원(Resource)을 HTTP URI(Uniform Resource Identifier)로 표현하고, '행위'에 해당하는 HTTP Method(GET, PUT, POST, DELETE)를 통해 해당 자원에 대해 CRUD를 지시하는 것을 뜻함.
- CRUD : Create(생성), Read(조회), Update(수정), Delete(삭제)
- 하나의 웹사이트가 존재하고 각종 이미지와 텍스트 파일 등을 제공할 경우, 이미지 하나하나와 텍스트 파일 하나하나는 고유의 URI를 갖게 됨.
- Client는 그 URI를 GET(조회), PUT(수정)하는 등의 행동을 통해 통신할 수 있음.
- http://www.abc.com/user/hyoh/name -- > 'name'으로 저장된 resource의 URI
- HTTP GET /user/hyoh/name -- > 해당 resource 호출, 'name'의 값을 가져옴
REST의 필수 3요소
- 자원(Resource) : Server에서 제공하는 모든 Resource
- 행위(Verb) : HTTP Method를 사용하여 Server에서 제공하는 Resource를 취득하는 행위
- 표현(Representations) : HTTP Method에 응답하여 Server가 전달하는 Resource를 표현하는 방법
HTTP GET /user/hyoh/name
{
"name" : "hyoh"('name'의 값)
}
REST API
- 위에서 설명한 REST의 특성에 맞게 설계한 API를 REST API라 칭함
API Gateway란?
- REST API 및 Websocket API를 생성, 유지, 관리하는 AWS 서비스
- Lambda, AWS Service, VPC, HTTP webpage 등과 연동하여 resource에 대한 HTTP Method 정의 가능
- API Gateway와 Lambda를 연동하여 사용하기 용이함
: User - > API Gateway -> Lambda - 핵심 구성요소로 Resource와 Method, Stage가 있음
- API Gateway 생성시, 최상위에 '/ Method(Root Method)'가 하나만 존재하는 상태로 시작함
- Cloudfront를 통해 정적 페이지는 S3에서 제공하고, 동적 페이지 혹은 데이터는 Cloudfront - API Gateway - Lambda를 통해 처리하는 방식 사용 가능
- API Gateway는 HTTPS endpoints 통해 URI를 게시함
- AWS가 프로비저닝과 관리를 분담하고 고객이 개발만을 집중하고자 할 경우 API Gateway와 Lambda가 유용하게 사용될 수 있음
Resource
- API Gateway의 핵심 구성요소 중 하나
- 서비스의 대상이 되는 자원을 의미
- 모든 자원(Resource)를 HTTP URI로 표현하는 REST의 특성상, 각 리소스는 고유의 URI를 부여받음
- Resource는 HTTP Method를 생성할 수 있으며, Method에 대해 연결 포인트를 만들어 행동 대상을 지정할 수 있음
Method
- API Gateway의 핵심 구성요소 중 하나
- 서비스의 대상으로 지정된 자원에 대해 취할 행동을 정의함
- HTTP Method가 사용되며 GET, PUT, POST, HEAD, OPTION 등이 있음
- 각 Method마다 연결 포인트를 지정할 수 있음
- Lambda를 연결 포인트로 지정시 Lambda Function을 호출하여 수행함
Stage
- API Gateway의 핵심 구성요소 중 하나
- 위에서 언급한 두 개의 요소를 하나로 합쳐 Console에서는 'Resource'라 표현하며, 'Resource'를 배포한 것이 Stage
- Client가 실제로 사용하기 위해 생성해야하는 배포판
- Stage 생성시 각 리소스에 대해 URI가 생성된 것을 확인할 수 있음
Canary Relase(카나리 배포)
- 신규 버전을 완전히 배포하기 전에 일부 트래픽에 한해 기존 버전이 아닌 신규 버전으로 배포하여 점진적으로 확장하는 전략
- API Gateway 또한 카나리 배포를 활용할 수 있음
** 참고 서적 및 링크
- AWS Lambda in Action(다닐로 포치아 저)
- AWS 설명서 Lambda, API Gateway
- https://mangkyu.tistory.com/46
- https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html