トラブルシューティング
既知の問題解決には、既知のエラーを軽減するための手順が記載されています。これらの手順で問題が解決しない場合は、「AWS サポートにお問い合わせる」に、このソリューションに関する AWS サポートのケースを開く方法が記載されています。
既知の問題解決
問題: 既存 VPC を使用していて、テストのステータスが Failed で失敗し、次のエラーメッセージが表示されます。
Test might have failed to run.
-
解決策:
指定した VPC にサブネットが存在し、インターネットゲートウェイまたは NAT ゲートウェイのいずれかを使用するインターネットへのルートがあることを確認してください。AWS Fargate は、テストを正常に実行するために、パブリックリポジトリからコンテナイメージを取り込むためのアクセス権が必要です。
問題: テストの実行に時間がかかりすぎている、または、いつまで経っても実行されない。
-
解決策:
テストをキャンセルし、AWS Fargate をチェックしてすべてのタスクが停止していることを確認します。停止していない場合は、すべての Fargate タスクを手動で停止します。ご自身のアカウントでオンデマンドの Fargate タスクの制限をチェックして、必要な数のタスクが起動されていることを確認します。また、task-runner Lambda 関数用の CloudWatch のログを確認して、Fargate タスクの起動時の障害を詳しく確認することもできます。実行中の Fargate のコンテナで何が起こっているかの詳細については、CloudWatch の ECS のログを確認してください。
問題: テストが開始しているが未完了であるか、ECS タスクの状態が不明
-
解決策:
ソリューションをデプロイしたアカウントで既存の VPC を指定するオプションを選択した場合は、テスト入力で指定したタスク数を開始するのに十分な空き IP アドレスが、ECS タスクで使用する VPC にあることを確認してください。ECS タスク定義では、インターネットゲートウェイまたはインターネットへのルートを必要とする ECR イメージを使用して、ECS サービスが aws-solutions/distributed-load-testing-on-aws-load-tester
問題: テストで使用するエンドポイントはプライベートである必要があり、インターネットゲートウェイ経由では利用できない
-
解決策:
インターネットゲートウェイ経由でアクセスできないプライベート API エンドポイントをテストする場合は、以下のアプローチを検討してください。
-
ネットワーク設定: ECS タスクで使用するサブネットルートテーブルが、テスト対象のプライベートエンドポイントの IP アドレス範囲へのルートで更新されていることを確認します。これにより、テストトラフィックは VPC 内のプライベートエンドポイントに到達できます。
-
DNS 解決: カスタムドメインの場合は、プライベートエンドポイントのドメイン名を解決するように VPC の DNS 設定を構成します。詳細な手順については、VPC DNS に関するドキュメントを参照してください。
-
VPC エンドポイント: AWS サービスをテストする場合は、VPC エンドポイント (AWS PrivateLink) を使用してプライベート接続を確立することを検討してください。例えば、プライベート API Gateway をテストするには、API Gateway の VPC エンドポイントを作成できます。プライベート API Gateway に関するドキュメントを参照してください。
-
VPC ピアリング: プライベートエンドポイントが別の VPC にある場合は、ソリューションのデプロイ先の VPC とプライベートエンドポイントがある VPC の間に VPC ピアリングを確立します。両方の VPC に適切なルートテーブルを設定します。VPC ピアリングに関するドキュメントを参照してください。
-
Transit Gateway: より複雑なネットワークシナリオで複数の VPC が関わる場合は、ソリューションの VPC とプライベートエンドポイントがある VPC 間のトラフィックをルーティングするために AWS Transit Gateway の使用を検討してください。Transit Gateway に関するドキュメントを参照してください。
-
セキュリティグループ: ECS タスクに関連付けられたセキュリティグループがプライベートエンドポイントへのアウトバウンドトラフィックを許可し、プライベートエンドポイントのセキュリティグループが ECS タスクからのインバウンドトラフィックを許可していることを確認します。
内部 Application Load Balancer または EC2 インスタンスをテストする場合は、VPC CIDR 範囲が重複せず、必要なルートがルートテーブルに設定されていることを確認します。
問題: テストは完了しているが、結果を UI で利用できない
-
解決策:
テストは完了したが、結果を UI で利用できない場合は、テストを実行した ECS タスクから S3 バケットの結果ファイルを引き続き利用できます。これは、ソリューションの既知の制限です。現在のアーキテクチャでは、ソリューションは結果を解析する Lambda 関数を使用して複数の ECS タスクの結果を要約し、DynamoDB テーブルに 1 つの項目として保存します。DynamoDB テーブルの最大項目サイズは 400 KB に制限されています。テストスクリプトの複雑さ、同時実行数、使用しているタスクの数によっては、この制限に達します。エラーは、テストの失敗ではなく、結果を要約して CRUD オペレーションで DynamoDB テーブルに保存するプロセスの失敗を示しています。結果は、テストシナリオの S3 バケットで引き続き利用できます。