문제 해결 - AWS의 분산 로드 테스트

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

문제 해결

알려진 문제 해결은 알려진 오류를 완화하기 위한 지침을 제공합니다. 이러한 지침으로 문제가 해결되지 않는 경우 AWS Support에 문의하세요.이 솔루션에 대한 AWS Support 사례를 개설하기 위한 지침을 제공합니다.

알려진 문제 해결

문제: 기존 VPC를 사용 중이며 테스트가 실패하고 상태가 실패인 경우 다음 오류 메시지가 표시됩니다.

Test might have failed to run.

  • ​해결 방법:

서브넷이 지정된 VPC에 존재하고 인터넷 게이트웨이 또는 NAT 게이트웨이가 있는 인터넷 경로가 있는지 확인합니다. AWS Fargate는 테스트를 성공적으로 실행하기 위해 퍼블릭 리포지토리에서 컨테이너 이미지를 가져올 수 있는 액세스 권한이 필요합니다.

문제: 테스트를 실행하는 데 시간이 너무 오래 걸리거나 무기한으로 실행되지 않음

  • ​해결 방법:

테스트를 취소하고 AWS Fargate를 확인하여 모든 작업이 중지되었는지 확인합니다. 중지하지 않은 경우 모든 Fargate 작업을 수동으로 중지합니다. 계정의 온디맨드 Fargate 작업 제한을 확인하여 원하는 작업 수를 시작할 수 있는지 확인합니다. 또한 Lambda 작업 실행기 함수에 대한 CloudWatch 로그를 확인하여 Fargate 작업을 시작할 때 실패에 대한 자세한 인사이트를 얻을 수 있습니다. 실행 중인 Fargate 컨테이너에서 발생하는 상황에 대한 자세한 내용은 CloudWatch ECS 로그를 확인하세요.

문제: 테스트가 시작되었지만 완료되지 않거나 ECS 태스크의 상태를 알 수 없음

  • ​해결 방법:

솔루션이 배포된 계정에서 기존 VPC를 제공하는 옵션을 선택한 경우 ECS 작업에서 사용 중인 VPC에 테스트 입력에 제공된 작업 수를 시작하기에 충분한 여유 IP 주소가 있는지 확인합니다. ECS 작업 정의는 인터넷 게이트웨이 또는 인터넷 경로가 필요한 ECR 이미지를 사용하므로 ECS 서비스는 aws-solutions/distributed-load-testing-on-aws-load-tester에서 솔루션 ECR 이미지를 다운로드하여 작업을 프로비저닝할 수 있습니다. VPC의 모든 서브넷이 프라이빗이므로 인터넷 경로를 제공할 수 없는 경우 ECR 풀스루 캐시를 사용하여 계정에서 ECR 이미지를 호스팅할 수 있습니다. 작업 정의를 새 ECR 이미지 URI로 업데이트하고 새 개정을 생성합니다. 작업 정의가 업데이트되면 새 개정을 사용하려면 DynamoDB 테이블의 솔루션 구성을 업데이트해야 합니다. DynamoDB 테이블 이름은 키 ScenariosTable 아래의 CloudFormation 스택 출력 탭에서 찾을 수 있습니다. 키 testId 및 값 region-[SOLUTION-DEPLOYED-REGION]을 사용하여 항목의 속성 taskDefinition을 업데이트합니다.

문제: 테스트는 프라이빗이거나 인터넷 게이트웨이를 통해 사용할 수 없는 엔드포인트를 사용해야 합니다.

  • ​해결 방법:

인터넷 게이트웨이를 통해 액세스할 수 없는 프라이빗 API 엔드포인트를 테스트할 때는 다음 접근 방식을 고려하세요.

  1. 네트워크 구성: ECS 작업에서 사용하는 서브넷 라우팅 테이블이 테스트 중인 프라이빗 엔드포인트의 IP 주소 범위에 대한 경로로 업데이트되었는지 확인합니다. 이렇게 하면 테스트 트래픽이 VPC 내의 프라이빗 엔드포인트에 도달할 수 있습니다.

  2. DNS 확인: 사용자 지정 도메인의 경우 프라이빗 엔드포인트의 도메인 이름을 확인하도록 VPC의 DNS 설정을 구성합니다. 자세한 지침은 VPC DNS 설명서를 참조하세요.

  3. VPC 엔드포인트: AWS 서비스를 테스트하는 경우 VPC 엔드포인트(AWS PrivateLink)를 사용하여 프라이빗 연결을 설정하는 것이 좋습니다. 예를 들어 프라이빗 API Gateway를 테스트하려면 API Gateway에 대한 VPC 엔드포인트를 생성할 수 있습니다. 프라이빗 API Gateway 설명서를 참조하세요.

  4. VPC 피어링: 프라이빗 엔드포인트가 다른 VPC에 있는 경우 솔루션이 배포되는 VPC와 프라이빗 엔드포인트가 포함된 VPC 간에 VPC 피어링을 설정합니다. 두 VPCs 구성합니다. VPC 피어링 설명서를 참조하세요.

  5. Transit Gateway: 여러 VPCs 관련된 보다 복잡한 네트워킹 시나리오의 경우 AWS Transit Gateway를 사용하여 솔루션의 VPC와 프라이빗 엔드포인트가 포함된 VPC 간에 트래픽을 라우팅하는 것이 좋습니다. Transit Gateway 설명서를 참조하세요.

  6. 보안 그룹: ECS 태스크와 연결된 보안 그룹이 프라이빗 엔드포인트로의 아웃바운드 트래픽을 허용하고 프라이빗 엔드포인트의 보안 그룹이 ECS 태스크의 인바운드 트래픽을 허용하는지 확인합니다.

내부 Application Load Balancer 또는 EC2 인스턴스를 테스트하려면 VPC CIDR 범위가 겹치지 않고 필요한 경로가 라우팅 테이블에 구성되어 있는지 확인합니다.

문제: 테스트가 완료되었지만 UI에서 결과를 사용할 수 없음

  • ​해결 방법:

테스트가 완료되었지만 UI에서 결과를 사용할 수 없는 경우 테스트를 실행한 ECS 작업의 S3 버킷에서 결과 파일을 계속 사용할 수 있어야 합니다. 이는 솔루션에서 알려진 제한 사항입니다. 현재 아키텍처에서 솔루션은 결과 구문 분석 Lambda 함수를 사용하여 여러 ECS 작업의 결과를 요약한 다음 DynamoDB 테이블에 항목으로 저장됩니다. DynamoDB 테이블의 최대 항목 크기는 400KB입니다. 이 제한은 테스트 스크립트의 복잡성, 동시성 및 사용 중인 작업 수에 따라 결정됩니다. 오류는 테스트가 실패하고 있음을 의미하지 않으며, 결과를 요약하고 CRUD 작업을 위해 DynamoDB 테이블에 저장하는 프로세스가 실패했음을 나타냅니다. 결과는 테스트 시나리오의 S3 버킷에서 계속 사용할 수 있습니다.