AWS Blu Age 런타임에 대한 속도 제한 구성 - AWS 메인프레임 현대화

AWS Mainframe Modernization Service(관리형 런타임 환경 환경 환경)는 더 이상 신규 고객에게 공개되지 않습니다. AWS Mainframe Modernization Service(관리형 런타임 환경 환경)와 유사한 기능의 경우 AWS Mainframe Modernization Service(자체 관리형 환경)를 살펴보세요. 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세한 내용은 AWS Mainframe Modernization 가용성 변경을 참조하세요.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS Blu Age 런타임에 대한 속도 제한 구성

AWS Blu Age 런타임에는 과도한 요청 및 잠재적 침해로부터 gapwalk 애플리케이션을 보호하는 속도 제한 기능이 내장되어 있습니다. 속도 제한 시스템은 토큰 버킷 알고리즘을 사용하여 버스트 용량과 지속적인 속도 제한을 모두 제공합니다.

속도 제한 개요

속도 제한 시스템은 다음과 같은 기능을 제공합니다.

토큰 버킷 알고리즘
  • 구성된 버스트 용량까지의 버스트 트래픽 허용

  • 분당 요청에 따라 일정한 속도로 토큰을 다시 채웁니다.

  • 합법적인 트래픽 급증을 차단하지 않고 원활한 속도 제한 제공

클라이언트 식별
  • 프록시를 지원하는 IP 주소로 클라이언트 식별

  • X-Forwarded-For 및 X-Real-IP 헤더 지원

  • 로드 밸런서 및 역방향 프록시 시나리오 처리

자동 메모리 관리
  • 만료된 속도 제한 버킷을 자동으로 정리합니다.

  • 구성 가능한 정리 간격 및 만료 시간

  • 장기 실행 애플리케이션에서 메모리 누수 방지

HTTP 통합
  • 한도를 초과하면 HTTP 429(요청이 너무 많음)를 반환합니다.

  • 응답에 표준 속도 제한 헤더 포함

  • 클라이언트에 대한 재시도 후 정보 제공

구성 속성

application-main.yaml 파일에서 속도 제한을 구성합니다.

gapwalk: ratelimiting: enabled: true # Enable/disable rate limiting requestsPerMinute: 1000 # Sustained rate limit per minute burstCapacity: 1500 # Maximum burst requests allowed includeHeaders: true # Include X-RateLimit-* headers cleanupIntervalMinutes: 5 # Cleanup interval for expired buckets bucketExpiryHours: 1 # Hours after which unused buckets expire errorMessage: "Too many requests. Try again later." # Custom error message whitelistIps: "" # Comma-separated IPs to bypass limiting perEndpointLimiting: false # Apply limits per endpoint (not implemented)

속성 설명

enabled

속도 제한 기능을 활성화 또는 비활성화하는 마스터 스위치입니다. 기본값: false

requestsPerMinute

지속적인 속도 제한을 위해 분당 허용되는 요청 수입니다. 토큰 리필 속도를 나타냅니다. 기본값: 1000

burstCapacity

속도 제한이 적용되기 전에 버스트에 허용되는 최대 요청 수입니다. 트래픽 급증을 허용requestsPerMinute하려면 보다 높아야 합니다. 기본값: 1500

includeHeaders

HTTP 응답에 표준 속도 제한 헤더(X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset)를 포함할지 여부입니다. 기본값: true

cleanupIntervalMinutes

만료된 속도 제한 버킷의 자동 정리 간격. 메모리 누수를 방지하는 데 도움이 됩니다. 기본값: 5

bucketExpiryHours

미사용 비율 제한 버킷이 만료된 것으로 간주되어 정리할 수 있는 시간입니다. 기본값: 1

errorMessage

속도 제한을 초과할 때 JSON 응답에 반환되는 사용자 지정 오류 메시지입니다. 기본값: "Too many requests. Try again later."

whitelistIps

속도 제한을 완전히 우회하는 IP 주소의 쉼표로 구분된 목록입니다. 상태 확인 또는 신뢰할 수 있는 시스템에 유용합니다. 기본값: empty

perEndpointLimiting

클라이언트당 대신 엔드포인트당 별도의 속도 제한을 적용할지 여부입니다. 현재 구현되지 않았습니다. 기본값: false

속도 제한 활성화

기본 설정으로 속도 제한을 활성화하려면:

gapwalk: ratelimiting: enabled: true

클라이언트 식별

속도 제한 시스템은 다음 우선 순위에 따라 클라이언트를 식별합니다.

  1. X-Forwarded-For 헤더(쉼표로 구분된 경우 첫 번째 IP)

  2. X-Real-IP 헤더

  3. HTTP 요청의 원격 주소

이렇게 하면 애플리케이션이 뒤처질 때 적절한 클라이언트 식별이 보장됩니다.

  • 로드 밸런서

  • 역방향 프록시

  • CDNs

  • API 게이트웨이

클라이언트 식별 예제

# Direct connection Client IP: 192.168.1.100 # Behind load balancer with X-Forwarded-For X-Forwarded-For: 203.0.113.45, 192.168.1.100 Client IP: 203.0.113.45 (first IP used) # Behind reverse proxy with X-Real-IP X-Real-IP: 203.0.113.45 Client IP: 203.0.113.45

속도 제한 헤더

includeHeaders이 활성화되면 HTTP 응답에 다음 헤더가 추가됩니다.

X-RateLimit-Limit

클라이언트의 속도 제한 상한(분당 요청 수)

X-RateLimit-Remaining

현재 속도 제한 창에 남아 있는 요청 수

X-RateLimit-Reset

속도 제한 기간이 재설정되는 시간(Unix 타임스탬프)

응답 헤더 예제

X-RateLimit-Limit: 1000 X-RateLimit-Remaining: 847 X-RateLimit-Reset: 1640995200

속도 제한 초과 응답

속도 제한을 초과하면 시스템이 다음을 반환합니다.

HTTP 상태

429 요청이 너무 많음

Content-Type

application/json

이후 재시도

재시도하기 전에 대기할 초 수

{ "error": "Rate limit exceeded", "message": "Too many requests. Try again later.", "retryAfter": 60, "timestamp": 1640995140000 }

메모리 관리

속도 제한 시스템은 메모리를 자동으로 관리하여 장기 실행 애플리케이션의 누수를 방지합니다.

자동 정리
  • cleanupIntervalMinutes 분마다 실행

  • bucketExpiryHours 시간 동안 사용되지 않은 버킷을 제거합니다.

  • 모니터링을 위한 정리 활동을 로깅합니다.

메모리 효율성
  • 스레드 안전을 위해 동시 데이터 구조 사용

  • 지연 버킷 생성(필요한 경우에만)

  • 효율적인 토큰 버킷 구현

정리 활동 모니터링

로그에서 정리 메시지를 확인합니다.

INFO RateLimitingService - Cleaned up 15 expired rate limiting buckets