Amazon ECS 클러스터에 외부 인스턴스 등록 - Amazon Elastic Container Service

Amazon ECS 클러스터에 외부 인스턴스 등록

Amazon ECS 클러스터에 등록하는 각 외부 인스턴스에 대해 SSM Agent, Amazon ECS 컨테이너 에이전트 및 Docker가 설치되어 있어야 합니다. Amazon ECS 클러스터에 외부 인스턴스를 등록하려면 먼저 AWS Systems Manager 관리형 인스턴스로 등록되어야 합니다. Amazon ECS 콘솔에서 몇 번의 클릭만으로 설치 스크립트를 생성할 수 있습니다. 설치 스크립트에는 Systems Manager 활성화 키와 필요한 에이전트 및 Docker를 각각 설치하는 명령이 포함되어 있습니다. 설치 및 등록 단계를 완료하려면 온프레미스 서버 또는 VM에서 설치 스크립트를 실행해야 합니다.

참고

클러스터에 외부 인스턴스를 등록하기 전에 Linux 외부 인스턴스에 /etc/ecs/ecs.config 파일을 열고 생성하고 원하는 컨테이너 에이전트 구성 파라미터를 추가합니다. 외부 인스턴스를 클러스터에 등록한 후에는 이 태스크를 수행할 수 없습니다. 자세한 내용은 Amazon ECS 컨테이너 에이전트 구성 단원을 참조하십시오.

AWS Management Console
  1. https://console.aws.amazon.com/ecs/v2에서 콘솔을 엽니다.

  2. 탐색 모음에서 사용할 리전을 선택합니다.

  3. 탐색 창에서 클러스터를 선택합니다.

  4. 클러스터 페이지에서 외부 인스턴스를 등록할 클러스터를 선택합니다.

  5. 클러스터: name(Cluster : name) 페이지에서 인프라(Infrastructure) 탭을 선택합니다.

  6. 외부 인스턴스 등록(Register external instances) 페이지에서 다음 단계를 수행합니다.

    1. 활성화 키 기간(일)(Activation key duration (in days))에 활성화 키가 활성 상태로 유지되는 일수를 입력합니다. 입력한 일수가 경과하면 외부 인스턴스를 등록할 때 키가 더 이상 작동하지 않습니다.

    2. 인스턴스 개수(Number of instances)에 활성화 키를 사용하여 클러스터에 등록할 외부 인스턴스 수를 입력합니다.

    3. 인스턴스 역할(Instance role에서 외부 인스턴스와 연결할 IAM 역할을 선택합니다. 역할이 아직 생성되지 않은 경우 새 역할 생성(Create new role)을 선택하여 Amazon ECS가 사용자를 대신하여 역할을 생성하도록 합니다. 외부 인스턴스에 필요한 IAM 권한에 대한 자세한 정보는 Amazon ECS Anywhere IAM 역할 섹션을 참조하세요.

    4. 등록 명령을 복사합니다. 이 명령은 클러스터에 등록하려는 각 외부 인스턴스에서 실행해야 합니다.

      중요

      스크립트의 bash 부분은 루트로 실행해야 합니다. 명령이 루트로 실행되지 않으면 오류가 반환됩니다.

    5. 닫기를 선택하세요.

AWS CLI for Linux operating systems
  1. Systems Manager 정품 인증 쌍을 생성합니다. 이것은 Systems Manager 관리형 인스턴스 정품 인증에 사용됩니다. 출력에는 ActivationIdActivationCode가 포함됩니다. 이것은 이후 단계에서 사용하게 됩니다. 생성한 ECS Anywhere IAM 역할을 지정해야 합니다. 자세한 내용은 Amazon ECS Anywhere IAM 역할 단원을 참조하십시오.

    aws ssm create-activation --iam-role ecsAnywhereRole | tee ssm-activation.json
  2. 온프레미스 서버 또는 가상 머신(VM)에서 설치 스크립트를 다운로드합니다.

    curl --proto "https" -o "/tmp/ecs-anywhere-install.sh" "https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install-latest.sh"
  3. (선택 사항) 온프레미스 서버 또는 가상 머신(VM)에서 다음 단계를 통해 스크립트 서명 파일을 사용하여 설치 스크립트를 확인합니다.

    1. GnuPG를 다운로드하고 설치합니다. GNUpg에 대한 자세한 정보는 GnuPG 웹 사이트를 참조하세요. Linux 시스템의 경우 원하는 Linux 패키지 관리자를 사용하여 gpg를 설치합니다.

    2. Amazon ECS PGP 퍼블릭 키를 가져옵니다.

      gpg --keyserver hkp://keys.gnupg.net:80 --recv BCE9D9A42D51784F
    3. 설치 스크립트 서명을 다운로드합니다. 서명은 .asc 확장자 파일에 저장된 ASCII 분리 PGP 서명입니다.

      curl --proto "https" -o "/tmp/ecs-anywhere-install.sh.asc" "https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install-latest.sh.asc"
    4. 키를 사용하여 설치 스크립트 파일을 확인합니다.

      gpg --verify /tmp/ecs-anywhere-install.sh.asc /tmp/ecs-anywhere-install.sh

      예상 출력은 다음과 같습니다.

      gpg: Signature made Tue 25 May 2021 07:16:29 PM UTC gpg: using RSA key 50DECCC4710E61AF gpg: Good signature from "Amazon ECS <ecs-security@amazon.com>" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: F34C 3DDA E729 26B0 79BE AEC6 BCE9 D9A4 2D51 784F Subkey fingerprint: D64B B6F9 0CF3 77E9 B5FB 346F 50DE CCC4 710E 61AF
  4. 온프레미스 서버 또는 가상 머신(VM)에서 설치 스크립트를 실행합니다. 첫 번째 단계에서 클러스터 이름, 리전 및 Systems Manager 정품 인증 ID 및 정품 인증 코드를 지정합니다.

    sudo bash /tmp/ecs-anywhere-install.sh \ --region $REGION \ --cluster $CLUSTER_NAME \ --activation-id $ACTIVATION_ID \ --activation-code $ACTIVATION_CODE

    GPU 워크로드용으로 NVIDIA 드라이버가 설치된 온프레미스 서버 또는 가상 머신(VM)의 경우 --enable-gpu 플래그를 설치 스크립트에 추가해야 합니다. 이 플래그가 지정되면 설치 스크립트에서 NVIDIA 드라이버가 실행 중인지 확인한 다음 Amazon ECS 태스크를 실행하는 데 필요한 구성 변수를 추가합니다. GPU 워크로드 실행 및 태스크 정의에서 GPU 요구 사항 지정에 대한 자세한 정보는 Amazon ECS 작업 정의에서 GPU 지정 섹션을 참조하세요.

    sudo bash /tmp/ecs-anywhere-install.sh \ --region $REGION \ --cluster $CLUSTER_NAME \ --activation-id $ACTIVATION_ID \ --activation-code $ACTIVATION_CODE \ --enable-gpu

다음 단계를 사용하여 기존 외부 인스턴스를 다른 클러스터에 등록합니다.

기존 외부 인스턴스를 다른 클러스터에 등록하려면
  1. Amazon ECS 컨테이너 에이전트를 중지합니다.

    sudo systemctl stop ecs.service
  2. /etc/ecs/ecs.config 파일을 편집하고 ECS_CLUSTER 행에서 클러스터 이름이 외부 인스턴스를 등록할 클러스터의 이름과 일치하는지 확인합니다.

  3. 기존 Amazon ECS 에이전트 데이터를 제거합니다.

    sudo rm /var/lib/ecs/data/agent.db
  4. Amazon ECS 컨테이너 에이전트를 시작합니다.

    sudo systemctl start ecs.service
AWS CLI for Windows operating systems
  1. Systems Manager 정품 인증 쌍을 생성합니다. 이것은 Systems Manager 관리형 인스턴스 정품 인증에 사용됩니다. 출력에는 ActivationIdActivationCode가 포함됩니다. 이것은 이후 단계에서 사용하게 됩니다. 생성한 ECS Anywhere IAM 역할을 지정해야 합니다. 자세한 내용은 Amazon ECS Anywhere IAM 역할 단원을 참조하십시오.

    aws ssm create-activation --iam-role ecsAnywhereRole | tee ssm-activation.json
  2. 온프레미스 서버 또는 가상 머신(VM)에서 설치 스크립트를 다운로드합니다.

    Invoke-RestMethod -URI "https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install.ps1" -OutFile “ecs-anywhere-install.ps1”
  3. (선택 사항) PowerShell 스크립트는 Amazon에서 서명하므로 Windows에서 자동으로 인증서 검증을 수행합니다. 수동 검증을 수행할 필요가 없습니다.

    인증서를 수동으로 확인하려면 파일을 마우스 오른쪽 버튼으로 클릭하고 속성으로 이동한 다음 디지털 서명(Digital Signatures) 탭을 사용하여 자세한 정보를 확인합니다.

    이 옵션은 호스트의 인증서 스토어에 인증서가 있는 경우에만 사용할 수 있습니다.

    다음과 비슷한 정보가 반환됩니다.

    # Verification (PowerShell) Get-AuthenticodeSignature -FilePath .\ecs-anywhere-install.ps1 SignerCertificate Status Path ----------------- ------ ---- EXAMPLECERTIFICATE Valid ecs-anywhere-install.ps1 ... Subject : CN="Amazon Web Services, Inc.",... ----
  4. 온프레미스 서버 또는 가상 머신(VM)에서 설치 스크립트를 실행합니다. 첫 번째 단계에서 클러스터 이름, 리전 및 Systems Manager 정품 인증 ID 및 정품 인증 코드를 지정합니다.

    .\ecs-anywhere-install.ps1 -Region $Region -Cluster $Cluster -ActivationID $ActivationID -ActivationCode $ActivationCode
  5. Amazon ECS 컨테이너 에이전트가 실행 중인지 확인합니다.

    Get-Service AmazonECS Status Name DisplayName ------ ---- ----------- Running AmazonECS Amazon ECS

다음 단계를 사용하여 기존 외부 인스턴스를 다른 클러스터에 등록합니다.

기존 외부 인스턴스를 다른 클러스터에 등록하려면
  1. Amazon ECS 컨테이너 에이전트를 중지합니다.

    Stop-Service AmazonECS
  2. 클러스터 이름이 외부 인스턴스를 등록할 클러스터 이름과 일치하도록 ECS_CLUSTER 파라미터를 수정합니다.

    [Environment]::SetEnvironmentVariable("ECS_CLUSTER", $ECSCluster, [System.EnvironmentVariableTarget]::Machine)
  3. 기존 Amazon ECS 에이전트 데이터를 제거합니다.

    Remove-Item -Recurse -Force $env:ProgramData\Amazon\ECS\data\*
  4. Amazon ECS 컨테이너 에이전트를 시작합니다.

    Start-Service AmazonECS

외부 인스턴스 등록 프로세스를 완료하기 위해 설치 스크립트를 실행하기 전에 AWS CLI를 사용하여 Systems Manager 정품 인증을 생성할 수 있습니다.