본문 바로가기

Cloud/AWS

[AWS] EC2 서버 구축 가이드 Part 2: SSH 원격 접속

반응형

 

지난 Part 1에서는 AWS EC2 인스턴스를 생성하고 클라우드 위에 나만의 가상 서버를 마련하는 과정을 다뤘습니다. 하지만 서버를 생성만 한 상태에서는 아무것도 할 수 없습니다. 이번 Part 2에서는 내 컴퓨터에서 생성된 EC2 인스턴스로 원격 접속하여, 서버를 직접 제어하는 방법을 알아보겠습니다.


SSH란 무엇인가?

 

SSH(Secure Shell)는 네트워크를 통해 다른 컴퓨터에 안전하게 원격으로 접속하고 명령을 실행할 수 있는 프로토콜입니다. 쉽게 말해, 내 컴퓨터의 터미널(명령 프롬프트)을 EC2 서버의 터미널처럼 사용하게 해주는 보안 연결 통로입니다. 이 SSH 연결을 통해 우리는 서버에 소프트웨어를 설치하거나, 파일을 수정하고, 프로젝트를 배포하는 등 모든 서버 관리 작업을 수행하게 됩니다.

접속을 위해서는 지난 Part 1에서 다운로드했던 키 페어 파일(.pem)이 반드시 필요합니다.


1. EC2 인스턴스 연결 정보 확인하기

먼저 생성된 서버에 접속하기 위한 고유 정보를 확인해야 합니다.

  • AWS Management Console의 EC2 대시보드에서 지난번에 생성한 인스턴스를 선택합니다.

 

  • 인스턴스를 선택한 상태에서 상단의 [연결] 버튼을 클릭합니다.

 

  • 'EC2 인스턴스에 연결' 이라는 제목의 페이지가 나타납니다. 이 페이지의 중간 부분에 접속에 필요한 정보가 요약되어 있습니다.
    • 퍼블릭 DNS (또는 IP 주소): 우리 서버의 고유한 인터넷 주소입니다.
    • 사용자 이름: Part 1에서 Ubuntu로 설치했으므로 ubuntu 입니다.
    • 이제 'SSH 클라이언트' 탭을 클릭하면, 이 정보들이 조합된 최종 접속 명령어 예시와 절차를 확인할 수 있습니다.

2. SSH로 원격 접속하기 (운영체제별)

이제 운영체제에 맞는 방법으로 서버에 접속해 보겠습니다.

macOS / Linux 사용자 (Terminal 이용)

macOS와 대부분의 리눅스에는 OpenSSH 클라이언트가 기본으로 내장되어 있어, 터미널 앱만으로 바로 접속할 수 있습니다. 접속 전, 보안을 위해 다운로드한 키 파일을 안전한 전용 폴더로 옮기는 과정부터 진행하겠습니다.

1단계: pem 키 이동 및 권한 설정

개인 키는 아무나 접근할 수 없는 안전한 장소에 보관해야 합니다. SSH 전용 폴더인 ~/.ssh로 키를 옮기고, 접근 권한을 설정하겠습니다.

(터미널에서 아래 명령어를 순서대로 실행하세요.)

# 1. 홈 디렉터리에 .ssh 폴더를 생성하고, 소유자만 접근하도록 권한을 설정합니다.
# (이미 있다면 오류 메시지가 나오지만 괜찮습니다.)
cd ~
mkdir ~/.ssh
chmod 700 ~/.ssh

# 2. Downloads 폴더의 키를 .ssh 폴더로 이동합니다.
# 'your-key-name.pem'은 실제 파일명으로 변경해주세요.
mv ~/Downloads/your-key-name.pem ~/.ssh/

# 3. 이동한 키 파일 자체의 권한도 소유자만 읽을 수 있도록 변경합니다. (필수)
chmod 400 ~/.ssh/your-key-name.pem

2단계: SSH 명령어로 원격 접속

이제 모든 준비가 끝났습니다. 안전한 위치에 있는 키 파일을 사용하여 서버에 접속합니다. AWS 연결 페이지에 있던 '예' 부분의 명령어를 

아래와 같이 수정된 경로로 수정하여 실행합니다.

SSH 클라이언트 탭에 있는 명령어 부분에 my-portfolio-server.pem 앞에 ~/.ssh/ 추가 ("~/.ssh/my-portfolio-server.pem")

최초 접속 시 Are you sure you want to continue connecting (yes/no/[fingerprint])? 라는 메시지가 나타나면 yes를 입력하고 엔터를 누릅니다.

 

Windows 사용자 (PuTTY 이용)

Windows 10/11의 경우 PowerShell이나 명령 프롬프트에서 OpenSSH를 사용할 수도 있지만, 전통적으로 PuTTY라는 무료 SSH 클라이언트를 많이 사용합니다.

  1. PuTTY 및 PuTTYgen 다운로드
  2. PuTTY 공식 다운로드 페이지로 이동하여 putty.exe와 puttygen.exe를 다운로드합니다.
  3. .pem 키를 .ppk 키로 변환 (최초 1회)
    • puttygen.exe를 실행합니다.
    • [Load] 버튼을 누르고, 파일 형식을 'All Files (.)'로 변경한 뒤 다운로드한 .pem 키를 불러옵니다.
    • 불러온 후, [Save private key] 버튼을 클릭하여 동일한 이름의 .ppk 파일로 저장합니다. (암호 설정 경고창이 나오면 '예'를 누르고 그냥 저장하면 됩니다.)
  4. PuTTY는 AWS에서 받은 .pem 형식의 키 파일을 직접 사용하지 못합니다. PuTTY가 인식할 수 있는 .ppk 형식으로 변환해야 합니다.
  5. PuTTY로 서버 접속
    • putty.exe를 실행합니다.
    • Category > Session 창의 'Host Name (or IP address)' 필드에 AWS 연결 페이지에 있던 사용자 이름과 DNS 주소를 @로 연결하여 입력합니다. (예: ubuntu@ec2-xx-xxx-xxx-xxx.ap-northeast-2.compute.amazonaws.com)
    • Category > Connection > SSH > Auth > Credentials 로 이동합니다.
    • 'Private key file for authentication' 항목에서 [Browse...] 버튼을 눌러 방금 변환한 .ppk 파일을 선택합니다.
    • 다시 Session 창으로 돌아와, 이 설정을 저장하기 위해 'Saved Sessions'에 이름을 입력하고 [Save]를 누릅니다.
    • [Open] 버튼을 클릭하여 접속합니다. 최초 접속 시 나타나는 'Security Alert' 창에서 [Accept]를 클릭합니다.

접속 성공!

위 과정을 마치고 아래와 같이 사용자 이름과 서버 정보가 포함된 명령 프롬프트가 나타나면, EC2 인스턴스에 성공적으로 접속한 것입니다.

 

이것으로 AWS 클라우드에 있는 나만의 서버에 원격으로 접속하는 데 성공했습니다. 이제 이 검은 터미널 화면을 통해 서버의 모든 것을 제어할 수 있는 권한을 갖게 되었습니다.

 

하지만 지금 이 서버는 운영체제만 설치된 텅 빈 상태입니다. 서버를 소유하는 것에서 나아가, 직접 활용하는 단계가 필요합니다.

다음 Part 3에서는 이 서버에 Nginx라는 웹 서버를 설치하여, 브라우저에 IP 주소를 입력했을 때 'Hello World' 메시지가 뜨도록 만들어 보겠습니다. 

반응형