AWS CloudFormation スタックを呼び出すか、Amazon ElastiCache の AWS API コールを使用すると、リクエストが失敗し、次のようなエラーが表示されます。 「Status Code: 400; Error Code: ###」このエラーのトラブルシューティング方法を教えてください。
簡単な説明
AWS API リクエストを直接開始するか、CloudFormation スタックを使用して開始すると、AWS は初期構文チェックを実行します。これらのチェックでは、リクエストが完了し、すべての必須パラメータが含まれていることを確認します。Amazon ElastiCache の API リクエストを送信したときに 400 エラーが発生する一般的な理由は次のとおりです。
- API リクエストスロットリングにより、リクエストは拒否されました。
- AWS には、リクエストを完了するのに十分なキャパシティがありません。
- リクエストで指定されたリージョンまたはアベイラビリティーゾーンでは、キャッシュノードはサポートされていません。
- 無効なパラメータの組み合わせを使用しました。
- 入力パラメータに無効な値または範囲外の値を使用しました。
- API には必須のパラメータまたはアクションがありません。
- 別の ElastiCache リソースまたは AWS サービスで現在使用されているリソースを削除しようとしています。
解決策
受信した特定の ElastiCache が呼び出す API エラーを特定します。次に、そのエラーについて記載されているトラブルシューティング手順に従います。
注: 発生する可能性のあるエラーのリストと説明については、『ElastiCache Invoke API リファレンス』の「一般的なエラー」を参照してください。
エラーコード: スロットリング
Error: "Rate exceeded (Service: AmazonElastiCache; Status Code: 400; Error Code: Throttling; Request ID: ###)"
このエラーは、API リクエストスロットリングによりリクエストが拒否されたことを意味します。これらのアカウントレベルの API コール制限は、どのサービスにも固有のものではありません。
**注:**特定の通話の制限を増やしたり変更したりすることはできません。AWS は、API コールが API リクエストの最大許容レートを超えないようにしています。これには、アプリケーションからの API コール、コマンドラインインターフェイスまたは AWS マネジメントコンソールへの呼び出しが含まれます。
次の方法でこのエラーを回避してください。
エラーコード: 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: ###)".
このエラーは、リクエストを完了するのに十分なオンデマンドキャパシティが AWS に現在ないことを示しています。詳細については、「エラーメッセージ: InsufficidentCacheClusterCapacity」を参照してください。
このエラーが表示された場合は、次の操作を行います。
- 数分待ってから、リクエストを再送信してください。容量は頻繁に変わります。
- 別のキャッシュノードタイプを使用してから、リクエストを再送信してください。
- 別のサブネットとアベイラビリティーゾーンを使用してから、リクエストを再送信してください。
エラーコード: SubnetInUse
Error: "The subnet ID subnet-### is in use (Service: AmazonElastiCache; Status Code: 400; Error Code: SubnetInUse; Request ID: ###)".
このエラーは、現在インスタンスが関連付けられている Elasticache サブネットグループからサブネットを削除しようとした場合に発生します。サブネットからすべての関連リソースを削除してから、リクエストを再送信する必要があります。詳細については、DeleteCacheSubnetGroup を参照してください。
エラーコード: InvalidParameterValue
このエラーは、パラメータ値が有効ではない、サポートされていない、またはリクエストで使用できないことを示しています。リクエストコールの各パラメータを確認してください。たとえば、サポートされていないパラメータ値を使用した場合、次のいずれかのエラーメッセージが表示されることがあります。
- "Invalid AuthToken provided.(Service: AmazonElastiCache; Status Code: 400; Error Code: InvalidParameterValue"; Request ID: ###)".
このエラーは、Redis 用 ElastiCache で AUTH を使用する際に、認証トークンの設定が制約を満たしていないことを示しています。詳細については、「Redis 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: ###)".
ElastiCache Redis は 1 つのプライマリと、シャードあたり 0 ~ 5 のレプリカをサポートします。5 つ以上のレプリカノードを追加すると、このエラーが表示されます。詳細については、「Redis レプリケーションについて」を参照してください。
エラーコード: InvalidParameterCombination
このエラーは、リクエスト呼び出しに誤ったパラメータの組み合わせが含まれているか、パラメータが不足していることを示しています。この場合、次のいずれかのエラーメッセージが表示されることがあります。
- "Cannot find version 5.0.0 for redis (Service: AmazonElastiCache; Status Code: 400; Error Code: InvalidParameterCombination; Request ID: ###)".
このエラーは、リクエストコールで示された Redis のバージョンがサポートされていないことを示しています。詳細については、「Redis バージョンでサポートされている ElastiCache」および「Memcached バージョンでサポートされている ElastiCache」を参照してください。
- "Cannot restore redis from 6.0.5 to 5.0.6.(Service: AmazonElastiCache; Status Code: 400; Error Code: InvalidParameterCombination; Request ID: ###)".
Redis 用 ElastiCache は、バックアップを使用して新しい Redis クラスターを作成する場合、ダウングレードされた Redis エンジンバージョンをサポートしません。Redis 用 ElastiCache は、実行中の Redis クラスターの Redis エンジンのダウングレードもサポートしていません。バックアップを使用して新しい Redis クラスターを作成する場合、Redis エンジンのバージョンは現在のエンジンバージョン以上である必要があります。
- "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 レプリケーショングループに複数のレプリカノードがあることを確認してから、リクエストを再送信してください。詳細については、「マルチ AZ を使用した Redis 用 ElastiCache のダウンタイムの最小化」を参照してください。
関連情報
ElastiCache のクォータ
Amazon ElastiCache エラーメッセージ
トラブルシューティング - Amazon ElastiCache for Redis
AWS CLI エラーのトラブルシューティング