본문으로 건너뛰기

Rate Limiting

개요

Rate Limiting 정책은 API에 요청이 전송되는 속도를 제어하는 데 사용됩니다. 이는 남용을 방지하고, 트래픽 부하를 효율적으로 관리하며, 과도한 요청으로 인해 백엔드 서비스가 압도당하는 것을 보호하는 데 도움이 됩니다. 이 정책은 요청 한도를 관리하기 위해 다양한 Redis 저장소 옵션으로 구성할 수 있습니다.

Rate Limiting 정책을 구성함으로써 API 제공자는 트래픽을 효과적으로 관리하고, 공정한 자원 할당을 보장하며, 백엔드 서비스를 과도한 부하로부터 보호할 수 있습니다.

구성 세부정보

다음 표는 Rate Limiting 정책에 대해 사용할 수 있는 주요 구성 옵션을 설명합니다:

필드 이름설명예제 값
Maximum requests per secondAPI에 대해 초당 허용되는 최대 요청 수를 정의합니다.100
Redis timeout (ms)밀리초 단위로 Redis 작업의 타임아웃 값을 설정합니다.2000
Redis DB Select속도 제한 카운터를 위한 Redis 저장소 유형을 선택할 수 있습니다. 옵션에는 APIMRedis, CustomRedis 또는 RedisCluster가 포함됩니다.APIMRedis

Rate-Limiting

Redis 저장소 옵션

시스템의 요구 사항에 따라 사용자는 다음 Redis 저장소 유형 중에서 선택할 수 있습니다:

  • APIMRedis (기본값) - 시스템의 내장 Redis 인스턴스를 사용합니다.
  • CustomRedis - 사용자가 상세한 연결 매개변수를 지정하여 자신의 Redis 인스턴스를 구성할 수 있습니다.
  • RedisCluster - 확장성과 내결함성을 위해 Redis 클러스터 설정을 사용합니다.

APIMRedis은 표준 사용 사례에 권장되며, CustomRedisRedisCluster은 전용 Redis 구성이 필요한 고급 시나리오에 사용해야 합니다.

사용자 정의 Redis 구성 필드

CustomRedis을 선택하는 경우, 다음 추가 필드를 구성해야 합니다:

필드 이름설명예시 값
redisHostRedis 서버의 호스트 이름입니다.127.0.0.1
redisPortRedis 연결에 사용되는 포트입니다.6379
redisPasswordRedis 인증을 위한 비밀번호입니다 (필요한 경우).password
redisDatabase사용할 Redis 데이터베이스를 지정합니다.1
redis_pool_size풀에 유지할 수 있는 Redis 연결의 수를 정의합니다.1000
redis_pool_backlog풀이 가득 찼을 때 대기할 수 있는 요청의 수를 지정합니다.30

Redis 클러스터 구성 필드

RedisCluster을 선택하는 경우, 추가 필드를 설정해야 합니다:

필드 이름설명예시 값
redis_cluster_nodesRedis 클러스터 노드의 주소입니다.redis-cluster.apim:6379
redis_cluster_passwordRedis 클러스터에 접근하기 위한 비밀번호입니다 (해당하는 경우).password
redis_cluster_nameRedis 클러스터의 이름을 정의합니다.kong_redis_cluster
redis_connect_timeoutRedis 연결을 설정하는 타임아웃 (ms 단위)입니다.1000
redis_read_timeoutRedis로부터 응답을 읽는 타임아웃 (ms 단위)입니다.1000
redis_send_timeoutRedis에 요청을 보내는 타임아웃 (ms 단위)입니다.1000
redis_pool_sizeRedis 풀에서 할당할 수 있는 최대 연결 수입니다.1000
redis_pool_backlog풀이 가득 찼을 때 허용되는 대기 요청의 수입니다.30
redis_keepalive_timeout유휴 연결을 유지해야 하는 시간 (ms 단위)입니다.55000