Slide 19
Slide 19 text
파일 업/다운로드 엔드 포인트 분리
API Gateway 디자인 패턴
• 특수 목적의 엔드포인트는 별도의 API 게이트웨이로 분리해 내는 것이 좋다.
ex) 인증 등 없이 고속으로 많은 로그를 업로드 하는 엔드 포인트같은 경우, 부하량이 많기 때문에 다른 일반 API 엔드포인트에 부담을
주지 않기 위해서 분리
• 파일 업로드나 다운로드와 같은 트렌젝션은 CPU는 많이 사용하지 않지만, 요청 처리에 시간이 많이 걸리는 작업
• 싱글 쓰레드 기반의 비동기 IO 게이트웨이의 경우에는 비동기 IO이기 때문에 파일 업/다운로드에는 다소 유리할 수 있지만, 네트워
크 대역폭을 상당 부분 소모해버리기 때문에 마찬가지로 다른 API 서비스를 하는데 영향을 줄 수 있다.
• 그래서 이러한 파일 업/다운로드는 가급적이면 게이트 웨이를 거치지 않고 별도의 독립된 엔드포인트나 프록시를 사용하는 것이 좋
은데, 다음은 별도의 프록시를 넣는 아키텍쳐 설계 방식의 예이다.
1. API 클라이언트가 파일 서버에 API를 이용하여 파일
다운로드를 요청한다.
2. 파일 서버는 API에 대한 응답으로 파일을 바로 내리
는 것이 아니라, 파일을 다운로드 받을 수 있는 URL
과 함께, 임시 인증 토큰을 발급(현재 API 클라이언
트에 IP 에만 유효하고, 특정시간 예를 들어 발급후
30분 이내만 사용이 가능한 토큰)하여, API 클라이언
트에게 리턴한다.
3. API 클라이언트는 2에서 받은 URL로 임시 인증 토큰
과 함께 파일 다운로드를 파일 다운로드 프로젝시를
통해서 요청한다.
4. 파일 다운로드 프록시는 임시 인증 토큰을 인증한
다음에, 파일 다운로드를 수행한다.