지연 시간 주입 - Amazon EBS

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

지연 시간 주입

의 지연 시간 주입 작업(aws:ebs:volume-io-latency) AWS FIS 을 사용하여 Amazon EBS 볼륨에서 늘어난 I/O 지연 시간을 시뮬레이션하여 애플리케이션이 스토리지 성능 저하에 어떻게 반응하는지 테스트합니다. 이 작업을 사용하면 주입될 지연 시간 값과 대상 볼륨에 영향을 미칠 I/O의 백분율을 지정할 수 있습니다. 를 사용하면 사전 구성된 지연 시간 실험 템플릿을 AWS FIS사용하여 스토리지 장애 발생 시 관찰될 수 있는 다양한 I/O 지연 시간 패턴을 테스트할 수 있습니다. 이러한 템플릿은 복원력 테스트를 위해 애플리케이션에 중단을 일으키는 데 사용할 수 있는 초기 시나리오 세트로 설계되었습니다. 실제 환경에서 애플리케이션이 경험할 수 있는 모든 유형의 영향을 포함하도록 설계된 것은 아닙니다. 애플리케이션의 성능 요구 사항에 따라 여러 가지의 테스트를 실행하도록 조정할 것이 권장됩니다. 사용 가능한 템플릿을 사용자 지정하거나 새로운 실험 템플릿을 생성하여 애플리케이션의 고유한 요구 사항을 테스트할 수 있습니다.

사전 구성된 지연 시간 실험 템플릿

Amazon EBS는 EBS 콘솔 및 AWS FIS 시나리오 라이브러리를 통해 다음과 같은 지연 시간 실험 템플릿을 제공합니다. 이러한 템플릿을 대상 볼륨에 직접 사용하여 지연 시간 주입 실험을 실행할 수 있습니다.

  • 지속 지연 시간 - 일정한 지연 시간을 시뮬레이션합니다. 이 실험은 단일 지연 시간 주입 작업을 활용하며 총 시간은 15분입니다. 이 실험은 15분 동안 50%의 읽기 I/O와 100%의 쓰기 I/O에서 500ms의 지속 지연 시간을 시뮬레이션합니다.

  • 증가 지연 시간 - 점진적으로 증가하는 지연 시간을 시뮬레이션합니다. 이 실험은 5개의 지연 시간 주입 작업을 활용하며 총 시간은 15분입니다. 이 실험은 10%의 읽기 I/O와 25%의 쓰기 I/O에서 점진적으로 증가하는 지연 시간(3분 동안 50ms, 3분 동안 200ms, 3분 동안 700ms, 3분 동안 1초 및 3분 동안 15초)을 시뮬레이션합니다.

  • 간헐적 지연 시간 - 급격한 간헐적 지연 시간 스파이크와 그 사이의 복구 기간을 시뮬레이션합니다. 이 실험은 3개의 지연 시간 주입 작업을 활용하며 총 시간은 15분입니다. 이 실험은 0.1%의 읽기 및 쓰기 I/O에서 3개의 지연 시간 스파이크(1분 동안 지속되는 30초 스파이크, 2분 동안 지속되는 10초 스파이크 및 2분 동안 지속되는 20초 스파이크)를 시뮬레이션합니다. 각 지연 시간 스파이크 사이에는 5분의 복구 기간을 둡니다.

  • 감소 지연 시간- 점진적으로 감소되는 지연 시간을 시뮬레이션합니다. 이 실험은 5개의 지연 시간 주입 작업을 활용하며 총 시간은 15분입니다. 이 실험은 10%의 읽기 I/O 및 쓰기 I/O에서 점진적으로 감소하는 지연 시간(3분 동안 20초, 3분 동안 5초, 3분 동안 900ms, 3분 동안 300ms 및 3분 동안 40ms)을 시뮬레이션합니다.

사전 구성된 시나리오의 사용자 지정

위의 사전 구성된 템플릿을 사용자 지정하거나 다음과 같은 사용자 지정 가능한 파라미터를 사용하여 새로운 실험 템플릿을 생성합니다.

  • readIOPercentage - 지연 시간이 주입될 읽기 I/O 작업의 백분율. 이는 작업의 영향을 받을 볼륨에 대한 모든 읽기 I/O 작업의 백분율입니다.

    범위: 최소 0.1%, 최대 100%

  • readIOLatencyMilliseconds - 읽기 I/O 작업에 주입될 지연 시간. 이는 실험 중에 읽기 I/O의 지정된 백분율에서 관찰될 지연 시간 값입니다.

    범위: 최소 1ms(io2)/10ms(비io2), 최대 60초

  • writeIOPercentage - 지연 시간이 주입될 쓰기 I/O 작업의 백분율. 이는 작업의 영향을 받을 볼륨에 대한 모든 쓰기 I/O 작업의 백분율입니다.

    범위: 최소 0.1%, 최대 100%

  • writeIOLatencyMilliseconds - 쓰기 I/O 작업에 주입될 지연 시간. 이는 실험 중에 쓰기 I/O의 지정된 백분율에서 관찰될 지연 시간 값입니다.

    범위: 최소 1ms(io2)/10ms(비io2), 최대 60초

  • duration - 선택한 I/O의 백분율에 지연 시간이 주입되는 기간입니다.

    범위: 최소 1초, 최대 12시간

지연 시간 주입 모니터링

볼륨에 대한 성능 영향은 다음과 같은 방법으로 모니터링할 수 있습니다.

  • CloudWatch의 평균 지연 시간 지표를 사용하여 분당 평균 I/O 지연 시간을 얻습니다. 자세한 내용을 알아보려면 CloudWatch를 사용하여 EBS 볼륨 모니터링을 참조하세요.

  • NVMe-CLI, CloudWatch 에이전트 및 Prometheus를 통해 사용 가능한 EBS 세부 성능 통계를 사용하여 초당 평균 I/O 지연 시간을 얻습니다. 이 세부 지표는 볼륨의 지연 시간 변동을 분석하는 데 사용할 수 있는 I/O 지연 시간 히스토그램도 제공합니다. 자세한 내용을 알아보려면 NVMe 세부 성능 통계를 참조하세요.

  • Amazon EBS 볼륨 상태 확인를 사용합니다. I/O 지연 시간을 주입하면 볼륨의 상태가 warning 상태로 전환됩니다.

고려 사항

EBS 지연 시간 주입을 사용할 때는 다음 사항을 고려하세요.

  • 지연 시간 주입은 P4d, P5, P5e, Trn2u, G6, G6f, Gr6, Gr6f, M8i, M8i-flex, C8i-flex, R8i, R8i-flex, I8ge, Mac-m4pro, Mac-m4를 제외한 모든 Nitro 기반 인스턴스 유형에서 지원됩니다.

  • 실험에 지정된 지연 시간 값과 관찰된 지연 시간에서 최대 5%의 차이가 표시될 수 있습니다.

  • 매우 적은 수의 I/O 작업을 실행하는 경우 작업 파라미터에 지정된 I/O 비율이 작업의 영향을 받는 I/O의 실제 백분율과 일치하지 않을 수 있습니다.

Amazon EBS 볼륨에서 지연 시간 주입 실험을 실행하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 볼륨을 선택합니다.

  3. 실험을 실행할 볼륨을 선택하고 작업, 복원력 테스트, 볼륨 I/O 지연 시간 주입을 선택합니다.

    AWS Fault Injection Service 콘솔이 열립니다.

  4. 실험 생성 창에서, 실행할 실험 유형(간헐적, 증가, 지속 또는 감소)을 선택합니다.

  5. IAM 역할 선택에서 새 역할 생성을 선택하여 AWS FIS 가 사용자를 대신하여 실험을 수행하는 데 사용할 새 역할을 생성합니다. 또는 필요한 권한이 있는 IAM 역할을 이전에 생성한 경우 기존 IAM 역할 사용을 선택합니다.

  6. 비용 추정 섹션은 실험 실행에 대한 추정 비용을 제공합니다. 를 사용하면 실험의 대상 계정 수에 따라 처음부터 끝까지 작업이 실행되는 분당 요금이 청구 AWS FIS됩니다.

  7. 실험 시작을 선택합니다.