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
클라이언트 식별
속도 제한 시스템은 다음 우선 순위에 따라 클라이언트를 식별합니다.
X-Forwarded-For 헤더(쉼표로 구분된 경우 첫 번째 IP)
X-Real-IP 헤더
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