Amazon ECS 컨테이너 에이전트 설치 - Amazon Elastic Container Service

Amazon ECS 컨테이너 에이전트 설치

Amazon ECS 클러스터에 Amazon EC2 인스턴스를 등록하려고 하는데 해당 인스턴스가 Amazon ECS 최적화 AMI 기반 AMI를 사용하지 않는 경우에는 다음 절차에 따라 Amazon ECS 컨테이너 에이전트를 수동으로 설치할 수 있습니다. 이렇게 하려면 리전의 Amazon S3 버킷 중 하나 또는 Amazon Elastic Container Registry Public에서 에이전트를 다운로드하면 됩니다. 리전 Amazon S3 버킷 중 하나에서 다운로드하는 경우 선택적으로 PGP 서명을 사용하여 컨테이너 에이전트 파일의 유효성을 확인할 수 있습니다.

참고

Amazon ECS 및 도커 서비스 모두를 위한 systemd 단위에는 이 두 서비스를 시작하기 전에 완료하기 위해 cloud-init를 대기하는 명령이 있습니다. cloud-init 프로세스는 Amazon EC2 사용자 데이터의 실행이 완료될 때까지 완료된 것으로 간주되지 않습니다. 따라서 Amazon EC2 사용자 데이터를 통해 Amazon ECS 또는 도커를 시작하면 교착 상태가 발생할 수 있습니다. Amazon EC2 사용자 데이터를 사용하여 컨테이너 에이전트를 시작하려면 systemctl enable --now --no-block ecs.service를 사용할 수 있습니다.

비 Amazon Linux EC2 에이전트에 Amazon ECS 컨테이너 에이전트 설치

Amazon EC2 인스턴스에 Amazon ECS 컨테이너 에이전트를 설치하려면 리전 Amazon S3 버킷 중 하나에서 에이전트를 다운로드하여 설치할 수 있습니다.

참고

비 Amazon Linux AMI를 사용할 때 Amazon EC2 인스턴스는 cgroupfs 드라이버에 대한 cgroup 지원이 있어야 Amazon ECS 에이전트가 작업 수준 리소스 제한을 지원할 수 있습니다. 자세한 내용은 GitHub의 Amazon ECS 에이전트를 참조하세요.

참조용으로 아래에 각 시스템 아키텍처에 대해 최신 Amazon ECS 컨테이너 에이전트 파일이 리전별로 나열되어 있습니다.

지역 지역명 Amazon ECS init deb 파일 Amazon ECS init rpm 파일
us-east-2 미국 동부(오하이오)

Amazon ECS init amd64(amd64)

Amazon ECS init arm64(arm64)

Amazon ECS init x86_64(x86_64)

Amazon ECS init aarch64(aarch64)

us-east-1 미국 동부(버지니아 북부)

Amazon ECS init amd64(amd64)

Amazon ECS init arm64(arm64)

Amazon ECS init x86_64(x86_64)

Amazon ECS init aarch64(aarch64)

us-west-1 미국 서부(캘리포니아 북부)

Amazon ECS init amd64(amd64)

Amazon ECS init arm64(arm64)

Amazon ECS init x86_64(x86_64)

Amazon ECS init aarch64(aarch64)

us-west-2 미국 서부(오레곤)

Amazon ECS init amd64(amd64)

Amazon ECS init arm64(arm64)

Amazon ECS init x86_64(x86_64)

Amazon ECS init aarch64(aarch64)

ap-east-1 아시아 태평양(홍콩)

Amazon ECS init amd64(amd64)

Amazon ECS init arm64(arm64)

Amazon ECS init x86_64(x86_64)

Amazon ECS init aarch64(aarch64)

ap-northeast-1 아시아 태평양(도쿄)

Amazon ECS init amd64(amd64)

Amazon ECS init arm64(arm64)

Amazon ECS init x86_64(x86_64)

Amazon ECS init aarch64(aarch64)

ap-northeast-2 아시아 태평양(서울)

Amazon ECS init amd64(amd64)

Amazon ECS init arm64(arm64)

Amazon ECS init x86_64(x86_64)

Amazon ECS init aarch64(aarch64)

ap-south-1 아시아 태평양(뭄바이)

Amazon ECS init amd64(amd64)

Amazon ECS init arm64(arm64)

Amazon ECS init x86_64(x86_64)

Amazon ECS init aarch64(aarch64)

ap-southeast-1 아시아 태평양(싱가포르)

Amazon ECS init amd64(amd64)

Amazon ECS init arm64(arm64)

Amazon ECS init x86_64(x86_64)

Amazon ECS init aarch64(aarch64)

ap-southeast-2 아시아 태평양(시드니)

Amazon ECS init amd64(amd64)

Amazon ECS init arm64(arm64)

Amazon ECS init x86_64(x86_64)

Amazon ECS init aarch64(aarch64)

ca-central-1 캐나다(중부)

Amazon ECS init amd64(amd64)

Amazon ECS init arm64(arm64)

Amazon ECS init x86_64(x86_64)

Amazon ECS init aarch64(aarch64)

eu-central-1 유럽(프랑크푸르트)

Amazon ECS init amd64(amd64)

Amazon ECS init arm64(arm64)

Amazon ECS init x86_64(x86_64)

Amazon ECS init aarch64(aarch64)

eu-west-1 유럽(아일랜드)

Amazon ECS init amd64(amd64)

Amazon ECS init arm64(arm64)

Amazon ECS init x86_64(x86_64)

Amazon ECS init aarch64(aarch64)

eu-west-2 유럽(런던)

Amazon ECS init amd64(amd64)

Amazon ECS init arm64(arm64)

Amazon ECS init x86_64(x86_64)

Amazon ECS init aarch64(aarch64)

eu-west-3 유럽(파리)

Amazon ECS init amd64(amd64)

Amazon ECS init arm64(arm64)

Amazon ECS init x86_64(x86_64)

Amazon ECS init aarch64(aarch64)

sa-east-1 남아메리카(상파울루)

Amazon ECS init amd64(amd64)

Amazon ECS init arm64(arm64)

Amazon ECS init x86_64

Amazon ECS init aarch64(aarch64)

us-gov-east-1 AWS GovCloud(미국 동부)

Amazon ECS init amd64(amd64)

Amazon ECS init arm64(arm64)

Amazon ECS init x86_64(x86_64)

Amazon ECS init aarch64(aarch64)

us-gov-west-1 AWS GovCloud(미국 서부)

Amazon ECS init amd64(amd64)

Amazon ECS init arm64(arm64)

Amazon ECS init x86_64(x86_64)

Amazon ECS init aarch64(aarch64)

비 Amazon Linux AMI를 사용하는 Amazon EC2 인스턴스에 Amazon ECS 컨테이너 에이전트를 설치하는 방법
  1. Amazon ECS에 액세스할 수 있는 IAM 역할로 Amazon EC2 인스턴스를 시작합니다. 자세한 정보는 Amazon ECS 컨테이너 인스턴스 IAM 역할을 참조하세요.

  2. 인스턴스에 연결합니다.

  3. 인스턴스에 최신 버전의 Docker를 설치합니다.

  4. 시스템이 최소 버전 요구 사항을 충족하는지 Docker 버전을 확인하세요.

    참고

    신뢰할 수 있는 지표를 위한 최소 Docker 버전은 Docker 버전 v20.10.13 이상이며, Amazon ECS 최적화 AMI 20220607 이상 버전에 포함되어 있습니다.

    Amazon ECS 에이전트 버전 1.20.0 이상에서는 1.9.0 이전 Docker 버전에 대한 지원이 중단되었습니다.

    docker --version
  5. 운영 체제 및 시스템 아키텍처에 적합한 Amazon ECS 에이전트 파일을 다운로드하여 설치합니다.

    deb 아키텍처의 경우:

    ubuntu:~$ curl -O https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.amd64.deb ubuntu:~$ sudo dpkg -i amazon-ecs-init-latest.amd64.deb

    rpm 아키텍처의 경우:

    fedora:~$ curl -O https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.x86_64.rpm fedora:~$ sudo yum localinstall -y amazon-ecs-init-latest.x86_64.rpm
  6. /lib/systemd/system/ecs.service 파일을 편집하고 [Unit] 섹션의 끝에 다음 줄을 추가합니다.

    After=cloud-final.service
  7. (선택 사항) 인스턴스를 default 클러스터가 아닌 클러스터에 등록하려면, /etc/ecs/ecs.config 파일을 편집하고 다음 내용을 추가하세요. 다음 예제는 MyCluster 클러스터를 지정합니다.

    ECS_CLUSTER=MyCluster

    이들을 비롯한 기타 에이전트 런타임 옵션에 대한 자세한 내용은 Amazon ECS 컨테이너 에이전트 구성 섹션을 참조하세요.

    참고

    필요할 경우 (시작 시 Amazon EC2 사용자 데이터를 사용하여 컨테이너 인스턴스에 다운로드할 수 있는) Amazon S3에 에이전트 환경 변수를 저장할 수 있습니다. 프라이빗 리포지토리의 인증 자격 증명과 같은 민감한 정보에는 이 방법을 권장합니다. 자세한 내용은 Amazon S3에 Amazon ECS 컨테이너 인스턴스 구성 저장Amazon ECS에서 AWS 컨테이너가 아닌 이미지 사용 단원을 참조하세요.

  8. ecs 서비스를 시작합니다.

    ubuntu:~$ sudo systemctl start ecs

호스트 네트워크 모드로 Amazon ECS 에이전트 실행

Amazon ECS 컨테이너 에이전트를 실행하는 경우 ecs-inithost 네트워크 모드로 컨테이너 에이전트 컨테이너를 만듭니다. 이 모드는 컨테이너 에이전트 컨테이너에서 유일하게 지원되는 네트워크 모드입니다.

이렇게 하면 컨테이너 에이전트가 시작한 컨테이너가 Amazon EC2 인스턴스 메타데이터 서비스 엔드포인트(http://169.254.169.254)에 액세스하는 것을 차단할 수 있습니다. 이 경우 컨테이너가 컨테이너 인스턴스 프로필에서 IAM 역할 자격 증명에 액세스할 수 없으며 해당 작업이 IAM 태스크 역할 자격 증명만 사용합니다. 자세한 정보는 Amazon ECS 작업 IAM 역할을 참조하세요.

이렇게 하면 컨테이너 에이전트가 docker0 브리지에서 연결 및 네트워크 트래픽을 위해 경합하지 않습니다.