EC2 Instance Connect 엔드포인트를 사용하여 프라이빗 서브넷에 위치한 EC2 Windows 인스턴스에 안전하게 RDP로 연결하는 방법

4분 분량
콘텐츠 수준: 중급
0

본 기사는 EC2 Instance Connect 엔드포인트를 사용하여 프라이빗 서브넷에 위치하고 퍼블릭 IP 주소가 설정되지 않은 EC2 Windows 인스턴스에 안전하게 RDP로 연결하는 방법에 대해 설명 합니다.

개요

Amazon EC2 서비스를 이용하는 고객들은 인터넷을 통해 EC2 Windows 인스턴스에 RDP로 원격 연결을 하려면 해당 인스턴스에 퍼블릭 IP 주소를 할당해야 했습니다. 그리고 만약 해당 EC2 인스턴스가 프라이빗 서브넷에 위치하는 경우라면, 퍼블릭 IP를 가지는 베스천 호스트(bastion host)의 추가 인스턴스를 구성하고 이에 연결된 상태에서 다시 해당 EC2 인스턴스로 연결해야 했습니다.

 

베스천 호스트를 사용하는 경우, 이를 위한 인스턴스의 패치 관리 및 운영 오버헤드와 더불어 추가 비용이 필요하게 됩니다. 또한 AWS는 2024년 2월 1일부터 탄력적 IP(Elastic IP) 주소 및 실행 중인 EC2 인스턴스에 연결된 퍼블릭 IPv4 주소를 포함하여 모든 퍼블릭 IPv4 주소에 대해 요금을 부과할 예정입니다.

 

그러나 2023년 6월 출시된 EC2 Instance Connect 엔드포인트를 사용함으로서, 이와 같은 베스천 호스트의 운영 오버헤드 및 비용 발생을 없앨 수 있고, 인터넷으로부터 프라이빗 IP 주소만 설정된 EC2 인스턴스에 안전에게 연결할 수 있습니다. EC2 Instance Connect 엔드포인트에 대한 자세한 내용은 참고절의 링크에서 확인하실 수 있습니다. [1][2]

 

여기에 이미지 설명 입력

 

본 기사에서는 이러한 EC2 Instance Connect 엔드포인트를 사용하여 프라이빗 서브넷에 위치하고, 퍼블릭 IP를 가지지 않는 EC2 Windows 인스턴스에 RDP로 안전하게 연결하는 방법에 대한 예시를 제공합니다. 예시는 1) EC2 Instance Connect 엔드포인트를 만들고 2)이를 사용하여 RDP로 연결하는 크게 2가지로 그 단계를 설명합니다.

 

1) EC2 Instance Connect 엔드포인트 만들기

  1. EC2 Instance Connect 엔드포인트를 생성 및 수정하고 이를 통해 EC2 인스턴스 리소스에 연결하려면 사용자는 필요한 IAM 권한이 있어야 합니다. 필요한 IAM 권한 및 이에 대한 예시, 설정 방법을 보기 위해 참고절 문서 [3]을 확인해 주세요.
  2. EC2 Instance Connect 엔드포인트에 설정될 보안 그룹을 만들어야 합니다. 이때 해당 보안 그룹에는 EC2 Instance Connect 엔드포인트를 통해 연결할 대상의 보안 그룹 또는 VPC CIDR로 아웃바운드 트래픽을 허용하는 룰이 필요합니다. 자세한 내용은 참고절 [4] 링크를 확인해 주세요. 본 예시에서는 RDP 연결을 위한 룰로서 VPC에 위치한 한 EC2 Windows 인스턴스에 설정된 보안 그룹(sg-085xxxx)을 목적지로하여 EC2 Instance Connect 엔드포인트의 보안 그룹 아웃바운드 룰을 설정합니다.

인바운드 룰

여기에 이미지 설명 입력

아웃바운드 룰

여기에 이미지 설명 입력

  1. VPC 의 프라이빗 서브넷에 위치한 EC2 Windows 인스턴스에 설정된 보안 그룹 역시 EC2 Instance Connect 엔드포인트로 부터의 트래픽을 허용하도록 인바운드 룰을 설정하는 것이 필요합니다. 본 예시에서는 EC2 Instance Connect 엔드포인트에 설정된 보안그룹(sg-035xxxx)과 함께 EC2 Instance Connect 엔드포인트로부터의 모든 트래픽을 허용하도록 인바운드 룰을 설정합니다.

인바운드 룰

여기에 이미지 설명 입력

  1. Amazon VPC 콘솔의 왼쪽에서 엔드포인트(Endpoints)를 선택합니다.
  2. '엔드포인트 생성(Create Endpoint)'을 클릭하고 서비스 카테고리에서 "EC2 Instance Connect Endpoint"를 선택하고 VPC를 지정합니다.
  3. 그리고 앞서 EC2 Instance Connect 엔드포인트를 위해 생성한 보안 그룹을 선택합니다. (선택하지 않을 경우, 선택된 VPC의 기본 보안 그룹이 연결됩니다.)
  4. EC2 Instance Connect 엔드포인트가 위치할 서브넷을 선택합니다.
  5. 하단에 '엔드포인트 생성(Create Endpoint)'를 클릭합니다.

 

2) EC2 Instance Connect 엔드포인트 사용하여 EC2 Windows 인스턴스에 RDP로 연결하기.

  1. 앞서, 생성한 EC2 Instance Connect 엔드포인트가 Available로 사용 가능한 상태가 되면 사용자의 PC에서 다음 명령을 실행하여 EC2 Instance Connect 엔드포인트까지 프라이빗 터널을 생성합니다. 이때 사용자의 PC에는 AWS CLI 최신 버전이 설치되어 있어야 하며, 사용을 위한 설정이 완료된 상태여야 합니다.

aws ec2-instance-connect open-tunnel --instance-id <인스턴스 ID> --remote-port 3389 --local-port any-port

참고로, 이때 다음과 같은 오류가 출력되면 AWS CLI를 최신 버전으로 업데이트 하고 다시 진행해 주세요. AWS CLI를 업데이트하는 방법은 참고절 [5]에서 확인하실 수 있습니다.

aws: error: argument operation: Invalid choice

  1. RDP 클라이언트를 실행합니다.
  2. 연결할 컴퓨터에 localhost:<any-port>로 입력합니다. <any-port>는 앞서 터널을 생성할 때 "--local-port" 파라미터에 지정했던 포트를 입력합니다. 본 예시에서는 이를 8888로 사용합니다.

여기에 이미지 설명 입력

  1. 사용자 이름을 administrator로 입력하고 연결(Connect)를 클릭합니다.
  2. 이후 패스워드를 입력하고 연결합니다.

여기에 이미지 설명 입력

 

참고 :

[1] Amazon EC2 Instance Connect supports SSH and RDP connectivity without public IP address https://aws.amazon.com/about-aws/whats-new/2023/06/amazon-ec2-instance-connect-ssh-rdp-public-ip-address/?nc1=h_ls

[2] Connect to your instances without requiring a public IPv4 address using EC2 Instance Connect Endpoint https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/connect-with-ec2-instance-connect-endpoint.html

[3] Grant IAM permissions to use EC2 Instance Connect Endpoint https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/permissions-for-ec2-instance-connect-endpoint.html

[4] Security groups for EC2 Instance Connect Endpoint https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/eice-security-groups.html

[5] AWS CLI 설치 및 업데이트 지침 https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html

profile pictureAWS
지원 엔지니어
게시됨 3달 전676회 조회