API Gateway Creation
개요
API Gateway를 만드는 것은 APIM 시스템을 통해 API를 노출하고 관리하는 첫 번째 단계입니다. APIM의 인프라와 같은 실제 프로덕션 환경에서는 Gateway 설정이 확장성, 트래픽 분배, 로그 전달 및 DNS 매핑을 고려해야 합니다. 이 튜토리얼은 예제 사례를 통해 프로덕션 등급의 게이트웨이를 만드는 방법을 안내합니다.
전제 조건
시작하기 전에 다음 사항을 확인하세요:
- APIM 콘솔에 Administrator 접근할 수 있습니다.
- Project이(가) 생성되었습니다 (예: pj-test-01).
단계별 튜토리얼
1단계. 게이트웨이 생성 페이지 접근
- APIM 콘솔에 로그인합니다.
- 프로젝트 선택: pj-test-01.
- 게이트웨이 관리로 이동합니다.
- 게이트웨이 생성 버튼을 클릭합니다.
2단계. 게이트웨이 정보
Field | Value |
---|---|
게이트웨이 유형 | kong |
게이트웨이 이름 | gateway-prod-mj |
게이트웨이 인스턴스 이름 | 자동으로 채워짐: gateway-prod-mj |
설명 | 게이트웨이 생성 프로세스를 테스트하기 위한 게이트웨이 |
태그 | test, kr (게이트웨이를 분류하기 위해 더 많은 태그를 추가할 수 있음) |
3단계. 리소스 구성
게이트웨이 Pod 리소스
Resource | Value |
---|---|
CPU | 1000m |
메모리 | 1000Mi |
데이터베이스 리소스
Resource | Value |
---|---|
CPU | 1000m |
메모리 | 1000Mi |
슬라이더를 사용하여 값을 변경합니다.
4단계. 배포 설정
필드 | 값 |
---|---|
게이트웨이 자동 확장 | 활성화 (토글 켜기) 최소 복제본: 1 최대 복제본: 5 CPU: 50 메모리: 50 값을 입력하거나 슬라이더를 사용하여 변경할 수 있음 |
Kong 네임스페이스 | mj-test |
Kong 스토리지 클래스 | gp2 |
스토리지 용량 | 5 Gi |
Kong 프록시 서비스 유형 | LoadBalancer |
Kong 프록시 서비스 NodePort | 30001 |
5단계. 친화성 설정
친화성을 활성화하고 구성합니다:
Key | Value |
---|---|
topology.kubernetes.io/zone | ap-northeast-2 |
이 설정은 게이트웨이 Pods가 특정 가용 영역에만 예약되도록 보장합니다.
6단계. 관용 설정
관용성을 활성화하고 추가합니다:
Operator | Key | Value |
---|---|---|
같음 | spot | true |
존재 | critical |
이 설정은 게이트웨이 Pods가 spot=true 또는 critical과 같은 오염이 있는 노드에 예약될 수 있도록 합니다.
7단계. 토폴로지 분산 구성
필드 | 값 |
---|---|
최대 편차 | 1 |
만족하지 않을 때 | DoNotSchedule |
이 설정은 게이트웨이 Pods가 영역에 고르게 분산되도록 보장하고, 만족하지 않는 예약을 피합니다.
8단계. 시스템 추가 기능
구성 요소 | 설정 |
---|---|
내부 Redis | 활성화 |
Fluent Bit | 활성화 OpenTelemetry: 활성화 Elasticsearch: 비활성화 |
Fluent Bit을 활성화하면 관찰 가능성 파이프라인에서 게이트웨이 로그를 중앙 집중화하는 데 도움이 됩니다.
9단계. Kong 구성
다음 JSON을 입력합니다:
{
"upstream_keepalive_idle_timeout": 60,
"upstream_keepalive_max_requests": 100000,
"nginx_http_keepalive_requests": 100000,
"upstream_keepalive_pool_size": 1024
}
이 값들은 업스트림 연결 재사용을 최적화하고 고성능 환경에서 도움이 됩니다.
10단계. 게이트웨이 생성
- 하단의 게이트웨이 생성 버튼을 클릭합니다.
- 게이트웨이 세부 정보 페이지로 이동하여 생성된 게이트웨이를 확인합니다.
모범 사례
- 이름에 환경 접미사를 사용하세요: gateway-dev, gateway-staging, gateway-prod.
- 리소스 분리를 위해 환경별로 전용 네임스페이스를 정의하세요.
- 메트릭 기반 트리거가 없는 한 자동 확장을 끄세요.
- 높은 가용성을 달성하기 위해 친화성과 토폴로지 분산을 함께 사용하세요.
- 감사 및 롤백을 위해 Kong 구성 JSON을 문서화하고 버전 관리하세요.