Task definition parameters

차분한열정·2022년 3월 12일

AWS ECS

목록 보기
2/6

Task Definition에 정의할 수 있는 각 파라미터 관련 주의사항들을 정리해본다.

1. Image

새로운 태스크가 시작될 때 ECS는 해당 이미지를 pull해서 컨테이너화한다. 다만 이미 태스크가 실행된 후에는 이미지를 업데이트해봤자 이미 실행 중은 태스크에 반영되는 것은 아니다.

2. CPU, Memory

이 파라미터에 관해서 유의해야할 점은 이 값을 태스크 레벨과 컨테이너 레벨에서 설정할 수 있다는 점이다.

(1) 태스크 레벨

EC2 launch type의 ECS인 경우에 태스크 레벨의 이 필드들은 optional이고, Fargate launch type인 경우 이 필드들은 required이다. 그리고 이 필드들이 작성된 경우, 컨테이너 레벨의 필드는 optional이다.

(2) 컨테이너 레벨

이 레벨에 정의된 memory를 컨테이너가 넘어서게 되면 컨테이너는 kill된다. 한 태스크 내의 모든 컨테이너의 memory 값의 합은 태스크 레벨의 memory 값보다는 작아야한다. cpu도 마찬가지이다.

참고로 memoryReservation이라는 파라미터도 있는데 도커에서 컨테이너에서 사용하도록 하기 위해 최소한으로 확보하는 메모리 크기이다. 즉, 컨테이너는 최소한 memoryReservation 메모리 크기 이상에서 그리고 최대로는 memory 값까지는 사용 가능한 것이다.

3. essential

특정 태스크 안에서 반드시 필수적인 컨테이너인지를 나타낸다. 만약 essential: true인 컨테이너가 fail or stop 하게 되면 해당 태스크 내의 모든 컨테이너들도 멈추게 된다. 만약 essential: false라면 다른 컨테이너에 영향을 미치지 않는다.

profile
성장의 기쁨

0개의 댓글