Amazon ECS 결함 주입 엔드포인트 - Amazon Elastic Container Service

Amazon ECS 결함 주입 엔드포인트

Amazon ECS 컨테이너 에이전트는 Amazon ECS 작업의 컨테이너에 ECS_AGENT_URI 환경 변수를 자동으로 주입하여 컨테이너 에이전트 API 엔드포인트와 상호 작용하는 방법을 제공합니다. 각 엔드포인트에는 /start, /stop, /status 엔드포인트가 포함됩니다. 엔드포인트는 결함 주입이 활성화된 작업의 요청만 수락하며, 각 엔드포인트의 요청 속도 제한은 컨테이너별로 5초당 1개입니다. 제한을 초과할 경우 오류가 발생합니다.

참고

Amazon ECS Agent version 1.88.0+는 결함 주입 엔드포인트를 사용해야 합니다.

결함 주입에 사용할 세 가지 엔드포인트는 다음과 같습니다.

요청이 성공하면 /start 엔드포인트를 호출할 때 running 메시지와 함께 200 응답 코드가 생성되며, /stop 엔드포인트에 대해 stopped, /status 엔드포인트에 대해 running 또는 not-running이 생성됩니다.

{ "Status": <string> }

요청이 실패하면 다음 오류 코드 중 하나가 반환됩니다.

  • 400-잘못된 요청

  • 409-결함 주입 요청이 실행 중인 다른 오류와 충돌

  • 429-요청에 병목 현상 발생

  • 500-서버에 예기치 않은 오류 발생

{ "Error": <string message> }
참고

네트워크 지연 시간 오류 하나 또는 네트워크 패킷 손실 오류를 한 번에 하나씩 주입할 수 있습니다. 둘 이상의 결과를 주입하려고 하면 요청이 거부됩니다.

네트워크 블랙홀 포트 엔드포인트

{ECS_AGENT_URI}/fault/v1/network-blackhole-port 엔드포인트는 작업의 네트워크 네임스페이스에 있는 특정 포트 및 프로토콜에 대한 인바운드 또는 아웃바운드 트래픽을 삭제하며 다음 두 가지 모드와 호환됩니다.

  • awsvpc-변경 사항이 작업 네트워크 네임스페이스에 적용됨

  • 호스트-변경 사항이 기본 네트워크 네임스페이스 컨테이너 인스턴스에 적용됨

{ECS_AGENT_URI}/fault/v1/network-blackhole-port/start

이 엔드포인트는 네트워크 블랙홀 포트 결함 주입을 시작하며 다음 파라미터를 갖습니다.

Port

블랙홀 포트 결함 주입에 사용할 지정된 포트입니다.

유형: 정수

필수 여부: 예

프로토콜

블랙홀 포트 결함 주입에 사용할 프로토콜입니다.

타입: 문자열

유효값: tcp | udp

필수 여부: 예

TrafficType

결함 주입에 사용되는 트래픽 유형입니다.

타입: 문자열

유효값: ingress | egress

필수 여부: 예

SourcesToFilter

오류로부터 보호되는 IPv4 주소 또는 CIDR 블록의 JSON 배열입니다.

유형: 문자열 배열

필수 여부: 아니요

다음은 start 엔드포인트 사용에 대한 요청의 예입니다(빨간색 값을 자체 값으로 대체).

Endpoint: ${ECS_AGENT_URI}/fault/v1/network-blackhole-port/start Http method:POST Request payload: { "Port": 1234, "Protocol": "tcp|udp", "TrafficType": "ingress|egress" "SourcesToFilter": ["${IP1}", "${IP2}", ...], }

{ECS_AGENT_URI}/fault/v1/network-blackhole-port/stop

이 엔드포인트는 요청에 지정된 오류를 중지합니다. 이 엔드포인트에는 다음과 같은 파라미터가 있습니다.

Port

중지해야 하는 오류의 영향을 받는 포트입니다.

유형: 정수

필수 여부: 예

프로토콜

오류를 중지하는 데 사용할 프로토콜입니다.

타입: 문자열

유효값: tcp | udp

필수 여부: 예

TrafficType

결함 주입에 사용되는 트래픽 유형입니다.

타입: 문자열

유효값: ingress | egress

필수 여부: 예

다음은 stop 엔드포인트 사용에 대한 요청의 예입니다(빨간색 값을 자체 값으로 대체).

Endpoint: ${ECS_AGENT_URI}/fault/v1/network-blackhole-port/stop Http method: POST Request payload: { "Port": 1234, "Protocol": "tcp|udp", "TrafficType": "ingress|egress", }

{ECS_AGENT_URI}/fault/v1/network-blackhole-port/status

이 엔드포인트는 결함 주입의 상태를 확인하는 데 사용됩니다. 이 엔드포인트에는 다음과 같은 파라미터가 있습니다.

Port

오류 상태를 확인할 때 영향을 받는 포트입니다.

유형: 정수

필수 여부: 예

프로토콜

오류 상태를 확인할 때 사용할 프로토콜입니다.

타입: 문자열

유효값: tcp | udp

필수 여부: 예

TrafficType

결함 주입에 사용되는 트래픽 유형입니다.

타입: 문자열

유효값: ingress | egress

필수 여부: 예

다음은 status 엔드포인트 사용에 대한 요청의 예입니다(빨간색 값을 자체 값으로 대체).

Endpoint: ${ECS_AGENT_URI}/fault/v1/network-blackhole-port/status Http method: POST Request payload: { "Port": 1234, "Protocol": "tcp|udp", "TrafficType": "ingress|egress", }

네트워크 지연 시간 엔드포인트

{ECS_AGENT_URI}/fault/v1/network-latency 엔드포인트는 특정 소스로 가는 트래픽 처리를 위해 작업의 네트워크 인터페이스에 지연과 지터를 추가합니다. 엔드포인트는 다음 두 가지 모드와 호환됩니다.

  • awsvpc-변경 사항이 작업 네트워크 인터페이스에 적용됨

  • 호스트-변경 사항이 기본 네트워크 인터페이스에 적용됨

{ECS_AGENT_URI}/fault/v1/network-latency/start

/start 엔드포인트는 네트워크 지연 시간 결함 주입을 시작하며 다음 파라미터를 갖습니다.

DelayMilliseconds

결함 주입에 사용하기 위해 네트워크 인터페이스에 추가할 지연 시간(밀리초)입니다.

유형: 정수

필수 여부: 예

JitterMilliseconds

결함 주입에 사용하기 위해 네트워크 인터페이스에 추가할 지터(밀리초)입니다.

유형: 정수

필수 여부: 예

소스

결함 주입에 사용할 대상인 IPv4 주소 또는 CIDR 블록의 JSON 배열입니다.

유형: 문자열 배열

필수 여부: 예

SourcesToFilter

오류로부터 보호되는 IPv4 주소 또는 CIDR 블록의 JSON 배열입니다. SourcesToFilterSources보다 우선순위가 높습니다.

유형: 문자열 배열

필수 여부: 아니요

다음은 /start 엔드포인트 사용에 대한 요청의 예입니다(빨간색 값을 자체 값으로 대체).

Endpoint: ${ECS_AGENT_URI}/fault/v1/network-latency/start Http method: POST Request payload: { "DelayMilliseconds": 123, "JitterMilliseconds": 123, "Sources": ["${IP1}", "${IP2}", ...], "SourcesToFilter": ["${IP1}", "${IP2}", ...], }

{ECS_AGENT_URI}/fault/v1/network-latency/stop and /status

{ECS_AGENT_URI}/fault/v1/network-latency/stop 엔드포인트가 오류를 중지하고 {ECS_AGENT_URI}/fault/v1/network-latency/status가 오류 상태를 확인합니다.

다음은 /stop/status 엔드포인트 사용에 대한 두 가지 예제 요청입니다. 둘 다 POST HTTP 메서드를 사용합니다.

Endpoint: ${ECS_AGENT_URI}/fault/v1/network-latency/stop
Endpoint: ${ECS_AGENT_URI}/fault/v1/network-latency/status

네트워크 패킷 손실 엔드포인트

{ECS_AGENT_URI}/fault/v1/network-packet-loss 엔드포인트는 지정된 네트워크 인터페이스에 패킷 손실을 추가합니다. 이 엔드포인트는 다음 두 가지 모드와 호환됩니다.

  • awsvpc-변경 사항이 작업 네트워크 인터페이스에 적용됨

  • 호스트-변경 사항이 기본 네트워크 인터페이스에 적용됨

{ECS_AGENT_URI}/fault/v1/network-packet-loss/start

/start 엔드포인트는 네트워크 패킷 손실 결함 주입을 시작하며 다음 파라미터를 갖습니다.

LossPercent

패킷 손실의 백분율

유형: 정수

필수 여부: 예

소스

결함 주입 테스트에 사용할 IPv4 주소 또는 CIDR 블록의 JSON 배열입니다.

유형: 문자열 배열

필수 여부: 예

SourcesToFilter

오류로부터 보호되는 IPv4 주소 또는 CIDR 블록의 JSON 배열입니다. SourcesToFilterSources보다 우선순위가 높습니다.

유형: 문자열 배열

필수 여부: 아니요

다음은 start 엔드포인트 사용에 대한 요청의 예입니다(빨간색 값을 자체 값으로 대체).

Endpoint: ${ECS_AGENT_URI}/fault/v1/network-packet-loss/start Http method: POST { "LossPercent": 6, "Sources": ["${IP1}", "${IP2}", ...], "SourcesToFilter": ["${IP1}", "${IP2}", ...], }

{ECS_AGENT_URI}/fault/v1/network-packet-loss/stop and /status

{ECS_AGENT_URI}/fault/v1/network-packet-loss/stop 엔드포인트가 오류를 중지하고 {ECS_AGENT_URI}/fault/v1/network-packet-loss/status가 오류 상태를 확인합니다. 한 번에 각 유형의 오류 중 하나만 지원됩니다.

다음은 /stop/status 엔드포인트 사용에 대한 두 가지 예제 요청입니다. 둘 다 POST HTTP 메서드를 사용합니다.

Endpoint: ${ECS_AGENT_URI}/fault/v1/network-packet-loss/stop
Endpoint: ${{ECS_AGENT_URI}/fault/v1/network-packet-loss/status