본문으로 건너뛰기

API Gateway Creation

개요

API Gateway를 만드는 것은 APIM 시스템을 통해 API를 노출하고 관리하는 첫 번째 단계입니다. APIM의 인프라와 같은 실제 프로덕션 환경에서는 Gateway 설정이 확장성, 트래픽 분배, 로그 전달 및 DNS 매핑을 고려해야 합니다. 이 튜토리얼은 예제 사례를 통해 프로덕션 등급의 게이트웨이를 만드는 방법을 안내합니다.

전제 조건

시작하기 전에 다음 사항을 확인하세요:

  • APIM 콘솔에 Administrator 접근할 수 있습니다.
  • Project이(가) 생성되었습니다 (예: pj-test-01).

단계별 튜토리얼

1단계. 게이트웨이 생성 페이지 접근

  • APIM 콘솔에 로그인합니다.
  • 프로젝트 선택: pj-test-01.
  • 게이트웨이 관리로 이동합니다.
  • 게이트웨이 생성 버튼을 클릭합니다.

2단계. 게이트웨이 정보

FieldValue
게이트웨이 유형kong
게이트웨이 이름gateway-prod-mj
게이트웨이 인스턴스 이름자동으로 채워짐: gateway-prod-mj
설명게이트웨이 생성 프로세스를 테스트하기 위한 게이트웨이
태그test, kr (게이트웨이를 분류하기 위해 더 많은 태그를 추가할 수 있음)

3단계. 리소스 구성

게이트웨이 Pod 리소스

ResourceValue
CPU1000m
메모리1000Mi

데이터베이스 리소스

ResourceValue
CPU1000m
메모리1000Mi

슬라이더를 사용하여 값을 변경합니다.

4단계. 배포 설정

필드
게이트웨이 자동 확장활성화 (토글 켜기)
최소 복제본: 1
최대 복제본: 5
CPU: 50
메모리: 50
값을 입력하거나 슬라이더를 사용하여 변경할 수 있음
Kong 네임스페이스mj-test
Kong 스토리지 클래스gp2
스토리지 용량5 Gi
Kong 프록시 서비스 유형LoadBalancer
Kong 프록시 서비스 NodePort30001

5단계. 친화성 설정

친화성을 활성화하고 구성합니다:

KeyValue
topology.kubernetes.io/zoneap-northeast-2

이 설정은 게이트웨이 Pods가 특정 가용 영역에만 예약되도록 보장합니다.

6단계. 관용 설정

관용성을 활성화하고 추가합니다:

OperatorKeyValue
같음spottrue
존재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을 문서화하고 버전 관리하세요.