Amazon ECS의 EC2 및 외부 인스턴스 컨테이너 이미지 풀 동작
Amazon ECS의 EC2 및 외부 인스턴스 컨테이너 이미지 풀 동작
컨테이너가 시작되는 데 걸리는 시간은 기본 컨테이너 이미지에 따라 다릅니다. 이 글에서는 이미지 풀(pull) 동작을 제어하는 ECS_IMAGE_PULL_BEHAVIOR 에이전트 파라미터에 대해 알아봅니다.
출처: 문서
본문
컨테이너가 시작되는 데 걸리는 시간은 기본 컨테이너 이미지에 따라 다양합니다. 예를 들어 (Debian, Ubuntu, Amazon1/2의 전체 버전 같은) 더 "뚱뚱한" 이미지는 각자의 슬림 버전(데비안-slim, Ubuntu-slim, Amazon-slim)이나 더 작은 기본 이미지(Alpine)보다 컨테이너에서 실행되는 서비스가 많기 때문에 시작하는 데 더 오래 걸릴 수 있어요.
Amazon ECS 에이전트가 태스크를 시작하면 원격 레지스트리에서 Docker 이미지를 풀한 다음 로컬 복사본을 캐시합니다. 애플리케이션의 각 릴리스마다 새 이미지 태그를 사용한다면 이런 동작은 불필요할 수 있어요. ECS_IMAGE_PULL_BEHAVIOR 에이전트 파라미터가 이미지 풀 동작을 결정합니다. 사용 가능한 옵션은 다음과 같습니다:
ECS_IMAGE_PULL_BEHAVIOR:default- 이미지가 원격에서 풀됩니다. 풀에 실패하면 인스턴스의 캐시된 이미지가 사용됩니다.
ECS_IMAGE_PULL_BEHAVIOR:always- 이미지가 원격에서 풀됩니다. 풀에 실패하면 태스크가 실패합니다.
배포 속도를 높이려면 Amazon ECS 에이전트 파라미터를 다음 값 중 하나로 설정하세요:
ECS_IMAGE_PULL_BEHAVIOR:once- 이미지는 같은 컨테이너 인스턴스의 이전 태스크에서 풀되지 않았거나, 자동 이미지 정리(cleanup) 프로세스에 의해 캐시된 이미지가 제거된 경우에만 원격에서 풀됩니다. 그렇지 않으면 인스턴스의 캐시된 이미지가 사용됩니다. 이를 통해 불필요한 이미지 풀 시도가 발생하지 않도록 보장합니다.
ECS_IMAGE_PULL_BEHAVIOR:prefer-cached- 캐시된 이미지가 없으면 원격에서 풀합니다. 그렇지 않으면 인스턴스의 캐시된 이미지가 사용됩니다. 캐시된 이미지가 제거되지 않도록 컨테이너에 대해 자동 이미지 정리가 꺼집니다.
ECS_IMAGE_PULL_BEHAVIOR 파라미터를 위 값 중 하나로 설정하면 Amazon ECS 에이전트가 이미 다운로드된 이미지를 사용하므로 시간을 절약할 수 있어요. 더 큰 Docker 이미지의 경우 네트워크를 통한 풀에 10-20초가 걸릴 수 있습니다.
더 알아보기 (Learn more)
- Amazon ECS 에이전트 파라미터 구성에 대한 자세한 내용은 AWS 개발자 가이드의 관련 문서를 참고하세요.