클러스터 쿼리 언어 - Amazon Elastic Container Service

클러스터 쿼리 언어

클러스터 쿼리는 객체를 그룹화할 수 있게 해 주는 표현식입니다. 예를 들어 가용 영역, 인스턴스 유형 또는 사용자 지정 메타데이터 같은 속성을 기준으로 컨테이너 인스턴스를 그룹화할 수 있습니다. 자세한 내용은 Attributes 섹션을 참조하세요.

컨테이너 인스턴스 그룹을 정의한 후 그룹을 기준으로 태스크를 컨테이너 인스턴스에 배치하도록 Amazon ECS를 사용자 지정할 수 있습니다. 자세한 내용은 독립 실행형 작업 실행Amazon ECS 서비스 생성 섹션을 참조하세요. 컨테이너 인스턴스를 나열할 때 그룹 필터를 적용할 수도 있습니다. 자세한 내용은 속성으로 필터링 섹션을 참조하세요.

표현식 구문

표현식에는 다음과 같은 구문이 있습니다.

subject operator [argument]

Subject

평가할 속성 또는 필드.

agentConnected

Amazon ECS 컨테이너 에이전트 연결 상태를 기준으로 컨테이너 인스턴스를 선택합니다. 이 필터를 사용하여 분리된 컨테이너 에이전트가 있는 인스턴스를 검색할 수 있습니다.

유효 연산자: equals (==), not_equals (!=), in, not_in (!in), matches (=~), not_matches (!~)

agentVersion

Amazon ECS 컨테이너 에이전트 버전을 기준으로 컨테이너 인스턴스를 선택합니다. 이 필터를 사용하여 오래된 Amazon ECS 컨테이너 에이전트 버전을 실행하는 인스턴트를 검색할 수 있습니다.

유효 연산자: equals (==), not_equals (!=), greater_than (>), greater_than_equal (>=), less_than (<), less_than_equal (<=)

attribute:attribute-name

속성을 기준으로 컨테이너 인스턴스를 선택합니다. 자세한 내용은 Attributes 섹션을 참조하세요.

ec2InstanceId

Amazon EC2 인스턴스 ID로 컨테이너 인스턴스를 선택합니다.

유효 연산자: equals (==), not_equals (!=), in, not_in (!in), matches (=~), not_matches (!~)

registeredAt

컨테이너 인스턴스 등록일을 기준으로 컨테이너 인스턴스를 선택합니다. 이 필터를 사용하여 새로 등록된 인스턴스 또는 매우 오래된 인스턴스를 검색할 수 있습니다.

유효 연산자: equals (==), not_equals (!=), greater_than (>), greater_than_equal (>=), less_than (<), less_than_equal (<=)

유효한 날짜 형식: 2018-06-18T22:28:28+00:00, 2018-06-18T22:28:28Z, 2018-06-18T22:28:28, 2018-06-18

runningTasksCount

실행 중인 작업 수를 기준으로 컨테이너 인스턴스를 선택합니다. 이 필터를 사용하여 비었거나 거의 비어 있는(실행 중인 작업이 거의 없는) 인스턴스를 검색할 수 있습니다.

유효 연산자: equals (==), not_equals (!=), greater_than (>), greater_than_equal (>=), less_than (<), less_than_equal (<=)

task:group

작업 그룹을 기준으로 컨테이너 인스턴스를 선택합니다. 자세한 내용은 작업 그룹 섹션을 참조하세요.

Operator

비교 연산자. 다음의 연산자가 지원됩니다.

연산자

설명

==, equals

문자열 같음

!=, not_equals

문자열 다름

>, greater_than

초과

>=, greater_than_equal

크거나 같음

<, less_than

미만

<=, less_than_equal

작거나 같음

exists

주체 있음

!exists, not_exists

주체 없음

in

인수 목록에 있는 값

!in, not_in

인수 목록에 없는 값

=~, matches

패턴 일치

!~, not_matches

패턴 불일치

참고

단일 표현식은 괄호를 포함할 수 없습니다. 하지만 복합 표현식에서는 우선순위를 지정하기 위해 괄호를 사용할 수 있습니다.

Argument

많은 연산자에서 인수는 리터럴 값입니다.

innot_in 연산자에는 인수로 인수 목록이 필요합니다. 다음과 같이 인수를 지정합니다.

[argument1, argument2, ..., argumentN]

matches 및 not_matches 연산자에는 Java 정규식 구문을 준수하는 인수가 필요합니다. 자세한 내용은 java.util.regex.Pattern을 참조하세요.

복합 표현식

다음 부울 연산자를 사용하여 표현식을 결합할 수 있습니다.

  • &&, 및

  • ||, 또는

  • !, not

괄호를 사용하여 우선순위를 지정할 수 있습니다.

(expression1 or expression2) and expression3

예제 표현식

다음은 예제 표현식입니다.

예제: 문자열 같음

다음 표현식은 지정된 인스턴스 유형을 가진 인스턴스를 선택합니다.

attribute:ecs.instance-type == t2.small

예제: 인수 목록

다음 표현식은 us-east-1a 또는 us-east-1b 가용 영역 내 인스턴스를 선택합니다.

attribute:ecs.availability-zone in [us-east-1a, us-east-1b]

예제: 복합 표현식

다음 표현식은 us-east-1d 가용 영역에 없는 G2 인스턴스를 선택합니다.

attribute:ecs.instance-type =~ g2.* and attribute:ecs.availability-zone != us-east-1d

예제: 작업 선호도

다음 표현식은 service:production 그룹에서 태스크를 호스팅하고 있지 않은 인스턴스를 선택합니다.

task:group == service:production

예제: 작업 비선호도

다음 표현식은 database 그룹에서 태스크를 호스팅하고 있지 않은 인스턴스를 선택합니다.

not(task:group == database)

예: 실행 중인 작업 개수

다음 표현식은 작업 한 개만 실행 중인 인스턴스를 선택합니다.

runningTasksCount == 1

예제: Amazon ECS 컨테이너 에이전트 버전

다음 표현식은 실행 중인 컨테이너 에이전트 버전이 1.14.5인 인스턴스를 선택합니다.

agentVersion < 1.14.5

예: 인스턴스 등록 시간

다음 표현식은 2018년 2월 13일 이전에 등록된 인스턴스를 선택합니다.

registeredAt < 2018-02-13

예제: Amazon EC2 인스턴스 ID

다음 표현식은 다음 Amazon EC2 인스턴스 ID를 갖는 인스턴스를 선택합니다.

ec2InstanceId in ['i-abcd1234', 'i-wxyx7890']