Amazon EC2 인스턴스의 Amazon ECS가 해당 클러스터에 조인할 수 없는 이유가 무엇인가요?
Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 등록하기 위해 Amazon Elastic Container Service(Amazon ECS) 클러스터를 사용할 수 없습니다.
해결 방법
사전 요구 사항
다음 수동 단계를 완료하기 전에 AWSSupport-TroubleshootECSContainerInstance AWS Systems Manager 런북을 사용하여 잠재적 문제를 자동으로 확인하세요.
AWSSupport-TroubleshootECSContainerInstance AWS Systems Manager 런북은 Amazon EC2 인스턴스를 등록하거나 클러스터에 가입할 수 없는 일반적인 이유로 인한 문제를 자동으로 해결합니다. 런북은 다음 요구 사항을 확인합니다.
- 해당 인스턴스의 사용자 데이터에는 올바른 클러스터 정보가 담겨 있습니다. 자세한 내용은 Amazon ECS Linux 컨테이너 인스턴스를 부트스트랩하여 데이터 전달을 참조하세요.
- 인스턴스 프로파일에는 필요한 권한이 포함되어 있습니다.
- 네트워크가 올바르게 구성되었습니다.
참고: 반드시 ECS 클러스터 및 EC2 인스턴스가 위치한 동일한 AWS 리전에서 AWSSupport-TroubleshootECSContainerInstance 런북을 사용하세요.
런북의 출력에서 권장 사항을 제공하지 않은 경우 다음 해결 방법을 사용하여 문제를 수동으로 해결하세요.
Amazon Linux 2 인스턴스에서 Amazon ECS 에이전트의 상태를 확인
인스턴스의 Amazon ECS 컨테이너 에이전트가 실행되는지 확인하려면 다음 명령을 실행하세요.
sudo systemctl status ecs
컨테이너 에이전트가 인스턴스에서 실행되고 있지 않은 경우, 다음 명령을 실행하여 에이전트를 시작하세요.
sudo systemctl start ecs
명령 출력의 출력은 다음과 같은 명령 출력 예시와 비슷해야 합니다.
ecs start/running, process 23403
시작 구성 확인
시작 인스턴스가 AWS Application Auto Scailing 그룹에 속하는 경우 Auto Scailing 그룹의 시작 구성이 올바른지 확인하세요. 자세한 내용은 새로운 AMI로 Amazon ECS 컨테이너 인스턴스 클러스터 새로고침의 새 시작 구성 단계 생성을 참조하세요.
인스턴스의 Amazon Machine Image(AMI)를 확인합니다.
EC2 인스턴스에 사용하는 AMI가 복사되거나 사용자 지정 AMI인 경우 인스턴스에 다음 요구 조건이 있는지 확인하세요.
- Linux 커널 버전 3.10 이상을 실행하는 Linux 배포판입니다.
- Amazon ECS Linux 컨테이너 에이전트의 최신 버전입니다.
- 버전 1.9.0 이상 및 모든 Docker 런타임 종속성을 실행하는 Docker 대몬(daemon)입니다. 자세한 내용은 Docker 웹 사이트의 바이너리에서 Docker Engine 설치를 참조하세요. 현재 Docker 버전을 보려면 sudo docker version 명령을 실행하세요. 자세한 내용은 Docker 웹 사이트의 Docker Engine 설치를 참조하세요.
Amazon ECS 최적화 AMI에 이러한 요구 사항이 사전 구성되어 있습니다. 애플리케이션에 아직 해당 AMI에서 사용할 수 없는 버전이 필요한 경우가 아니면 Amazon ECS 최적화 AMI를 사용하는 것이 가장 좋습니다.
인스턴스의 사용자 데이터에 올바른 클러스터 정보가 포함되어 있는지 확인
인스턴스의 사용자 데이터에 올바른 클러스터 정보가 포함되어 있는지 확인하려면 다음 명령을 실행합니다.
#!/bin/bash echo ECS_CLUSTER=<cluster-name> >> /etc/ecs/ecs.config
로그 파일 확인
문제가 지속되면 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.
이 오류는 계정이 차단되고 Amazon에서 계정을 인식하지 못할 때 발생합니다. 계정 차단을 해제하려면 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 때문에 발생합니다. 이 오류를 해결하려면, 계정 수준의 속도 제한을 늘리세요. RegisterTargets 및 RegisterContainerInstance와 같은 API를 확인하세요.
Error: After changing the instance type, new instances are unable to join the cluster.
이 오류는 ECS 에이전트가 대기 중 상태에 멈춰 있고 인스턴스 유형을 변경할 수 없을 때 발생합니다. Amazon ECS의 인스턴스 유형을 변경하려면 다음 단계를 완료하세요.
- 컨테이너 인스턴스를 종료합니다.
- 새 인스턴스 크기로 새 컨테이너 인스턴스를 시작합니다.
참고: Amazon ECS에 최적화된 Amazon Linux 2 AMI를 사용하여 귀하의 클러스터에 맞게 인스턴스를 시작하는 것이 가장 좋습니다.
또는 새 시작 구성을 생성할 수 있습니다. 그런 다음, Auto Scailing 그룹에서 이 시작 구성을 업데이트합니다.
자세한 내용은 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 권한 누락으로 인해 발생합니다. 이러한 오류를 해결하려면 컨테이너 인스턴스 IAM 역할을 생성해야 합니다.
그런 다음 AWSSupport-TroubleshootECSContainerInstance 런북을 실행하여 컨테이너 인스턴스 역할에서 누락된 권한을 확인하세요.
관련 정보
내 Amazon ECS 컨테이너 인스턴스와 Amazon Linux 1 AMI의 연결이 해제된 이유가 무엇인가요?
관련 콘텐츠
- 질문됨 일 년 전lg...
- 질문됨 일 년 전lg...
- 질문됨 일 년 전lg...
- AWS 공식업데이트됨 2년 전
- AWS 공식업데이트됨 2년 전
- AWS 공식업데이트됨 2년 전