반응형
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- MAPF
- Monthly Checklist
- 14일 공부
- 지표
- AWS
- amazon ecs
- 구조 패턴
- 오블완
- 티스토리챌린지
- github
- study
- Til
- 논문 정리
- 신혼 여행
- terraform
- Playwright
- 실용주의 프로그래머
- AWS 비용 절감
- Go-lang
- 디자인 패턴
- 도커 주의사항
- leetcode
- ssh
- 생성 패턴
- docker
- PostgreSQL
- 청첩장 모임
- Rust
- DevOps
- 경로 계획 알고리즘
Archives
- Today
- Total
밤 늦게까지 여는 카페
API Gateway란? 본문
이번에는 API Gateway에 대해서 공부해보도록 하겠습니다.
트위니에서 관제 시스템을 개발하면서 외부와의 통신은 API Gateway를 활용했습니다.
개발 초기에는 관련 책도 많이 보고 자료도 많이 찾아보면서 개념들이 머리에 쏙쏙 박혀 있었지만
시간이 흐르고 "아 그거 그거 뭐였지?" 싶은 순간이 너무 많아지더라고요 ㅜㅠ
이번에 다시 한번 머리에 쏙! 박아 넣으려고 정리해봤습니다.
1. API Gateway가 뭐에요?
Appilication Programming Interface의 약자인 API와 서로 다른 네트워크를 연결해주는 Gateway의 합성어로 API들의 진입점을 일컫습니다.
특히, 독립적이고 작은 서비스들을 엮어서 기능을 제공하는 Micro Service Architecture(MSA)에서는 API Gateway가 아주 다양한 역할을 수행할 수 있습니다.
2. API Gateway가 어떤 역할들을 수행할 수 있는데요?
서비스로 들어온 요청들의 라우팅부터 시작해서 인증, 인가, 모니터링 등 정말 다양한 역할을 수행할 수 있습니다.
- 요청 라우팅
- 라운드 로빈처럼 단순한 로드밸런싱부터 서비스 들의 CPU, 메모리 사용량, 쓰레드 수 등 다양한 지표를 활용하여 로드밸런싱 할 수도 있습니다.
- 클라이언트 <=> API Gateway <=> 서비스 간 통신에서 다른 메시지 포맷, 프로토콜을 맞춰주기도 합니다.
- 서비스 및 클라이언트 별로 다른 엔드포인트를 제공할 수 있습니다.
- 인증
- API Gateway로 들어온 요청에 대해서 인증을 수행할 수 있습니다.
- 인가
- API Gateway로 들어온 인증된 요청들에 대해서 해당 요청을 수행할 수 있는 권한이 있는지 확인할 수 있습니다.
- 모니터링
- 클라이언트가 언제, 어떤 요청을 보냈는지 기록할 수 있습니다.
- 클라이언트의 API 사용량을 측정하고 제한할 수 있습니다.
3. 흠... 좋은데 이거 전부 직접 구현해야 하나요?
제가 트위니에서 개발할 때는 직접 만들긴 했습니다...
잘 모르기도 했고, golang이라면 직접 만들어야지 하는 호승심이 컸던 것 같네요 ㅜㅠ
하지만 오픈소스도 많고, 상용 제품도 많습니다!
- 제가 아는 대표적인 API Gateway 서비스는 AWS의 API Gateway 서비스가 있습니다.
- 요기에 유명한 api gateway 오픈소스 프로젝트, 상용 제품들이 있더라고요! https://geekflare.com/api-gateway/
반응형
'For Fun > 잡학 지식' 카테고리의 다른 글
단위 테스트란? (0) | 2024.09.20 |
---|---|
[Ubuntu] Could not get lock /var/lib/dpkg/lock-frontend 에러 조치 방법 (0) | 2024.07.21 |
WSL에서 GUI 프로그램 실행하는 방법 - WSL에서 Playwright Headed 모드를 너무 사용하고 싶었습니다 ㅠㅜ (0) | 2024.05.02 |
[Python] json 데이터에 한글이 포함되어 있을 때 dumps 호출하면 깨지는 현상 (2) | 2024.04.19 |
[Python] GIL로 인한 멀티쓰레드 성능 이슈 분석 - 멀티쓰레드가 멀티쓰레드가 아니에요 ㅜ (1) | 2024.04.18 |