EC2 인스턴스 연결 엔드포인트를 사용하여 Amazon EC2 인스턴스에 연결 - Amazon Elastic Compute Cloud

EC2 인스턴스 연결 엔드포인트를 사용하여 Amazon EC2 인스턴스에 연결

EC2 인스턴스 연결 엔드포인트를 사용하여 SSH 또는 RDP를 지원하는 Amazon EC2 인스턴스에 연결할 수 있습니다.

사전 조건
  • EC2 Instance Connect 엔드포인트에 연결하려면 필요한 IAM 권한이 있어야 합니다. 자세한 내용은 인스턴스에 연결하기 위해 EC2 Instance Connect 엔드포인트를 사용할 수 있는 권한 단원을 참조하십시오.

  • EC2 Instance Connect 엔드포인트가 사용 가능(콘솔) 또는 create-complete(AWS CLI) 상태여야 합니다. VPC에 대한 EC2 Instance Connect 엔드포인트가 없는 경우 새로 생성할 수 있습니다. 자세한 내용은 EC2 Instance Connect 엔드포인트 생성 단원을 참조하십시오.

  • 인스턴스에 IPv4 주소(프라이빗 또는 퍼블릭)가 있어야 합니다. EC2 Instance Connect 엔드포인트에서는 IPv6 주소를 사용하는 연결을 지원하지 않습니다.

  • (Linux 인스턴스) Amazon EC2 콘솔을 사용하여 인스턴스에 연결하거나, CLI를 사용하여 연결하고 EC2 Instance Connect에서 임시 키를 처리하도록 하려면 인스턴스에 EC2 Instance Connect가 설치되어 있어야 합니다. 자세한 내용은 EC2 Instance Connect 설치 단원을 참조하십시오.

  • 인스턴스의 보안 그룹이 EC2 Instance Connect 엔드포인트에서의 인바운드 SSH 트래픽을 허용하는지 확인합니다. 자세한 내용은 대상 인스턴스 보안 그룹 규칙 단원을 참조하십시오.

Amazon EC2 콘솔을 사용하여 Linux 인스턴스에 연결

다음과 같이 Amazon EC2 콘솔(브라우저 기반 클라이언트)을 사용하여 인스턴스에 연결할 수 있습니다.

Amazon EC2 콘솔을 사용하여 인스턴스에 연결
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 Instances(인스턴스)를 선택합니다.

  3. 인스턴스를 선택한 다음 연결을 선택합니다.

  4. EC2 Instance Connect 탭을 선택합니다.

  5. 연결 유형에서 EC2 Instance Connect 엔드포인트를 사용하여 연결을 선택합니다.

  6. EC2 Instance Connect 엔드포인트의 경우 EC2 Instance Connect 엔드포인트 ID를 선택합니다.

  7. 인스턴스를 시작하는 데 사용한 AMI가 ec2-user 이외의 사용자 이름을 사용하는 경우 사용자 이름에 올바른 사용자 이름을 입력합니다.

  8. 최대 터널 지속 시간(초)에 SSH 연결의 허용되는 최대 지속 시간을 입력합니다.

    지속 시간은 IAM 정책에 지정된 maxTunnelDuration 조건을 준수해야 합니다. IAM 정책에 대한 액세스 권한이 없는 경우 관리자에게 문의하세요.

  9. 연결을 선택합니다. 그러면 인스턴스의 터미널 창이 열립니다.

SSH를 사용하여 Linux 인스턴스에 연결

SSH를 사용하여 Linux 인스턴스에 연결하고, open-tunnel 명령을 사용하여 프라이빗 터널을 설정할 수 있습니다. 단일 연결 또는 다중 연결 모드에서 open-tunnel을 사용할 수 있습니다.

SSH로 인스턴트에 연결하기 위한 AWS CLI 사용에 대한 자세한 내용은 AWS CLI를 사용하여 연결의 내용을 참조하세요.

다음 예제에서는 OpenSSH를 사용합니다. 프록시 모드를 지원하는 다른 SSH 클라이언트를 사용할 수 있습니다.

단일 연결

SSH 및 open-tunnel 명령을 사용하여 인스턴스에 단일 연결만 허용

ssh 및 open-tunnel AWS CLI 명령을 다음과 같이 실행합니다. -o 프록시 명령은 인스턴스에 대한 프라이빗 터널을 생성하는 open-tunnel 명령을 포함합니다.

ssh -i my-key-pair.pem ec2-user@i-0123456789example \ -o ProxyCommand='aws ec2-instance-connect open-tunnel --instance-id i-0123456789example'

여기에서:

  • -i - 인스턴스를 시작하는 데 사용되었던 키 페어를 지정합니다.

  • ec2-user@i-0123456789example - 인스턴스를 시작하는 데 사용되었던 AMI의 사용자 이름과 인스턴스 ID를 지정합니다.

  • --instance-id - 연결할 인스턴스의 ID를 지정합니다. 또는 %h를 지정하여 사용자로부터 인스턴스 ID를 추출할 수도 있습니다.

다중 연결

인스턴스에 다중 연결을 허용하려면 먼저 open-tunnel AWS CLI 명령을 실행하여 새 TCP 연결 수신을 시작하고, ssh를 사용하여 새 TCP 연결과 인스턴스에 대한 프라이빗 터널을 생성합니다.

SSH 및 open-tunnel 명령을 사용하여 인스턴스에 다중 연결 허용
  1. 다음 명령을 실행하여 로컬 시스템의 지정된 포트에서 새 TCP 연결 수신을 시작합니다.

    aws ec2-instance-connect open-tunnel \ --instance-id i-0123456789example \ --local-port 8888

    예상 결과

    Listening for connections on port 8888.
  2. 새 터미널 창에서 다음 ssh 명령을 실행하여 인스턴스에 대한 새 TCP 연결 및 프라이빗 터널을 생성합니다.

    ssh -i my-key-pair.pem ec2-user@localhost -p 8888

    예상 출력 - 첫 번째 터미널 창에 다음이 표시됩니다.

    [1] Accepted new tcp connection, opening websocket tunnel.

    다음이 표시될 수도 있습니다.

    [1] Closing tcp connection.

AWS CLI를 사용하여 Linux 인스턴스에 연결

인스턴스 ID만 아는 경우 ec2-instance-connect AWS CLI 명령을 사용하여 SSH 클라이언트로 인스턴트에 연결할 수 있습니다. ec2-instance-connect 명령 사용에 대한 자세한 내용은 AWS CLI를 사용하여 연결 섹션을 참조하세요.

사전 조건

AWS CLI 버전 2를 설치하고 자격 증명을 사용하여 구성합니다. 자세한 내용은 AWS Command Line Interface 사용 설명서Install or update to the latest version of the AWS CLIConfigure the AWS CLI를 참조하세요. 또는 사전 인증된 쉘에서 AWS CloudShell을 열고 AWS CLI 명령을 실행합니다.

인스턴스 ID 및 EC2 Instance Connect 엔드포인트를 사용하여 인스턴스에 연결

인스턴스 ID만 아는 경우 ec2-instance-connect CLI 명령을 사용하고 ssh 명령, 인스턴스 ID, eice 값이 있는 --connection-type 파라미터를 지정합니다.

aws ec2-instance-connect ssh --instance-id i-1234567890example --os-user ec2-user --connection-type eice
작은 정보

이 명령을 사용할 때 오류가 발생하면 AWS CLI 버전 2를 사용하고 있는지 확인합니다. ssh 파라미터는 AWS CLI 버전 2에서만 사용할 수 있습니다. 자세한 내용은 AWS Command Line Interface 사용 설명서의 AWS CLI 버전 2 정보를 참조하세요.

RDP를 사용하여 Windows 인스턴스에 연결

EC2 Instance Connect 엔드포인트를 통한 원격 데스크톱 프로토콜(RDP)을 사용하여 퍼블릭 IPv4 주소 또는 퍼블릭 DNS 이름 없이 Windows 인스턴스에 연결할 수 있습니다.

RDP 클라이언트로 Windows 인스턴스 연결
  1. RDP를 사용하여 Windows 인스턴스에 연결의 1~8단계를 완료합니다. 8단계에서 RDP 데스크톱 파일을 다운로드한 이후 연결할 수 없음 메시지가 표시되는데, 이는 인스턴스에 퍼블릭 IP 주소가 없기 때문일 수 있습니다.

  2. 다음 명령을 실행하여 인스턴스가 위치한 VPC에 대한 프라이빗 터널을 설정합니다. RDP가 기본적으로 포트 3389를 사용하기 때문에 --remote-port는 3389여야 합니다.

    aws ec2-instance-connect open-tunnel \ --instance-id i-0123456789example \ --remote-port 3389 \ --local-port any-port
  3. 다운로드 폴더에서 다운로드한 RDP 데스크톱 파일을 찾아 RDP 클라이언트 창으로 끌어다 놓습니다.

  4. RDP 데스크톱 파일을 마우스 오른쪽 버튼으로 클릭하고 편집을 선택합니다.

  5. PC 편집 창의 PC 이름(연결할 인스턴스)에 localhost:local-port를 입력합니다. 여기에서 local-port는 2단계에서 지정한 것과 동일한 값을 사용합니다. 입력 후 저장을 선택합니다.

    PC 편집 창의 다음 스크린샷은 Mac의 Microsoft Remote Desktop 스크린샷입니다. Windows 클라이언트를 사용하는 경우 창이 다를 수 있습니다.

    PC 이름 필드에 “localhost:5555”가 포함된 RDP 클라이언트.
  6. RDP 클라이언트에서 방금 구성한 PC를 마우스 오른쪽 버튼으로 클릭하고 연결을 선택하여 인스턴스에 연결합니다.

  7. 프롬프트에서 관리자 계정의 해독된 암호를 입력합니다.

문제 해결

다음 정보를 사용하면 EC2 Instance Connect 엔드포인트로 인스턴스를 연결할 때 발생할 수 있는 문제를 진단하고 수정하는 데 도움이 됩니다.

인스턴스에 연결할 수 없음

다음은 인스턴스에 연결할 수 없는 일반적인 이유입니다.

  • 보안 그룹 - EC2 Instance Connect 엔드포인트와 인스턴스에 할당된 보안 그룹을 확인합니다. 필수 보안 그룹 규칙에 대한 자세한 내용은 EC2 Instance Connect 엔드포인트 보안 그룹 섹션을 참조하세요.

  • 인스턴스 상태 - 인스턴스가 running 상태인지 확인합니다.

  • 키 페어 - 연결하는 데 사용하는 명령에 프라이빗 키가 필요한 경우 인스턴스에 퍼블릭 키가 있고 해당 프라이빗 키가 있는지 확인합니다.

  • IAM 권한 - 필요한 IAM 권한이 있는지 확인합니다. 자세한 내용은 EC2 Instance Connect 엔드포인트를 사용할 수 있는 권한 부여 단원을 참조하십시오.

Linux 인스턴스의 문제 해결 팁에 대한 자세한 내용은 Amazon EC2 Linux 인스턴스 연결 문제 해결 섹션을 참조하세요. Windows 인스턴스의 문제 해결 팁에 대한 자세한 내용은 Amazon EC2 Windows 인스턴스 연결 문제 해결 섹션을 참조하세요.

ErrorCode: AccessDeniedException

AccessDeniedException 오류가 발생하고, maxTunnelDuration 조건이 IAM 정책에 지정된 경우 인스턴스에 연결할 때 --max-tunnel-duration 파라미터를 지정해야 합니다. 이 파라미터에 대한 자세한 내용은 AWS CLI 명령 참조의 open-tunnel을 참조하세요.