EC2 Instance Connect 사용 시, 권장 버전보다 낮은 버전의 OS를 사용할 경우 대응 방법

EC2 Instance Connect 사용 시, 권장 버전보다 낮은 버전의 OS를 사용할 경우 대응하는 방법에 대해서 정리해 봤습니다.
2023.06.18

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 EC2 Instance Connect 사용 시, 권장 버전보다 낮은 버전의 OS를 사용할 경우 대응하는 방법에 대해서 정리해 봤습니다.

EC2 Instance Connect를 사용하여, EC2에 접속하는 방법은 아래 블로그를 참고해 주세요.

에러 발생

Failed to connect to your instance Error establishing SSH connection to your instance. Try again later.

EC2 Instance Connect를 통해 SSH 접속을 시도 했더니 다음과 같은 에러가 발생했습니다.

에러 해결

접속 시 에러가 발생했다면, 먼저 현재 OS 버전을 확인해야 합니다.

AMI를 통해 간단하게 버전을 확인할 수 있는데, 현재 EC2 인스턴스에서 사용하고 있는 버전은 Ubuntu 18.04 입니다.

  • Amazon Linux 2 2.0.20190618 이상
  • 우분투 20.04 이상

기본적으로 EC2 Instance Connect를 사용하기 위해서는 해당 서버에 EC2 Instance Connect가 설치되어 있어야 합니다.

우분투의 경우 20.04 버전 이상에서「EC2 Instance Connect」가 설치되기 떄문에, 설치가 되지 않은 18.04 버전에서는 EC2 Instance Connect를 통하여 접속할 수가 없습니다.

그렇다고 AWS 공식문서에서 요구하는 버전보다 낮은 버전에서 사용할 수 없는 건 아닙니다.

20.04 버전 이상에서는 EC2 Instance Connect가 자동으로 설치되기 때문에, 18.04 버전에서도 똑같이 EC2 Instance Connect를 설치해주면 됩니다.

sudo apt-get update
sudo apt-get upgrade

우분투의 패키지를 업데이트 합니다.

sudo apt-get install ec2-instance-connect

다음 명령어로 EC2 Instance Connect를 설치합니다.

Linux의 경우 yum install 명령어로 설치합니다.

sudo less /lib/systemd/system/ssh.service.d/ec2-instance-connect.conf

[Service]
ExecStart=
ExecStart=/usr/sbin/sshd -D -o "AuthorizedKeysCommand /usr/share/ec2-instance-connect/eic_run_authorized_keys %%u %%f" -o "AuthorizedKeysCommandUser ec2-instance-connect" $SSHD_OPTS
/lib/systemd/system/ssh.service.d/ec2-instance-connect.conf

설치가 끝났다면, 다음 명령어로 EC2 Instance Connect가 설치 되었는지 확인합니다.

Service 아래에「/lib/systemd/system/ssh.service.d/ec2-instance-connect.conf」가 있으면 설치가 된 상태입니다.

EC2 Instance Connect를 설치하지 않은 상태로 명령어를 실행해 보면, 디렉토리를 찾을 수 없다는 에러 메시지가 표시됩니다.

※ 해당 EC2 인스턴스에는 아무것도 설치되지 않은 인스턴스입니다. 사용하고 있는 서버에 따라 출력 결과가 다를 수 있습니다.

이제 다시 EC2 Instance Connect를 통해 SSH 접속을 시도합니다.

성공적으로 접속된 것을 확인할 수 있습니다.

본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !