Amazon ECS 또는 Amazon EC2 인스턴스가 해당 클러스터에 조인할 수 없는 이유가 무엇인가요?

6분 분량
0

Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 Amazon Elastic Container Service(Amazon ECS) 클러스터에 등록할 수 없습니다.

간략한 설명

Amazon EC2 인스턴스는 다음 중 하나 이상의 이유로 인해 Amazon ECS 클러스터에 등록하거나 가입할 수 없습니다.

  • ECS 엔드포인트는 해당 인스턴스의 도메인 이름 시스템(DNS) 호스트 이름에 공개적으로 액세스할 수 없습니다.
  • 퍼블릭 서브넷 구성이 올바르지 않습니다.
  • 프라이빗 서브넷 구성이 올바르지 않습니다.
  • VPC 엔드포인트가 잘못 구성되었습니다.
  • 귀하의 보안 그룹이 네트워크 트래픽을 허용하지 않습니다.
  • EC2 인스턴스에 필수 AWS Identity and Access Management(AWS IAM) 권한이 없습니다. 또는 ecs:RegisterContainerInstance API 호출이 거부되었습니다.
  • ECS 컨테이너에 대한 인스턴스 사용자 데이터가 잘못 구성되었습니다.
  • ECS 에이전트가 중지되었거나 해당 인스턴스에서 실행되고 있지 않습니다.
  • 오토 스케일링의 시작 구성이 올바르지 않습니다(인스턴스가 오토 스케일링에 속한 경우).
  • 인스턴스에 사용하는 Amazon Machine Image(AMI)가 사전 요구 사항을 충족하지 않습니다.

해결 방법

AWSSupport-TroubleshootECSContainerInstance AWS Systems Manager 런북을 사용하여 간단한 설명 섹션에 나와 있는 일반적인 문제를 해결하세요. 런북의 출력이 권장 사항을 제공하지 않는 경우, 다음해결 방법 섹션의 수동 문제 해결 접근 방식을 사용하세요.

Systems Manager Automation 런북 사용

AWSSupport-TroubleshootECSContainerInstance 런북을 사용하여 ECS 클러스터에 등록 실패한 EC2 인스턴스의 문제를 해결하세요. 이 자동화는 다음 리소스와 관련된 잠재적인 문제를 확인합니다.

  • 해당 인스턴스의 사용자 데이터에는 올바른 클러스터 정보가 담겨 있습니다.
  • 인스턴스 프로파일에는 필요한 권한이 포함되어 있습니다.
  • 네트워크가 올바르게 구성되었습니다

참고: 반드시 ECS 클러스터 및 EC2 인스턴스가 위치한 동일한 AWS 리전에서 AWSSupport-TroubleshootECSContainerInstance 런북을 사용하세요.

  1. AWS Systems Manager 콘솔을 엽니다.
  2. 탐색 창의 변경 관리에서 자동화를 선택합니다.
  3. 자동화 실행을 선택합니다.
  4. Amazon 소유 탭을 선택합니다.
  5. 자동화 문서에서 TroubleshootECSContainerInstance을 검색합니다.
  6. AWSSupport-TroubleshootECSContainerInstance 카드를 선택합니다.
    참고: 하이퍼링크된 자동화 이름이 아닌 라디오 버튼을 선택하세요.
  7. 다음을 선택합니다.
  8. 자동화 문서 실행에서 간단한 실행을 선택합니다.
  9. 입력 파라미터 섹션에서 AutomationAssumeRole에 Systems Manager Automation이 작업을 수행하도록 허용하는 역할의 Amazon 리소스 이름(ARN)을 입력하세요.
    참고: 사용자가 IAM 역할을 지정하지 않으면 Systems Manager Automation는 런북을 실행하는 IAM 사용자 또는 역할의 권한을 사용합니다. Systems Manager Automation에 대한 역할 가정 만들기에 관한 자세한 내용은 방법 2: IAM을 사용하여 자동화를 위한 역할 구성을 참조하세요. AutomationAssumeRole 또는 IAM 역할이 다음의 권한을 갖는지 확인하세요. ec2:DescribeIamInstanceProfileAssociations, ec2:DescribeInstanceAttribute, ec2:DescribeInstances, ec2:DescribeNetworkAcls, ec2:DescribeRouteTables, ec2:DescribeSecurityGroups, ec2:DescribeSubnets, ec2:DescribeVpcs, ec2:DescribeVpcEndpoints, iam:GetInstanceProfile, iam:GetRole, iam:SimulateCustomPolicyiam:SimulatePrincipalPolicy.
  10. ClusterName에는 EC2 인스턴스 등록에 실패한 클러스터 이름을 입력하세요.
  11. InstanceId에는 등록에 실패한 EC2 인스턴스 ID를 입력하세요.
  12. 실행을 선택합니다.

런북의 출력은 문제 해결 단계와 권장 사항을 제공합니다.

Amazon Linux 2 인스턴스에서 Amazon ECS 에이전트의 상태를 확인

다음 명령을 실행하여 해당 인스턴스의 Amazon ECS 컨테이너 에이전트가가 실행 중인지 확인합니다.

sudo systemctl status ecs

컨테이너 에이전트가 인스턴스에서 실행되고 있지 않은 경우, 다음 명령을 실행하여 에이전트를 시작하세요.

sudo systemctl start ecs

명령 출력은 다음과 비슷해야 합니다.

ecs start/running, process 23403

시작 구성 확인

시작하려는 인스턴스가 오토 스케일링에 속하는 경우 오토 스케일링의 시작 구성이 올바른지 확인하세요. 자세한 내용은 새로운 AMI로 Amazon ECS 컨테이너 인스턴스 클러스터 새로고침5단계를 참조하세요.

인스턴스의 AMI 확인

EC2 인스턴스에 사용하는 AMI가 복사되거나 사용자 지정 AMI인 경우 인스턴스에 다음 구성 요소가 있는지 확인하세요.

  • Linux 커널 버전 3.10 이상을 실행하는 최신 Linux 배포판입니다.
  • Amazon ECS Linux 컨테이너 에이전트의 최신 버전입니다.
  • 버전 1.9.0 이상 및 모든 Docker 런타임 종속성(Docker 웹 사이트에서 제공)을 실행하는 Docker 대몬(daemon)입니다. 현재 Docker 버전을 보려면 sudo docker version 명령을 실행하세요. 특정 Linux 배포판에 최신 Docker 버전을 설치하는 방법에 대한 자세한 내용은 Docker 웹 사이트의 Docker 엔진 설치에 대한 Docker 문서를 참조하세요.

Amazon ECS 최적화 AMI가 이러한 요구 사항에 따라 사전 구성되어 있습니다. 애플리케이션에 아직 해당 AMI에서 사용할 수 없는 버전이 필요한 경우가 아니면 Amazon ECS 최적화 AMI를 사용하는 것이 가장 좋습니다.

로그 파일 확인

문제가 계속되면 Amazon ECS 로그 수집기를 사용하여 로그를 수집한 다음 해당 로그를 검토하여 원인을 찾아보세요. 컨테이너 호스트에서 컨테이너 에이전트 및 Docker의 로그 파일을 확인할 수도 있습니다.

컨테이너 에이전트 및 Docker의 로그 파일을 보려면 다음 명령을 실행하세요.

sudo cat /var/log/ecs/ecs-agent.log.YYYY-MM-DD-**
sudo cat /var/log/docker

일반적인 오류 문제 해결

Error: Launching a new EC2 instance. Status Reason: This account is currently blocked and not recognized as a valid account. Please contact aws-verification@amazon.com if you have questions. Launching EC2 instance failed.

aws-verification@amazon.com으로 문의하세요. 계정 차단을 해제해야 한다는 점을 꼭 말씀해 주세요.

Error: re-registering: ClientException: Container instance 12345678910xxxxxxxxxxxx is inactive.\n\tstatus code: 400, request id: 012345678a-012345b-012ab-0a1-9f645f4s5c12" module=agent.go

EC2 인스턴스가 현재 비활성 상태이기 때문에 ECS 에이전트가 EC2 컨테이너 인스턴스를 ECS 클러스터에 등록할 수 없을 때 이 오류가 발생합니다. 이 오류는 해당 인스턴스에 대해 실행 중인 애플리케이션과 관련이 있습니다. 오류의 원인을 파악하려면, 해당 애플리케이션을 확인하세요. 이 오류가 계속되면 ECS 에이전트 로그를 확인하세요.

Error: Few instances are able to join the cluster but with the same configurations, other instance are not able to join the cluster.

이 오류는 특정 API 호출이 속도 제한을 초과할 때 발생하는 ThrottlingException 때문에 발생할 수도 있습니다. 이 오류를 해결하려면, 계정 수준의 속도 제한을 늘리세요. RegisterTargetsRegisterContainerInstance와 같은 API를 확인하세요.

Error: After changing the instance type, new instances are unable to join the cluster.

이 오류는 ECS 에이전트가 대기 중 상태에 멈춰 있고 인스턴스 유형을 변경할 수 없을 때 발생합니다. 일부 EC2 인스턴스와 달리, ECS 인스턴스를 중지하고 인스턴스 유형을 변경한 다음 다시 시작할 수 없습니다. Amazon ECS의 인스턴스 유형을 변경하려면 다음 단계를 완료하세요.

  1. 컨테이너 인스턴스를 종료합니다.
  2. 새 인스턴스 크기로 새 컨테이너 인스턴스를 시작합니다. 귀하의 클러스터에 맞게 Amazon ECS에 최적화된 Amazon Linux 2 AMI를 사용하여 인스턴스를 시작하는 것이 가장 좋습니다.

또는 새 시작 구성을 생성할 수 있습니다. 그다음, 오토 스케일링에서 이 시작 구성을 업데이트합니다.

자세한 내용은 Amazon ECS에서 컨테이너 인스턴스 유형을 어떻게 바꿀 수 있나요?를 참조하세요.

Error: Unable to register as a container instance with ECS: AccessDeniedException: User: arn:aws:sts::1122334455:assumed-role/ecsInstanceRole/i-00aa11bb22cc33def is not authorized to perform: ecs:RegisterContainerInstance on resource: arn:aws:ecs:us-east-1:1122334455:cluster/exampleCluster . status code: 400, request id: 0a123456-7899-10101-a987-6543210deff

-또는-
Error: 2019-06-29T16:10:09Z [ERROR] Error re-registering: AccessDeniedException: User: arn:aws:sts::1122334455:assumed-role/ecsInstanceRole/i-0052b2e858b1891ef is not authorized to perform: ecs:RegisterContainerInstance on resource: arn:aws:ecs:us-east-1:1122334455:cluster/exampleCluster status code: 400, request id: 0a123456-7899-10101-a987-123456pqrs

이러한 오류는 IAM 권한 누락으로 인해 발생합니다. 이러한 오류를 해결하려면 Amazon ECS 컨테이너 인스턴스 IAM 역할의 지침을 검토하세요.

또한 AWSSupport-TroubleshootECSContainerInstance 런북을 실행하여 컨테이너 인스턴스 역할에서 누락된 권한을 확인하세요.

관련 정보

Virtual Private Cloud 생성

내 Amazon ECS 컨테이너 인스턴스와 Amazon Linux 1 AMI의 연결이 해제된 이유가 무엇인가요?

Amazon ECS 문제 해결

나만의 런북 만들기

댓글 없음

관련 콘텐츠