EC2 인스턴스에 EC2 Instance Connect 설치

EC2 인스턴스에 EC2 Instance Connect 설치 (Install EC2 Instance Connect on your EC2 instances)

EC2 Instance Connect로 Linux 인스턴스에 연결하려면 인스턴스에 EC2 Instance Connect가 설치되어 있어야 해요. EC2 Instance Connect를 설치하면 인스턴스의 SSH 데몬이 구성돼요.

출처: 문서

본문

EC2 Instance Connect 패키지에 대한 자세한 내용은 GitHub 사이트의 aws/aws-ec2-instance-connect-config를 참고하세요.

참고

SSH 인증을 위해 AuthorizedKeysCommand와 AuthorizedKeysCommandUser 설정을 구성한 경우, EC2 Instance Connect 설치가 해당 설정을 업데이트하지 않아요. 그 결과 EC2 Instance Connect를 사용할 수 없어요.

설치 사전 요구 사항 (Install prerequisites)

EC2 Instance Connect를 설치하기 전에 다음 사전 요구 사항을 충족하는지 확인하세요.

  • 인스턴스가 다음 중 하나를 사용하는지 확인해요.
    • 버전 2.0.20190618 이전의 Amazon Linux 2 *
    • AL2023 최소 AMI 또는 Amazon ECS-optimized AMI
    • CentOS Stream 8 및 9
    • 14.2.1 이전의 macOS Sonoma, 13.6.3 이전의 Ventura, 12.7.2 이전의 Monterey *
    • Red Hat Enterprise Linux(RHEL) 8 및 9
    • Ubuntu 16.04 및 18.04 *

    팁 Amazon Linux 2, macOS, Ubuntu의 경우: 위에 나열된 것보다 이후 버전으로 인스턴스를 시작했다면 EC2 Instance Connect가 사전 설치되어 있으므로 수동 설치가 필요하지 않아요.

  • EC2 Instance Connect의 일반 사전 요구 사항을 확인해요. 자세한 내용은 Prerequisites for EC2 Instance Connect를 참고하세요.
  • 로컬 컴퓨터에서 SSH 클라이언트를 사용해 인스턴스에 연결하기 위한 사전 요구 사항을 확인해요. 자세한 내용은 Connect to your Linux instance using SSH를 참고하세요.
  • 인스턴스의 ID를 가져와요. Amazon EC2 콘솔(Instance ID 열)에서 인스턴스 ID를 가져올 수 있어요. 원한다면 describe-instances(AWS CLI) 또는 Get-EC2Instance(AWS Tools for Windows PowerShell) 명령을 사용할 수도 있어요.

EC2 Instance Connect 수동 설치 (Manually install EC2 Instance Connect)

참고

다음 AMI 중 하나로 인스턴스를 시작했다면 EC2 Instance Connect가 사전 설치되어 있으므로 이 절차를 건너뛸 수 있어요.

  • AL2023 표준 AMI
  • Amazon Linux 2 2.0.20190618 이상
  • macOS Sonoma 14.2.1 이상
  • macOS Ventura 13.6.3 이상
  • macOS Monterey 12.7.2 이상
  • Ubuntu 20.04 이상

인스턴스의 운영체제에 따라 다음 절차 중 하나를 사용해 EC2 Instance Connect를 설치해요.

Amazon Linux 2

Amazon Linux 2로 시작된 인스턴스에 EC2 Instance Connect를 설치하려면: SSH를 사용해 인스턴스에 연결해요. 다음 명령의 예시 값을 여러분의 값으로 바꿔요. 인스턴스를 시작할 때 할당된 SSH 키 페어와 AMI의 기본 사용자 이름을 사용해요. Amazon Linux 2의 기본 사용자 이름은 ec2-user예요.

$ ssh -i my_ec2_private_key.pem [email protected]

인스턴스에 연결하는 방법에 대한 자세한 내용은 Connect to your Linux instance using an SSH client를 참고하세요. 인스턴스에 EC2 Instance Connect 패키지를 설치해요.

[ec2-user ~]$ sudo yum install ec2-instance-connect

/opt/aws/bin/ 폴더에 다음 새 스크립트 세 개가 표시되어야 해요.

  • eic_curl_authorized_keys
  • eic_parse_authorized_keys
  • eic_run_authorized_keys (선택 사항) EC2 Instance Connect가 인스턴스에 성공적으로 설치되었는지 확인해요.
[ec2-user ~]$ sudo less /etc/ssh/sshd_config

AuthorizedKeysCommand와 AuthorizedKeysCommandUser 줄에 다음 값이 포함되어 있으면 EC2 Instance Connect가 성공적으로 설치된 것이에요.

AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f
AuthorizedKeysCommandUser ec2-instance-connect

AuthorizedKeysCommand는 eic_run_authorized_keys 스크립트가 인스턴스 메타데이터에서 키를 조회하도록 설정해요. AuthorizedKeysCommandUser는 시스템 사용자를 ec2-instance-connect로 설정해요. 참고 AuthorizedKeysCommand와 AuthorizedKeysCommandUser를 이전에 구성했다면 EC2 Instance Connect 설치가 값을 변경하지 않으며 EC2 Instance Connect를 사용할 수 없어요.

CentOS

CentOS로 시작된 인스턴스에 EC2 Instance Connect를 설치하려면: SSH를 사용해 인스턴스에 연결해요. 다음 명령의 예시 값을 여러분의 값으로 바꿔요. SSH 키 페어와 AMI의 기본 사용자 이름을 사용해요. CentOS의 기본 사용자 이름은 centos 또는 ec2-user예요.

$ ssh -i my_ec2_private_key.pem [email protected]

HTTP 또는 HTTPS 프록시를 사용한다면 현재 셸 세션에서 http_proxy 또는 https_proxy 환경 변수를 설정해야 해요. 프록시를 사용하지 않으면 이 단계를 건너뛸 수 있어요. HTTP 프록시 서버의 경우 다음 명령을 실행해요.

$ export http_proxy=http://hostname:port
$ export https_proxy=http://hostname:port

HTTPS 프록시 서버의 경우 다음 명령을 실행해요.

$ export http_proxy=https://hostname:port
$ export https_proxy=https://hostname:port

다음 명령을 실행해 인스턴스에 EC2 Instance Connect 패키지를 설치해요. CentOS용 EC2 Instance Connect 구성 파일은 Red Hat Package Manager(RPM) 패키지로 제공되며, CentOS 8과 CentOS 9, 그리고 Intel/AMD(x86_64) 또는 ARM(AArch64)에서 실행되는 인스턴스 유형에 따라 서로 다른 RPM 패키지가 있어요. 운영체제와 CPU 아키텍처에 맞는 명령 블록을 사용하세요. CentOS 8 Intel/AMD (x86_64):

[ec2-user ~]$ mkdir /tmp/ec2-instance-connect
[ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-2.0.0-5.rhel8.x86_64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm
[ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
[ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm

(원문에는 CentOS 8 ARM, CentOS 9 Intel/AMD, CentOS 9 ARM용 추가 RPM 명령 블록이 포함됩니다. 값은 아키텍처·버전에 맞게 원문을 그대로 따르세요.)

macOS

macOS로 시작된 인스턴스에 EC2 Instance Connect를 설치하려면: SSH를 사용해 인스턴스에 연결해요. macOS 인스턴스의 기본 사용자 이름은 ec2-user예요.

$ ssh -i my_ec2_private_key.pem [email protected]

다음 명령으로 Homebrew를 업데이트해요. 업데이트는 Homebrew가 아는 소프트웨어를 나열해요. EC2 Instance Connect 패키지는 macOS 인스턴스에서 Homebrew를 통해 제공돼요.

[ec2-user ~]$ brew update

인스턴스에 EC2 Instance Connect 패키지를 설치해요. 이렇게 하면 소프트웨어가 설치되고 sshd가 이를 사용하도록 구성돼요.

[ec2-user ~]$ brew install ec2-instance-connect

/opt/aws/bin/ 폴더에 다음 새 스크립트가 표시되어야 해요.

  • eic_run_authorized_keys (선택 사항) EC2 Instance Connect가 인스턴스에 성공적으로 설치되었는지 확인해요.
[ec2-user ~]$ sudo less /etc/ssh/sshd_config.d/60-ec2-instance-connect.conf

AuthorizedKeysCommand와 AuthorizedKeysCommandUser 줄에 다음 값이 포함되어 있으면 EC2 Instance Connect가 성공적으로 설치된 것이에요.

AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f
AuthorizedKeysCommandUser ec2-instance-connect

참고 AuthorizedKeysCommand와 AuthorizedKeysCommandUser를 이전에 구성했다면 EC2 Instance Connect 설치가 값을 변경하지 않으며 EC2 Instance Connect를 사용할 수 없어요.

RHEL

Red Hat Enterprise Linux(RHEL)로 시작된 인스턴스에 EC2 Instance Connect를 설치하려면: SSH를 사용해 인스턴스에 연결해요. RHEL의 기본 사용자 이름은 ec2-user 또는 root예요.

$ ssh -i my_ec2_private_key.pem [email protected]

HTTP 또는 HTTPS 프록시를 사용한다면 http_proxy 또는 https_proxy 환경 변수를 설정해야 해요. 다음 명령을 실행해 EC2 Instance Connect 패키지를 설치해요. RHEL용 구성 파일은 RPM 패키지로 제공되며, RHEL 8과 9, 그리고 Intel/AMD(x86_64) 또는 ARM(AArch64) 인스턴스 유형에 따라 서로 다른 RPM 패키지가 있어요. RHEL 8 Intel/AMD (x86_64):

[ec2-user ~]$ mkdir /tmp/ec2-instance-connect
[ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-2.0.0-5.rhel8.x86_64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm
[ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
[ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm

(원문에는 RHEL 8 ARM, RHEL 9 Intel/AMD, RHEL 9 ARM용 추가 RPM 명령 블록이 포함됩니다. 값은 아키텍처·버전에 맞게 원문을 그대로 따르세요.)

Ubuntu

Ubuntu 16.04 이상으로 시작된 인스턴스에 EC2 Instance Connect를 설치하려면: SSH를 사용해 인스턴스에 연결해요. Ubuntu AMI의 사용자 이름은 ubuntu예요.

$ ssh -i my_ec2_private_key.pem [email protected]

(선택 사항) 인스턴스가 최신 Ubuntu AMI인지 확인해요. 다음 명령을 실행해 인스턴스의 모든 패키지를 업데이트해요.

ubuntu:~$ sudo apt-get update
ubuntu:~$ sudo apt-get upgrade

인스턴스에 EC2 Instance Connect 패키지를 설치해요.

ubuntu:~$ sudo apt-get install ec2-instance-connect

/usr/share/ec2-instance-connect/ 폴더에 다음 새 스크립트 세 개가 표시되어야 해요.

  • eic_curl_authorized_keys
  • eic_parse_authorized_keys
  • eic_run_authorized_keys (선택 사항) EC2 Instance Connect가 인스턴스에 성공적으로 설치되었는지 확인해요.
ubuntu:~$ sudo less /lib/systemd/system/ssh.service.d/ec2-instance-connect.conf

AuthorizedKeysCommand와 AuthorizedKeysCommandUser 줄에 다음 값이 포함되어 있으면 EC2 Instance Connect가 성공적으로 설치된 것이에요.

AuthorizedKeysCommand /usr/share/ec2-instance-connect/eic_run_authorized_keys %%u %%f
AuthorizedKeysCommandUser ec2-instance-connect

참고 AuthorizedKeysCommand와 AuthorizedKeysCommandUser를 이전에 구성했다면 EC2 Instance Connect 설치가 값을 변경하지 않으며 EC2 Instance Connect를 사용할 수 없어요.

더 알아보기 (Learn more)