본문 바로가기

Dev/인프라

AWS API Gateway 기초 개념 정리

 

 Rest API 같은 인터넷 기반의 API 를 사용하면, 여러 서버들로 API 가 분산될 수 있고, 각 서버는 도메인이 다를 수 있다. 클라이언트에는 API를 호출하는 수많은 코드가 있다. 만약 example.org 서버가 example.com 서버로 통합된다면? 클라이언트에서 org 서버를 호출하는 코드들은 더 이상 동작하지 않을 것이다. 코드를 모두 고치는 수고스러움이 존재한다.

 

 

 이런 수고를 덜기 위해 API Gateway를 이용할 수 있다. API Gateway는 자신만의 주소(example.io)를 가진다. 그리고 그 주소의 경로별로 어떤 서버로 연결할 지를 결정한다. 서버가 통합되더라도 클라이언트의 어떤 코드도 변경하지 않고 게이트웨이 옵션을 변경하면 모두 잘 동작한다. 람다 사용 시 서버리스 서비스 이용 가능하다.

 

 API Gateway는 단일 진입점으로 들어오는 사용자의 요청을 적절한 서버로 라우팅시켜준다.API Gateway가 모든 통로의 입구이기 때문에 가지는 이점은 다음과 같다.

- 로깅

- 엑세스 제어

- 모니터링

- 인증

 

[API를 AWS API Gateway로 제공하는 방법]

 AWS Apigateway 크게 3가지 제품으로 구성되어 있다.

- HTTP API : 단순, 저렴

- REST API : 복잡, 비쌈

- WEB SOCKET API

 

1) 클라우드 콘솔 – API Gateway 검색 – HTTP API 선택

2) 구축 버튼 클릭 – API 이름 생성 – 빈 API 게이트웨이 생성 완료

스테이지 URL : 진입점이다.

3) 경로 선택 – 통합 생성 및 연결 – 서버 도메인 입력 – 생성

Any(메소드) /topics : 토픽으로 들어오는 어떤 리소스 간에 지정할 서버 선택

 

 

[추가 기능]

- 모니터링-지표, 로깅 : api gateway 모니터링

- 배포-스테이지 : api 버전 관리. Api gateway는 기본적으로 자동 배포가 된다. 자동 배포를 원하지 않는다면 배포 설정을 변경하면 된다.

- 람다 함수 연결하게 되면 서버리스 형식 가능

- 권한 : API 인증 붙일 시 이용 가능

- CORS : cross origin resource sharing. 클라이언트에서 ajax를 통해 같은 도메인 api를 호출하는 것은 허용이 되지만, 다른 도메인에 해당하는 api를 호출하는 것은 허용되지 않는다. 이를 허용하기 위해서 CORS 정책을 설정한다. API 서버가 어떤 브라우저든지, 어떤 웹사이트든지 접속하게 하고 싶다면 Access control allow origin 으로 설정한다. 하지만 보안상의 문제가 있을 수도 있다.

 

 

참고 : https://www.youtube.com/watch?v=60goWpADp-I

 

'Dev > 인프라' 카테고리의 다른 글

[Docker] 도커 입문  (0) 2022.04.04
AWS 기초 개념 정리  (0) 2022.01.07