Amazon ECS 컨테이너 에이전트 수동 업데이트(Amazon ECS-Optimized AMI가 아닌 경우)

Amazon ECS 컨테이너 에이전트 수동 업데이트(Amazon ECS-Optimized AMI가 아닌 경우)

버그 수정과 새 기능을 적용하기 위해 Amazon ECS 컨테이너 에이전트를 업데이트해야 할 때가 있어요. Amazon ECS 컨테이너 에이전트를 업데이트해도 컨테이너 인스턴스에서 실행 중인 태스크나 서비스는 중단되지 않아요.

출처: 문서

본문

가끔 버그 수정과 새 기능을 적용하기 위해 Amazon ECS 컨테이너 에이전트를 업데이트해야 할 수 있어요. Amazon ECS 컨테이너 에이전트를 업데이트해도 컨테이너 인스턴스에서 실행 중인 태스크나 서비스는 중단되지 않아요.

참고 에이전트 업데이트는 Windows 컨테이너 인스턴스에는 적용되지 않아요. Windows 클러스터의 에이전트 버전을 업데이트하려면 새 컨테이너 인스턴스를 시작할 것을 권장해요.

  1. SSH를 통해 컨테이너 인스턴스에 로그인합니다.
  2. 에이전트가 상태를 저장하는 데 ECS_DATADIR 환경 변수를 사용하는지 확인합니다.
    ubuntu:~$ docker inspect ecs-agent | grep ECS_DATADIR
    
    출력:
    "ECS_DATADIR=/data",
    
    중요 이전 명령이 ECS_DATADIR 환경 변수를 반환하지 않으면 에이전트를 업데이트하기 전에 이 컨테이너 인스턴스에서 실행 중인 태스크를 모두 중지해야 해요. ECS_DATADIR 환경 변수가 있는 최신 에이전트는 상태를 저장하므로 태스크가 실행되는 동안에도 문제없이 업데이트할 수 있어요.
  3. Amazon ECS 컨테이너 에이전트를 중지합니다.
    ubuntu:~$ docker stop ecs-agent
    
  4. 에이전트 컨테이너를 삭제합니다.
    ubuntu:~$ docker rm ecs-agent
    
  5. /etc/ecs 디렉터리와 Amazon ECS 컨테이너 에이전트 구성 파일이 /etc/ecs/ecs.config 에 존재하는지 확인합니다.
    ubuntu:~$ sudo mkdir -p /etc/ecs && sudo touch /etc/ecs/ecs.config
    
  6. /etc/ecs/ecs.config 파일을 편집해 최소한 다음 변수 선언이 포함되도록 합니다. 컨테이너 인스턴스가 기본 클러스터에 등록되길 원하지 않으면 클러스터 이름을 ECS_CLUSTER 의 값으로 지정합니다.
    ECS_DATADIR=/data
    ECS_ENABLE_TASK_IAM_ROLE=true
    ECS_ENABLE_TASK_IAM_ROLE_NETWORK_HOST=true
    ECS_LOGFILE=/log/ecs-agent.log
    ECS_AVAILABLE_LOGGING_DRIVERS=["json-file","awslogs"]
    ECS_LOGLEVEL=info
    ECS_CLUSTER=default
    

더 알아보기 (Learn more)