EC2 Linux 인스턴스에 연결하는 데 어떤 방법을 사용할 수 있나요?
Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스에 연결하려면 어떤 옵션을 사용할 수 있는지 알고 싶어요.
간단한 설명
Amazon EC2 Linux 인스턴스에 연결하는 데는 네 가지 방법이 있습니다.
-
Secure Shell(SSH)(보안 셸)
-
Linux 인스턴스용 EC2 직렬 콘솔
-
AWS Systems Manager의 한 기능인 Session Manager(세션 관리자)
-
Amazon EC2 Instance Connect
해결 방법
SSH
제한 사항:
-
SSH에는 연결 로깅과 감사가 내장되어 있지 않습니다.
-
AWS는 각 EC2 인스턴스에 SSH를 통한 인증을 위해 단일 키 쌍을 배포합니다.
-
이 키 쌍을 분실하면 다시 생성할 수 없습니다. 자세한 내용은 How can I connect to my Amazon EC2 instance if I lost my SSH key pair after its initial launch?(초기 실행 후 SSH 키 쌍을 분실했다면 Amazon EC2 인스턴스에 어떻게 연결할 수 있나요?)를 참조하세요.
중요: 사용자의 인스턴스에 연결하기 전에 모든 사전 요구 사항을 완료해야 합니다.
방법 1: 터미널 창 사용
터미널 창(Linux 또는 macOS)을 연 다음 SSH 명령을 실행하여 인스턴스에 연결하세요.
공개 도메인 이름 사용:
ssh -i /path/key-pair-name.pem instance-user-name@instance-public-dns-name
공개 IPv4 주소 사용:
ssh -i /path/key-pair-name.pem instance-user-name@instance-public-IPv4-address
공개 IPv6 주소 사용:
ssh -i /path/key-pair-name.pem instance-user-name@instance-IPv6-address
자세한 내용은 Connect to your Linux instance using an SSH client(SSH 클라이언트를 사용하여 사용자의 Linux 인스턴스에 연결)를 참조하세요.
방법 2: Windows에서 OpenSSH 사용
- 다음 명령을 실행하여 PowerShell로 Windows용 OpenSSH를 설치하세요.
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
참고: OpenSSH를 설치하려면, 관리자 권한으로 PowerShell을 실행해야 합니다.
- SSH 명령을 실행하여 사용자의 인스턴스에 연결하세요.
공개 도메인 이름 사용:
ssh -i /path/key-pair-name.pem instance-user-name@instance-public-dns-name
공개 IPv4 주소 사용:
ssh -i /path/key-pair-name.pem instance-user-name@instance-public-IPv4-address
공개 IPv6 주소 사용:
ssh -i /path/key-pair-name.pem instance-user-name@instance-IPv6-address
방법 3: Windows에서 PuTTY 사용
-
PuTTYgen을 사용하여 [사용자의 개인 키를 변환하세요](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html#putty-prereqs).
-
PuTTY를 사용하여 사용자의 인스턴스에 연결하세요.
-
PuTTY를 시작합니다.
-
**Category(범주)**에서 **Session(세션)**을 선택하세요.
-
**Host Name(호스트 이름)**란에 사용자 이름/호스트 이름 부호를 입력하세요.
공개 도메인 이름 사용:
instance-user-name@instance-public-dns-name
공개 IPv4 주소 사용:
instance-user-name@instance-IPv4-address
공개 IPv6 주소 사용:
instance-user-name@instance-IPv6-address
-
Port 값은 SSH 서비스 포트와 일치해야 합니다(기본값은 22).
-
**Connection type(연결 유형)**에서 SSH를 선택하세요.
-
**Category(범주)**에서 **Connection(연결)**을 열고, SSH를 연 다음 **Auth(인증)**를 선택하세요.
-
**Browse(찾아보기)**를 선택한 다음, 사용자의 키 쌍에 대해 생성한 .ppk 파일을 선택하세요.
-
**Open(열기)**을 선택하세요.
참고: 인스턴스에 처음 연결할 때는, 원격 호스트를 신뢰하는지 확인해야 합니다.
Linux 인스턴스용 EC2 직렬 콘솔
EC2 직렬 콘솔은 EC2 인스턴스에 대한 직렬 연결을 설정하여 부팅 및 네트워크 연결 문제를 해결합니다.
제한 사항:
-
인스턴스 당 하나의 활성 직렬 콘솔 연결만 지원됩니다.
-
세션 간에는 최소 30초의 간격이 있어야 합니다.
-
EC2 직렬 콘솔 세션 중에 사용자 인스턴스의 처리량이 약간 떨어집니다.
-
EC2 직렬 콘솔은 Wavelength Zones 및 AWS Outposts에 대해 지원되지 않습니다.
-
EC2 직렬 콘솔은 특정 AWS Regions에서만 지원됩니다.
중요: E2 직렬 콘솔을 사용하여 연결하기 전에 모든 사전 요구 사항을 완료해야 합니다.
방법 1: 브라우저 기반 클라이언트 사용
-
EC2 콘솔을 여세요.
-
**Instances(인스턴스)**를 선택하세요.
-
사용자의 인스턴스를 선택한 다음, Actions(작업), Monitor and troubleshoot(모니터링 및 문제 해결), EC2 Serial Console(EC2 직렬 콘솔), **Connect(연결)**를 선택하세요. 또는 인스턴스를 선택한 다음 Connect(연결), EC2 Serial Console(EC2 직렬 콘솔), **Connect(연결)**를 선택하세요.
-
브라우저 내 터미널 창이 열리면, **Enter(입력)**를 눌러주세요. 로그인 프롬프트가 나타나면, 암호 기반 사용자의 사용자 이름을 입력한 다음, **Enter(입력)**를 눌러주세요.
Password(암호) 프롬프트에서, 암호를 입력한 다음 **Enter(입력)**를 눌러주세요.
방법 2: SSH 사용
- SSH 공개키를 인스턴스로 밀어 직렬 콘솔 세션을 시작하세요.
aws ec2-instance-connect send-serial-console-ssh-public-key \ --instance-id i-0123456789EXAMPLE \ --serial-port 0 \ --ssh-public-key file://my_key.pub \ --region us-east-1
참고: 앞의 예제 명령에서, SSH 공개키 경로에 file:// 접두사를 추가했는지 확인하세요.
- 사용자의 개인 키를 사용하여 시리얼 콘솔에 연결하세요.
ssh -i my_key i-0123456789EXAMPLE.port0@serial-console.ec2-instance-connect.us-east-1.aws
-
(선택적임) 지문을 확인하세요. 사용자가 직렬 콘솔에 처음 연결할 때 나타나는 지문을 Region에 대한 고유 EC2 직렬 콘솔 지문과 비교하세요.
-
프롬프트가 반환되면, 암호 기반 사용자의 사용자 이름을 입력한 다음, **Enter(입력)**를 눌러주세요.
-
Password(암호) 프롬프트에서, 암호를 입력한 다음 **Enter(입력)**를 눌러주세요.
Session Manager
Session Manager를 사용하면 인바운드 포트를 열거나 SSH 키를 관리하지 않고도 관리형 노드에 안전하게 액세스할 수 있습니다. AWS CloudTrail 이벤트를 사용하여 Session Manager 세션을 감사하고 AWS Identity and Access Management(IAM) 정책으로 세션을 제어할 수 있습니다.
제한 사항:
-
Session Manager를 사용하여 파일을 전송할 수 없습니다.
참고: 대신, S3 버킷과 AWS CLI를 사용하여 데이터를 교환하세요.
-
포트 전송이나 SSH를 통해 연결되는 Session Manager 세션에는 로깅을 사용할 수 없습니다. 이는 SSH가 모든 세션 데이터를 암호화하고 Session Manager는 SSH 연결을 위한 터널 역할만 하기 때문입니다.
-
AWS Systems Manager는 모든 운영 체제(OS)에서 지원되지 않습니다. 자세한 내용은 Supported operating systems(지원되는 운영 체제)를 참조하세요.
중요: Session Manager를 사용하여 사용자의 인스턴스에 연결하기 전에 모든 사전 요구 사항을 완료해야 합니다.
Systems Manager와 함께 사용할 VPC 엔드포인트를 생성하는 것이 가장 좋습니다.
-
Systems Manager 콘솔을 여세요.
-
Session Manager를 선택하세요.
-
**Start session(세션 시작)**을 선택하세요.
-
(선택적임) Reason for session(세션 이유) 필드에 세션 설명을 입력하세요.
-
사용자가 연결하려는 관리형 노드를 선택한 다음, **Start session(세션 시작)**을 선택하여 세션을 즉시 시작하세요.
-또는-
(선택적임) 사용자 지정 문서를 사용하여 기간, 암호화 및 로깅을 포함한 세션 설정을 구성하세요.**Session options(세션 옵션)**에서 **Next(다음)**를 선택하세요.
**Session document(세션 문서)**에서, 세션이 시작될 때 사용자가 실행하려고 하는 문서를 선택하세요. 사용자의 문서에서 런타임 매개변수를 지원하는 경우, 각 매개변수 필드에 쉼표로 구분된 값을 하나 이상 입력할 수 있습니다.
**Next(다음)**를 선택하세요.
**Start session(세션 시작)**을 선택하세요.
EC2 콘솔을 사용하여 연결
-
EC2 콘솔을 여세요.
-
**Instances(인스턴스)**를 선택하세요.
-
인스턴스를 선택한 다음, **Connect(연결)**를 선택하세요.
-
**Connection method(연결 방법)**에서 **Session Manager (세션 관리자)**를 선택하세요.
-
**Connect(연결)**를 선택하세요.
AWS CLI를 사용하여 연결
참고:
-
AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.
-
AWS CLI를 사용하여 세션 명령을 실행하려면, 사용자의 로컬 컴퓨터에 Session Manager 플러그인을 설치해야 합니다.
다음 명령을 실행하세요.
aws ssm start-session --target instance-id
Session Manager 를 통해 SSH를 사용하여 연결
요구 사항:
-
사용자의 대상 관리형 인스턴스를 구성하여SSH 연결을 지원해야 합니다.
-
실행 중인 AWS Systems Manager Agent(AWS SSM Agent) 버전은 2.3.672.0 이상이어야 합니다.
-
PEM(Privacy Enhanced Mail)(개인정보 보호 강화 메일) 인증서에 액세스할 수 있으며, 그와 연결된 계정을 사용하여 연결할 수 있습니다. 예를 들어, Ubuntu 관리형 노드의 경우 사용자 계정 "ubuntu"를 사용합니다.
SSH를 사용하여 세션을 시작하려면, 다음 명령을 실행하세요.
ssh -i /path/my-key-pair.pem username@instance-id,/code>
Amazon EC2 Instance Connect
EC2 Instance Connect는 SSH를 통해 사용자의 인스턴스에 대한 보안 액세스를 허용합니다. EC2 Instance Connect는 사용자의 SSH 키를 공유하지 않고 사용자의 인스턴스에 연결할 수 있는 여러 옵션을 제공합니다.
제한 사항:
-
EC2 Instance Connect는 Linux 배포에 대한 지원이 제한되어 있습니다.
-
AuthorizedKeysCommand와 AuthorizedKeysCommandUser 설정이 이미 구성되어 있지 않아야 합니다.
-
Local Zones에서는 EC2 Instance Connect가 지원되지 않습니다.
-
공개 IPv4 주소는 Amazon EC2 콘솔을 사용할 때 연결하는 데 필수입니다.
-
EC2 Instance Connect는 IPv6 주소를 사용하여 연결하는 것을 지원하지 않습니다.
중요: Amazon EC2 Instance Connect를 사용하기 전에 모든 사전 요구 사항을 완료해야 합니다.
Amazon EC2 콘솔을 사용하여 연결(IPv4 공개 주소가 있는 인스턴스만 해당)
-
Amazon EC2 콘솔을 여세요.
-
탐색 창에서, **Instances(인스턴스)**를 선택하세요.
-
인스턴스를 선택한 다음, **Connect(연결)**를 선택하세요.
-
**EC2 Instance Connect(EC2 인스턴스 연결)**를 선택하세요.
-
사용자 이름을 확인한 다음, **Connect(연결)**를 선택하여 터미널 창을 여세요.
자신의 키와 SSH 클라이언트를 사용하여 연결
참고: 사용자가 연결하려는 인스턴스에 EC2 Instance Connect CLI를 설치해야 합니다.
- 다음 명령을 실행하여 새 SSH 개인 키와 공개키를 생성하세요.
ssh-keygen -t rsa -f my_key
- 사용자의 SSH 공개키를 인스턴스에 밀어 넣으세요.
Amazon Linux:
aws ec2-instance-connect send-ssh-public-key \ --region us-west-2 \ --instance-id i-0123456789Amzn \ --instance-os-user ec2-user \ --ssh-public-key file://my_key.pub
Ubuntu:
aws ec2-instance-connect send-ssh-public-key \ --region us-west-2 \ --instance-id i-0123456789Ubuntu \ --instance-os-user ubuntu\ --ssh-public-key file://my_key.pub
참고: 앞의 예제 명령에서, SSH 공개키 경로에 file:// 접두사를 추가했는지 확인하세요.
- 사용자의 개인 키를 사용하여 인스턴스에 연결하세요
Amazon Linux:
ssh -o "IdentitiesOnly=yes" -i my_key ec2-user@instance-public-dns-name
Ubuntu:
ssh -o "IdentitiesOnly=yes" -i my_key ubuntu@instance-public-dns-name
참고: 표준 Amazon EC2 인스턴스 공개 DNS 이름은 **ec2-12-34-56-78.us-west-2.compute.amazonaws.com과 유사합니다. ** 이 이름은 AWS 도메인, 서비스(이 예제에서는 컴퓨팅), Region 및 공개 IP 주소의 한 형태로 구성됩니다.
EC2 Instance CLI를 사용하여 연결
Amazon Linux:
$mssh i-0123456789Amzn
Ubuntu:
$mssh ubuntu@i-0123456789Ubuntu
관련 콘텐츠
- 질문됨 9일 전lg...
- 질문됨 일 년 전lg...
- 질문됨 일 년 전lg...
- AWS 공식업데이트됨 2년 전
- AWS 공식업데이트됨 일 년 전
- AWS 공식업데이트됨 일 년 전