Amazon ElastiCache용 AWS CloudFormation을 사용할 때 표시되는 "400 Error Code" 오류를 해결하려고 합니다.
간략한 설명
직접 AWS API 요청을 시작하거나 CloudFormation 스택을 사용하는 경우 AWS에서 초기 구문 검사를 실행합니다. 이 검사에서는 요청이 완전하며 필수 파라미터가 모두 있는지 확인합니다. 검사에 실패하면 오류가 발생합니다.
다음은 ElastiCache에 대한 API 요청을 보낼 때 발생하는 400 Error Code 오류 및 해당 오류가 발생하는 원인입니다.
- API 요청 스로틀링으로 인해 요청이 거부되면 Throttling 오류가 발생합니다.
- AWS에 요청을 완료할 수 있는 가용 용량이 충분하지 않은 경우 InsufficientCacheClusterCapacity 오류가 발생합니다.
- 제거하려는 서브넷에 연결된 인스턴스가 있기 때문에 SubnetInUse 오류가 발생합니다.
- 유효하지 않거나, 지원되지 않거나, 요청에 사용할 수 없는 파라미터 값을 사용하는 경우 InvalidParameterValue가 발생합니다.
- 요청에 잘못된 파라미터 조합이나 누락된 파라미터가 있는 경우 InvalidParameterCombination이 발생합니다.
400 Error Code 오류를 해결하려면 발생한 특정 ElastiCache 호출 API 오류를 확인한 다음, 적절한 조치를 취하십시오.
참고: 가능한 오류 목록과 해당 설명은 일반적인 오류를 참조하십시오.
해결 방법
Throttling
다음 오류 메시지가 표시됩니다.
"Rate exceeded (Service: AmazonElastiCache; Status Code: 400; Error Code: Throttling; Request ID: ###)"
AWS 계정 수준 API 호출 할당량은 서비스에 따라 달라지지 않습니다. 특정 API 호출에 대한 할당량을 늘리거나 수정할 수 없습니다. 애플리케이션, 명령줄 인터페이스(CLI) 또는 AWS Management Console에서 호출한 경우에도 API 호출은 최대 허용 API 요청 비율을 초과할 수 없습니다.
이 오류를 해결하려면 다음 작업을 수행하십시오.
- 지터가 포함된 지수 백오프를 사용하여 호출을 재시도합니다.
- 시간이 지남에 따라 API 호출을 균등하게 분배하고 짧은 기간 동안 여러 API 호출을 수행하지 않도록 합니다.
InsufficientCacheClusterCapacity
다음 오류 메시지가 표시됩니다.
"Cache.### (VPC) is not currently supported in the availability zone ###. Retry the launch with no availability zone or target: ###. (Service: AmazonElastiCache; Status Code: 400; Error Code: InsufficientCacheClusterCapacity; Request ID: ###)"
이 오류를 해결하려면 다음 작업을 수행하십시오.
- 용량이 자주 바뀌므로 몇 분 정도 기다린 후 요청을 다시 제출합니다.
- 다른 캐시 노드 유형을 사용하여 요청을 다시 제출합니다.
- 다른 서브넷과 가용 영역을 사용하여 요청을 다시 제출합니다.
자세한 내용은 오류 메시지: InsufficientCacheClusterCapacity를 참조하십시오.
SubnetInUse
다음 오류 메시지가 표시됩니다.
"The subnet ID subnet-### is in use (Service: AmazonElastiCache; Status Code: 400; Error Code: SubnetInUse; Request ID: ###)"
이 오류를 해결하려면 서브넷에서 연결된 리소스를 모두 제거한 다음, 요청을 다시 제출합니다. 자세한 내용은 예시를 참조하십시오.
InvalidParameterValue
요청 호출의 각 파라미터를 확인하십시오. 파라미터 값이 유효하지 않거나, 지원되지 않거나, 요청에 사용할 수 없는 경우 다음 오류 메시지 중 하나가 표시됩니다.
"Invalid AuthToken provided. (Service: AmazonElastiCache; Status Code: 400; Error Code: InvalidParameterValue"; Request ID: ###)"
위 오류를 해결하려면 ElastiCache for Redis와 함께 AUTH를 사용할 때 auth-token 설정이 제약 조건을 충족하는지 확인하십시오. 자세한 내용은 Valkey 및 Redis OSS AUTH 명령을 사용한 인증을 참조하십시오.
"The snapshot window and maintenance window must not overlap. (Service: AmazonElastiCache; Status Code: 400; Error Code: InvalidParameterValue; Request ID: ###)"
위 오류를 해결하려면 스냅샷 기간과 유지 관리 기간을 서로 다른 기간으로 구분하십시오. 스냅샷 기간과 유지 관리 기간은 동시에 설정할 수 없습니다.
"The number of replicas per node group must be within 0 and 5. (Service: AmazonElastiCache; Status Code: 400; Error Code: InvalidParameterValue; Request ID: ###)"
위 오류를 해결하려면 최대 5개의 복제본 노드만 추가하십시오. ElastiCache for Redis는 샤드당 하나의 프라이머리 노드와 0~5개의 복제본 노드를 지원합니다. 자세한 내용은 Valkey 및 Redis OSS 복제에 대한 이해를 참조하십시오.
InvalidParameterCombination
요청 호출에 잘못된 파라미터 조합이나 누락된 파라미터가 있는 경우 다음 오류 메시지 중 하나가 표시될 수 있습니다.
"Cannot find version 5.0.0 for redis (Service: AmazonElastiCache; Status Code: 400; Error Code: InvalidParameterCombination; Request ID: ###)"
이 오류는 요청 호출의 Redis 버전이 지원되지 않음을 나타냅니다. 자세한 내용은 지원되는 Redis OSS 버전 및 지원되는 Memcached 버전을 참조하십시오.
"Cannot restore redis from 6.0.5 to 5.0.6. (Service: AmazonElastiCache; Status Code: 400; Error Code: InvalidParameterCombination; Request ID: ###)"
위 오류를 해결하려면 Redis 엔진 버전이 현재 엔진 버전보다 최신이거나 같아야 합니다. ElastiCache for Redis는 백업을 사용하여 새 Redis 클러스터를 생성할 때 다운그레이드된 Redis 엔진 버전을 지원하지 않습니다. 또한 ElastiCache for Redis는 실행 중인 Redis 클러스터의 Redis 엔진을 다운그레이드하지 않습니다. 자세한 내용은 Valkey, Memcached 및 Redis OSS 자체 설계 캐시 비교를 참조하십시오.
"When using automatic failover, there must be at least 2 cache clusters in the replication group. (Service: AmazonElastiCache; Status Code: 400; Error Code: InvalidParameterCombination; Request ID: ###)"
위 오류를 해결하려면 사용 가능한 읽기 전용 복제본이 최소 1개 이상 있는 Redis 클러스터에서 자동 장애 조치 옵션을 켜십시오. Redis 복제 그룹에 복제 노드가 두 개 이상 있는지 확인한 후 요청을 다시 제출합니다. 자세한 내용은 Valkey 및 Redis OSS와 함께 다중 AZ를 사용하여 ElastiCache의 가동 중지 시간 최소화를 참조하십시오.
관련 정보
ElastiCache 할당량
지속적 연결 문제
AWS CLI의 최신 버전 설치 또는 업데이트