자동 Amazon ECS 태스크 및 이미지 정리 - Amazon Elastic Container Service

자동 Amazon ECS 태스크 및 이미지 정리

컨테이너 인스턴스에 작업이 배치될 때마다 Amazon ECS 컨테이너 에이전트가 작업에서 참조된 이미지가 리포지토리에서 지정된 태그의 최신 이미지인지 확인합니다. 최신이 아닌 경우 기본 동작은 에이전트가 해당 리포지토리에서 이미지를 가져오도록 허용합니다. 태스크와 서비스에서 이미지를 자주 업데이트하는 경우 컨테이너 인스턴스 스토리지가 더 이상 사용하지 않고 앞으로도 다시 사용하지 않을 Docker 이미지로 금세 가득 찰 수 있습니다. 예를 들어 지속적 통합 및 지속적 배포(CI/CD) 파이프라인을 사용할 수 있습니다.

참고

Amazon ECS 에이전트 이미지 가져오기 동작은 ECS_IMAGE_PULL_BEHAVIOR 파라미터를 사용하여 사용자 지정할 수 있습니다. 자세한 정보는 Amazon ECS 컨테이너 에이전트 구성을 참조하세요.

마찬가지로, 중지된 태스크에 속하는 컨테이너가 로그 정보, 데이터 볼륨 및 기타 아티팩트로 컨테이너 인스턴스 스토리지를 소비할 수도 있습니다. 이러한 아티팩트는 예기치 않게 중지한 컨테이너를 디버깅하는 데 유용하지만, 이 스토리지는 대부분 일정 시간 후에 안전하게 해제될 수 있습니다.

기본적으로 Amazon ECS 컨테이너 에이전트는 컨테이너 인스턴스에서 어떤 작업도 사용하고 있지 않은 중지된 작업 및 Docker 이미지를 자동으로 정리합니다.

참고

자동 이미지 정리 기능을 사용하려면 Amazon ECS 컨테이너 에이전트 버전 1.13.0 이상이 필요합니다. 에이전트를 최신 버전으로 업데이트하려면 Amazon ECS 컨테이너 에이전트 업데이트 섹션을 참조하세요.

다음의 에이전트 구성 변수를 사용하여 자동 태스크 및 이미지 정리 환경을 조정할 수 있습니다. 컨테이너 인스턴스에서 이들 변수를 설정하는 방법에 대한 자세한 내용은 Amazon ECS 컨테이너 에이전트 구성 섹션을 참조하세요.

ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION

이 변수는 중지한 태스크에 속하는 컨테이너를 모두 제거하기 전에 대기할 시간을 지정합니다. 이미지 정리 프로세스는 컨테이너가 이미지를 참조하는 한 해당 이미지를 삭제할 수 없습니다. 어떤 컨테이너(중지 또는 실행 중)도 이미지를 참조하지 않으면 해당 이미지는 정리 후보가 됩니다. 기본적으로 이 파라미터는 3시간으로 설정되지만 애플리케이션에 필요할 경우 이 기간을 최소 1초로 줄일 수 있습니다. 1초보다 작은 값을 설정하면 파라미터는 무시됩니다.

ECS_DISABLE_IMAGE_CLEANUP

이 변수를 true로 설정할 경우 컨테이너 인스턴스에서 자동 이미지 정리가 꺼지고 이미지가 자동으로 제거되지 않습니다.

ECS_IMAGE_CLEANUP_INTERVAL

이 변수는 자동 이미지 정리 프로세스가 삭제할 이미지가 있는지 확인하는 주기를 지정합니다. 기본값은 매 30분이지만 애플리케이션에 필요할 경우 사용자가 이 기간을 최소 10분으로 단축하여 이미지를 제거할 수 있습니다.

ECS_IMAGE_MINIMUM_CLEANUP_AGE

이 변수는 이미지를 끌어온 시점과 이미지가 제거 후보가 될 수 있는 시점 사이의 최소 시간 간격을 지정합니다. 이 변수는 방금 끌어온 이미지가 정리되는 것을 방지하기 위해 사용합니다. 기본값은 1시간입니다.

ECS_NUM_IMAGES_DELETE_PER_CYCLE

이 변수는 단일 정리 사이클에서 제거할 수 있는 이미지 수를 지정합니다. 기본값은 5이고, 최솟값은 1입니다.

Amazon ECS 컨테이너 에이전트가 실행 중이고 자동 이미지 정리가 꺼지지 않았으면 에이전트가 실행 중 또는 중지된 컨테이너에 의해 참조되지 않는 Docker 이미지가 있는지 ECS_IMAGE_CLEANUP_INTERVAL 변수로 지정된 주기로 확인합니다. 사용되지 않는 이미지가 발견되고 해당 이미지가 ECS_IMAGE_MINIMUM_CLEANUP_AGE 변수로 지정된 최소 정리 기간보다 오래된 경우 에이전트가 ECS_NUM_IMAGES_DELETE_PER_CYCLE 변수로 지정된 최대 이미지 수만큼 제거합니다. 가장 이전에 참조된 이미지가 먼저 삭제됩니다. 이미지가 제거된 후, 에이전트는 다음 주기까지 대기했다 프로세스를 반복합니다.