AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Amazon EC2 인스턴스를 Amazon ECS 클러스터에 조인할 수 없는 이유는 무엇입니까?
Amazon Elastic Container Service(Amazon ECS) 클러스터를 사용하여 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 등록할 수 없습니다.
해결 방법
먼저 AWSSupport-TroubleshootECSContainerInstance AWS Systems Manager 런북을 사용하여 잠재적 문제를 자동으로 확인하십시오. AWSSupport-TroubleshootECSContainerInstance 런북이 EC2 인스턴스를 등록하거나 클러스터에 조인할 수 없는 일반적인 이유로 인한 문제를 자동으로 해결합니다.
참고: Amazon ECS 클러스터 및 EC2 인스턴스와 동일한 AWS 리전에서 AWSSupport-TroubleshootECSContainerInstance 런북을 사용해야 합니다.
런북의 출력에서 권장 사항을 제공하지 않은 경우 다음 작업을 수행하여 문제를 수동으로 해결하십시오.
사전 요구 사항:
- EC2 인스턴스에는 Amazon ECS 구성과 통신하는 데 필요한 권한과 연결된 AWS Identity and Access Management(IAM) 역할이 있어야 합니다. Amazon ECS가 컨테이너 인스턴스를 클러스터에 등록할 수 있도록 인스턴스의 IAM 역할에는 ecs:RegisterContainerInstance 권한도 있어야 합니다. IAM 역할을 사용자 지정할 필요가 없는 경우에는 AmazonEC2ContainerServiceforEC2Role을 사용하십시오.
- 컨테이너 인스턴스 네트워크 구성이 정확한지 확인합니다. 자세한 내용은 Amazon ECS EC2 시작 유형 작업에서 “CannotPullContainerError” 오류를 해결하려면 어떻게 해야 합니까?에서 Amazon ECS 컨테이너 인스턴스 네트워크 구성이 올바르지 않음을 참조하십시오.
Amazon Linux 2 인스턴스에서 Amazon ECS 에이전트의 상태 확인
해당 인스턴스의 Amazon ECS 컨테이너 에이전트가 실행 중인지 확인하려면 다음 명령을 실행하십시오.
sudo systemctl status ecs
Amazon ECS 컨테이너 에이전트가 인스턴스에서 실행되고 있지 않은 경우, 다음 명령을 실행하여 에이전트를 시작하십시오.
sudo systemctl start ecs
start 명령의 출력은 다음 예와 비슷합니다.
Active: active (running)
Docker 서비스가 실행 중인지 확인하려면 다음 명령을 실행하십시오.
sudo systemctl status docker
Docker 서비스가 실행 중인 상태가 아닌 경우에는 다음 명령을 실행하여 서비스를 시작하십시오.
sudo systemctl start docker
start 명령의 출력은 다음 예와 비슷합니다.
Active: active (running)
시작 구성 확인
시작 인스턴스가 Auto Scailing 그룹에 속하는 경우 Auto Scailing 그룹의 시작 구성이 올바른지 확인하십시오. 자세한 내용은 5. 새 시작 구성 생성 단계를 새로운 Amazon Machine Image(AMI)로 Amazon ECS 컨테이너 인스턴스 클러스터 새로 고침에서 참조하십시오.
컨테이너 인스턴스의 AMI 확인
컨테이너 인스턴스의 AMI가 복사된 AMI 또는 사용자 지정 AMI인 경우 인스턴스가 다음 요구 사항을 준수하는지 확인하십시오.
- Linux 배포판이 Linux 커널 버전 3.10 이상을 실행합니다.
- Amazon ECS Linux 컨테이너 에이전트의 최신 버전을 사용하고 있습니다.
- Docker 데몬이 버전 1.9.0 이상 및 모든 Docker 런타임 종속성을 실행합니다. 자세한 내용은 Docker Docs 웹사이트의 바이너리에서 Docker Engine 설치를 참조하십시오. 현재 Docker 버전을 보려면 sudo docker version 명령을 실행하십시오. 자세한 내용은 Docker Docs 웹사이트에서 Docker Engine 설치를 참조하십시오.
이러한 요구 사항은 Amazon ECS 최적화 AMI에 사전 구성되어 있습니다. 애플리케이션에 해당 AMI에서 사용할 수 없는 버전이 필요한 경우가 아니면 Amazon ECS 최적화 AMI를 사용하는 것이 좋습니다. 자세한 내용은 Amazon ECS 최적화 Linux AMI 메타데이터 검색을 참조하십시오.
인스턴스의 사용자 데이터에 올바른 클러스터 정보가 포함되어 있는지 확인
인스턴스의 사용자 데이터에 올바른 클러스터 정보가 포함되어 있는지 확인하려면 다음 명령을 실행하십시오.
#!/bin/bash echo ECS_CLUSTER=cluster-name >> /etc/ecs/ecs.config
참고: cluster-name을 해당 클러스터 이름으로 바꾸십시오.
로그 파일 확인
문제가 지속되면 Amazon ECS 로그 수집기를 사용하여 로그를 수집하십시오. 그런 다음, 로그를 검토하여 원인을 찾으십시오. 컨테이너 호스트에서 Amazon ECS 컨테이너 에이전트 및 Docker에 대한 로그 파일을 확인할 수도 있습니다.
Amazon ECS 컨테이너 에이전트 및 Docker에 대한 로그 파일을 보려면 다음 명령을 실행하십시오.
sudo cat /var/log/ecs/ecs-agent.log.YYYY-MM-DD-**sudo cat /var/log/docker
참고: YYYY-MM-DD를 로그 파일을 확인하려는 날짜로 바꾸십시오.
일반적인 오류 문제 해결
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 계정이 차단되고 Amazon에서 계정을 인식하지 못할 때 발생합니다. 계정 차단을 해제하려면 aws-verification@amazon.com으로 이메일을 보내 AWS에서 계정 차단을 해제하도록 요청하십시오.
Error: re-registering: ClientException: Container instance 12345678910abcdefghixzy is inactive.\n\tstatus code: 400, request id: 012345678a-012345b-012ab-0a1-9f645f4s5c12" module=agent.go
EC2 인스턴스가 비활성 상태이기 때문에 Amazon ECS 컨테이너 에이전트가 클러스터를 사용하여 EC2 컨테이너 인스턴스를 등록할 수 없을 때 이 오류가 발생합니다. 이 오류는 해당 인스턴스에서 실행되는 애플리케이션과 관련이 있습니다. 오류의 원인을 파악하려면 먼저 해당 애플리케이션을 확인하십시오. 오류가 계속되면 Amazon 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이 발생할 때 이 오류가 발생합니다. 자세한 내용은 Amazon ECS API에 대한 요청 제한을 참조하십시오. 이 오류를 해결하려면 계정 수준의 속도 할당량을 늘리십시오. ListTasks 및 RegisterContainerInstance 등과 같은 일반적인 API 호출을 확인하려면 AWS CloudTrail을 사용하십시오.
Error: After changing the instance type, new instances are unable to join the cluster.
이 오류는 Amazon ECS 컨테이너 에이전트가 대기 중 상태에 멈춰 있고 인스턴스 유형을 변경할 수 없을 때 발생합니다. Amazon ECS의 인스턴스 유형을 변경하려면 다음 단계를 완료하십시오.
- 컨테이너 인스턴스를 삭제합니다.
- 새 인스턴스 유형의 새 컨테이너 인스턴스를 시작합니다.
참고: Amazon ECS에 최적화된 Amazon Linux 2 AMI를 사용하여 클러스터의 인스턴스를 시작하는 것이 좋습니다.
또는 새 시작 구성을 생성한 다음, Auto Scaling 그룹에서 시작 구성을 업데이트합니다.
자세한 내용은 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의 연결이 해제된 이유는 무엇입니까?
관련 콘텐츠
AWS 공식업데이트됨 일 년 전