EC2 Connect를 사용하여 EC2 인스턴스에 연결할 때 발생하는 문제를 해결하려면 어떻게 해야 합니까?
Amazon Elastic Compute Cloud(Amazon EC2) Instance Connect를 사용하여 EC2 Linux 인스턴스에 연결할 때 발생하는 문제를 해결하고 싶습니다.
간략한 설명
EC2 Instance Connect를 사용하여 인스턴스에 연결할 때 오류가 발생하는 일반적인 이유는 다음과 같습니다.
- EC2 Instance Connect는 운영 체제(OS) 배포를 지원하지 않습니다.
- EC2 Instance Connect 패키지가 인스턴스에 설치되지 않았습니다.
- AWS Identity and Access Management(IAM) 정책이나 권한이 누락되었거나 올바르지 않습니다.
- 인스턴스와 연결된 보안 그룹에는 EC2 Instance Connect 서비스 IP 주소가 나열되지 않습니다.
- 네트워크 액세스 또는 구성이 올바르지 않습니다.
연결 실패의 원인을 확인하려면 AWSSupport-TroubleshootEC2InstanceConnect AWS Systems Manager 자동화 런북을 사용할 수 있습니다. 자동화 워크플로에 대한 자세한 내용은 AWS Support Automation Workflows(SAW) 및 자동화 설정을 참조하십시오.
EC2 인스턴스의 문제를 수동으로 해결할 수도 있습니다.
해결 방법
사전 요구 사항: 인스턴스에 퍼블릭 IP 주소가 없는 경우, 가상 프라이빗 클라우드(VPC)에 프라이빗 네트워크 연결을 설정해야 합니다. VPC에 프라이빗 네트워크 연결을 설정하려면 AWS Direct Connect, AWS Site-to-Site VPN 또는 VPC 피어링을 사용합니다. 인스턴스에 퍼블릭 IPv4 주소가 없고 VPC에 프라이빗 네트워크 연결 구성이 없는 경우 EC2 Instance Connect 엔드포인트를 사용합니다.
참고: ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-serial-console.html)Linux 인스턴스용 EC2 직렬 콘솔](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#instance-hypervisor-type)을 활성화한 경우 직렬 콘솔을 사용하여 [Nitro 기반 인스턴스 유형[의 문제를 해결하십시오. 인스턴스에 연결할 수 없고 직렬 콘솔에 대한 액세스를 구성하지 않은 경우 EC2 직렬 콘솔에 대한 액세스 구성을 참조하십시오.
런북을 사용하여 EC2 인스턴스 문제 해결
AWSSupport-TroubleshootEC2InstanceConnect 런북을 시작하기 전에 IAM 사용자 또는 역할에 필요한 권한이 있는지 확인하십시오. 자세한 내용을 보려면 AWSSupport-TroubleshootEC2InstanceConnect의 필수 IAM 권한 섹션을 참조하십시오.
런북을 사용하려면 다음 단계를 수행하십시오.
- Systems Manager 콘솔을 엽니다.
- 탐색 창에서 공유 리소스를 선택한 다음 문서를 선택합니다.
- 자동화 문서를 선택합니다.
- 검색 필드에 AWSSupport-TroubleshootEC2InstanceConnect를 입력한 다음 문서를 선택합니다.
- 자동화 실행을 선택합니다.
- 입력 파라미터에 다음 값을 입력합니다.
InstanceId에는 연결할 수 없는 인스턴스의 ID를 입력합니다.
(선택 사항) AutomationAssumeRole의 경우 시스템 관리자 자동화가 사용자를 대신하여 작업을 수행할 수 있도록 허용하는 IAM 역할의 ARN을 입력합니다. 역할을 지정하지 않으면 Systems Manager Automation은 런북을 실행하는 사용자의 권한을 사용합니다.
Username에는 인스턴스에 연결하는 데 사용하는 사용자 이름을 입력합니다. 이 파라미터는 사용자에게 IAM 액세스를 허용할지 여부를 결정합니다.
EC2InstanceConnectRoleOrUser에는 EC2 Instance Connect가 인스턴스에 키를 푸시하는 데 사용할 IAM ID의 ARN을 입력합니다.
(선택 사항) SSHPort에는 인스턴스에 구성된 SSH 포트를 입력합니다. 기본값은 22이고 포트 번호는 1~65535 사이여야 합니다.
(선택 사항) SourceNetworkType에는 인스턴스에 연결하는 데 사용하는 네트워크 유형을 입력합니다.
(선택 사항) SourceIpCIDR에는 EC2 Instance Connect에 연결하는 데 사용하는 디바이스의 IP 주소를 포함하는 Classless Inter-Domain Routing(CIDR) 범위를 입력합니다. 이 필드가 비어 있으면 런북은 인스턴스의 보안 그룹 및 네트워크 액세스 제어 목록(ACL) 규칙이 SSH 트래픽을 허용하는지 여부를 결정할 수 없습니다. - 실행을 선택합니다.
- 출력 섹션에서 자세한 결과를 검토합니다.
EC2 인스턴스 문제를 수동으로 해결
EC2 인스턴스에 연결할 때 발생하는 문제를 해결하려면 다음 구성을 확인하십시오.
- EC2 Instance Connect는 인스턴스의 Linux 배포를 지원합니다.
- 지원되는 인스턴스에 EC2 Instance Connect 패키지를 설치했습니다.
- EC2 Instance Connect를 사용하려는 IAM 사용자에게 인스턴스에 퍼블릭 키를 푸시할 권한이 있는지 확인하십시오.
- 인스턴스의 보안 그룹 규칙은 EC2 Instance Connect IP 주소를 나열합니다.
- 인스턴스에 대한 네트워크 액세스 권한이 있습니다.
브라우저 기반 SSH 연결 사용
브라우저 기반 SSH 연결을 하려면 사용자 인스턴스의 보안 그룹 인바운드 규칙이 TCP 포트 22에서 SSH에 대한 EC2 Instance Connect 액세스를 허용해야 합니다.
EC2 Instance Connect는 사용자의 인스턴스에 대한 브라우저 기반 SSH 연결에 특정 IP 주소 범위를 사용합니다. AWS IP 주소 범위는 AWS 리전마다 다릅니다. 특정 리전에서 EC2 Instance Connect의 IP 주소 범위를 찾으려면 다음 명령을 실행하십시오.
참고: 다음 명령에서 us-east-1을 인스턴스가 있는 리전으로 바꾸십시오. 사용자의 인스턴스는 EC2 Instance Connect가 지원하는 리전에 있어야 합니다.
Windows
Windows PowerShell을 사용하여 다음 명령을 실행합니다.
PS C:\> Get-AWSPublicIpAddressRange -Region us-east-1 -ServiceKey EC2_INSTANCE_CONNECT | select IpPrefix
Linux
curl과 jq를 사용하여 다음 명령을 실행합니다.
$ curl -s https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | select(.region=="us-east-1") | select(.service=="EC2_INSTANCE_CONNECT") | .ip_prefix'
보안 그룹 인바운드 규칙을 업데이트하여 위 명령이 반환하는 IP 주소 범위에서 TCP 포트 22에 액세스할 수 있도록 합니다.
EC2 Instance Connect CLI 연결 사용
사용자의 IP 주소에서 TCP 포트 22에 액세스할 수 있도록 보안 그룹 인바운드 규칙을 업데이트합니다.
관련 정보
Systems Manager 자동화로 구동되는 자동 작업 실행
EC2 Instance Connect를 사용하여 사용자의 Linux 인스턴스에 연결
처음 인스턴스를 시작한 후 SSH 키 페어를 분실한 경우 Amazon EC2 인스턴스에 연결하려면 어떻게 해야 합니까?
SSH를 사용하여 Amazon EC2 Linux 인스턴스에 연결할 때 발생하는 문제를 해결하려면 어떻게 해야 합니까?
관련 콘텐츠
- 질문됨 일 년 전lg...
- 질문됨 2달 전lg...
- 질문됨 2년 전lg...
- AWS 공식업데이트됨 2년 전
- AWS 공식업데이트됨 일 년 전
- AWS 공식업데이트됨 25일 전