API Gateway란 클라이언트와 백엔드 사이에 위치 한 API 관리 툴로서 내부의 여러 API들에 대한 통합된 하나의 엔트리 포인트를 제공합니다. 중간에 위치해서 클라이언트의 특정 API에 대한 요청을 라우팅해주는 역할을 해줍니다.
라우팅 기능 외에도 메디에이션(API 요청 및 응답에 대한 수정/추가/삭제), 인증 및 인가, 트레픽 제어, 서킷 브레이크, 모니터링 등 다양한 기능들을 제공해주면서 API관리의 편의성을 증대 시켜주는 역할도 가능합니다.
마이크로서비스 아키텍쳐는 하나의 어플리케이션을 여러 개의 작고 독립적인 서비스들로 구성하는 설계 방식이며 클라이언트뿐 아니라 서비스들끼리 요청은 HTTP등의 프로토콜을 사용해서 통신이 가능하여 확장성이 좋고, 신속한 애플리케이션을 개발할 수 있습니다.
- 마이크로서비스가 API Gateway가 필요한 이유
1. 내부의 문제가 외부에 노출되는 것을 막아줌
API 게이트웨이는 외부 공용 API를 내부 마이크로서비스 API에서 분리하여 외부 클라이언트에게 영향을 주지 않고 마이크로서비스를 리팩터링하고 조정할 수 있습니다. 또한 클라이언트에게는 단일 진입점(엔트리 포인트)를 제공하기 때문에 버전 정보를 노출하지 않는 장점이 있습니다.
2. 추가적인 보안 제공
API 게이트웨이에서 추가적인 보안등을 제공해서 SQL Injection, XML Parser Injection, Denial-of-Service(Dos) 공격 등에서 서비스를 보호해줍니다.
* SQL Injection: SQL문을 주입하고 데이터베이스가 비정상적으로 동작하게 조작하는 공격
* XML Parser Injection: XML 코드를 주입시켜 외부의 악의적인 코드를 실행하게 만드는 공격
* Denial-of-Service(DOS): 다량의 트래픽을 유발시키거나 크래쉬를 유발시키는 데이터를 전송해 서비스를 마비시키는 공격
3. 다양한 통신 프로토콜을 사용가능
외부 클라이언트와는 통신은 HTTP 혹은 REST API를 사용하지만 내부에서의 통신은 각 서비스에 최적화 된 다양한 통신 프로토콜 사용 가능
4. 마이크로서비스의 복잡도를 줄여준다
API 토큰을 사용한 인증, 접근 권한 제어, 트레픽 제어 등 공통 로직을 처리해주므로 API가 서비스 기능에 집중하도록 도와줌
5. 마이크로서비스 가상화
마이크로서비스 API를 외부 API와 분리하기 때문에 서비스를 가상화하여 설계 요구사항을 확인하거나 통합 테스트를 지원할 수 있음
#APIGateway필요성 #마이크로서비스 #보안제공 #통신프로토콜사용 #가상서비스제공 #i-oneAPIGateway #이데아텍
API Gateway란 클라이언트와 백엔드 사이에 위치 한 API 관리 툴로서 내부의 여러 API들에 대한 통합된 하나의 엔트리 포인트를 제공합니다. 중간에 위치해서 클라이언트의 특정 API에 대한 요청을 라우팅해주는 역할을 해줍니다.
라우팅 기능 외에도 메디에이션(API 요청 및 응답에 대한 수정/추가/삭제), 인증 및 인가, 트레픽 제어, 서킷 브레이크, 모니터링 등 다양한 기능들을 제공해주면서 API관리의 편의성을 증대 시켜주는 역할도 가능합니다.
마이크로서비스 아키텍쳐는 하나의 어플리케이션을 여러 개의 작고 독립적인 서비스들로 구성하는 설계 방식이며 클라이언트뿐 아니라 서비스들끼리 요청은 HTTP등의 프로토콜을 사용해서 통신이 가능하여 확장성이 좋고, 신속한 애플리케이션을 개발할 수 있습니다.
1. 내부의 문제가 외부에 노출되는 것을 막아줌
API 게이트웨이는 외부 공용 API를 내부 마이크로서비스 API에서 분리하여 외부 클라이언트에게 영향을 주지 않고 마이크로서비스를 리팩터링하고 조정할 수 있습니다. 또한 클라이언트에게는 단일 진입점(엔트리 포인트)를 제공하기 때문에 버전 정보를 노출하지 않는 장점이 있습니다.
2. 추가적인 보안 제공
API 게이트웨이에서 추가적인 보안등을 제공해서 SQL Injection, XML Parser Injection, Denial-of-Service(Dos) 공격 등에서 서비스를 보호해줍니다.
* SQL Injection: SQL문을 주입하고 데이터베이스가 비정상적으로 동작하게 조작하는 공격
* XML Parser Injection: XML 코드를 주입시켜 외부의 악의적인 코드를 실행하게 만드는 공격
* Denial-of-Service(DOS): 다량의 트래픽을 유발시키거나 크래쉬를 유발시키는 데이터를 전송해 서비스를 마비시키는 공격
3. 다양한 통신 프로토콜을 사용가능
외부 클라이언트와는 통신은 HTTP 혹은 REST API를 사용하지만 내부에서의 통신은 각 서비스에 최적화 된 다양한 통신 프로토콜 사용 가능
4. 마이크로서비스의 복잡도를 줄여준다
API 토큰을 사용한 인증, 접근 권한 제어, 트레픽 제어 등 공통 로직을 처리해주므로 API가 서비스 기능에 집중하도록 도와줌
5. 마이크로서비스 가상화
마이크로서비스 API를 외부 API와 분리하기 때문에 서비스를 가상화하여 설계 요구사항을 확인하거나 통합 테스트를 지원할 수 있음
#APIGateway필요성 #마이크로서비스 #보안제공 #통신프로토콜사용 #가상서비스제공 #i-oneAPIGateway #이데아텍