안녕하세요 에이클라우드입니다.
인스턴스에 연결하기 위한 방법으로는 클라이언트 PC에서 SSH 툴을 사용한 연결, Bastion Host를 통해 연결, 콘솔에서 연결 등 여러 방법이 있습니다.
그 중 AWS 콘솔에서 인스턴스로 안전하면서도 간단하게 연결할 수 있는 EC2 Instance Connect에 대해 다뤄보겠습니다.
EC2 Instance Connect는 콘솔에서 SSH를 통해 인스턴스에 연결하며 기존에 인스턴스에 연결하기 위해 사용하던 SSH 키를 공유하거나 관리할 필요가 없습니다.
또한 EC2 Instance Connect를 통해서 연결하는 경우 CloudTrail에 로그가 남기 때문에 이를 통해 보안 감사 역시 가능합니다.
단, EC2 Instance Connect를 사용하기 위해서는 네트워크 설정, 권한, EC2 Instance Connect 설치 등 여러 조건과 제한 사항을 미리 확인해야 합니다.
아래에서 EC2 Instance Connect에 대한 기본적인 실습을 진행합니다.
EC2 Instance Connect
실습 환경
1. 서울 리전
2. 퍼블릭 IPv4 주소가 연결된 인스턴스
3. Amazon Linux 2023 AMI
4. EC2 Instance Connect 사용 권한이 있는 IAM 사용자
1. 먼저 연결하려는 인스턴스를 선택합니다.
2. 우측 상단의 ‘연결‘ 버튼을 클릭합니다.
3. EC2 인스턴스 연결(EC2 Instance Connect) 항목에서 ‘EC2 Instance Connect을 사용하여 연결‘ 옵션을 선택합니다.
퍼블릭 IP 주소는 연결하려는 인스턴스의 주소이며 사용자 이름의 경우 Amazon Linux는 ec2-user가 기본으로 설정됩니다.
해당 사용자로 인스턴스에 연결합니다.
4. 우측 하단의 ‘연결’ 버튼을 클릭하면 아래와 같이 브라우저를 통해 인스턴스로 연결할 수 있게됩니다.
보안 그룹 설정
위와 같이 EC2 Instance Connect를 통해 콘솔에서 간단히 인스턴스에 연결할 수 있습니다.
하지만 EC2 Instance Connect를 사용하기 위해서는 연결하려는 인스턴스의 SSH 접근이 허용되어 있어야 합니다.
이에 대한 작업을 아래에서 살펴보도록 하겠습니다.
일반적으로 보안을 위해 SSH 접속은 클라이언트 PC의 IP 주소만 허용하는 경우가 많습니다.
하지만 이 경우에 EC2 Instance Connect로 접속을 할 수 없게 됩니다.
아래와 같이 AWS 공식 문서에 따르면 ‘EC2 콘솔을 통해 인스턴스에 연결하는 경우 인스턴스와 연결된 보안 그룹이 EC2_INSTANCE_CONNECT
의 IP 주소 범위에서 SSH 인바운드 트래픽을 허용해야 합니다’라고 안내되어 있습니다.
가이드 링크 : AWS EC2 Instance Connect 보안 그룹 규칙
EC2_INSTANCE_CONNECT
의 IP 주소 범위는 AWS IP 주소 범위 가이드에 json 파일을 다운로드 받아 확인할 수 있습니다.
(+다른 AWS 일부 리소스들의 IP 주소 범위도 해당 파일에서 확인이 가능합니다.)
가이드 링크 : AWS IP 주소 범위
EC2_INSTANCE_CONNECT
의 IP 주소 범위는 아래와 같이 공개 되어 있으며 해당 주소 범위를 보안 그룹의 인바운드 규칙에 추가합니다.
이후 EC2 Instance Connect를 통해 인스턴스에 연결을 시도합니다.
아래와 같이 콘솔에서 인스턴스에 성공적으로 연결되었습니다.
추가적으로 접속지 IP 주소가 보안 그룹에 추가한 IP 주소 범위 내의 주소인 것을 확인할 수 있습니다.
EC2 Instance Connect 가이드 영상
이처럼 EC2 Instance Connect 기능을 사용하여 키 페어나 SSH 툴을 사용하지 않고 AWS 콘솔에서 인스턴스로 바로 접속할 수 있습니다.
이 외에도 EC2 Instance Connect 엔드포인트를 사용하여 퍼블릭 IP가 없는 프라이빗 서버에도 연결하는 등 여러 방법이 있습니다.
필요하신 경우 아래 가이드를 참고하여 사전 설정과 제한 사항을 미리 체크해 보시길 바랍니다.
감사합니다.
AWS EC2 Instance Connect 가이드
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/connect-linux-inst-eic.html