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 배열입니다. SourcesToFilter
는 Sources
보다 우선순위가 높습니다.
유형: 문자열 배열
필수 여부: 아니요
다음은 /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 배열입니다. SourcesToFilter
는 Sources
보다 우선순위가 높습니다.
유형: 문자열 배열
필수 여부: 아니요
다음은 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