Ctrl + Shift + ESC

VSCode에서 SSH를 이용해 EC2에 접속하기 본문

Cloud

VSCode에서 SSH를 이용해 EC2에 접속하기

단축키실행해보세요 2025. 11. 22. 14:51

* 해당 포스트는 실무 초밀착 리눅스: 클라우드 환경 운영부터 성능분석까지 강의를 듣고 정리한 것입니다.

실습 개요

실습 후 화면

 

여러 CLI와 GUI를 겪어본 결과, 터미널 환경에서 명령어로 모든 것을 연결하는 환경은 생각보다 어렵다.

VSCode나 IntelliJ 같은 텍스트 에디터 환경에서는 편리한 확장 프로그램도 많고, 무엇보다 디버깅이 편리해진다.

Linux 환경에서 gdb로 디버깅한 경험과, VSCode에서 디버깅을 해본 경험이 있는 사람이라면 공감할 수 있을 것이다.

EC2에서도 편리한 작업을 위해 VSCode에서 SSH(22)로 연결하는 방법을 알아보자.

 

클라우드 환경 구성

VPC 생성

 

다음과 같은 옵션으로 VPC를 생성한다. 주요 옵션은 다음과 같다.

  • Number of AZ : 사용 가능한 가용 영역 개수이다. 간단하게 테스트를 할 용도이므로 1개만 선택한다.
  • Number of public subnets : 인터넷 통신이 가능한 public subnet의 개수이다. 역시나 1개만 선택한다.
  • Number of private subnets : VPC 내부 통신만 가능한 private subnet의 개수이다. 역시나 1개만 선택한다.
  • Nat gateway : private subnet이 인터넷 통신을 할 수 있도록 하는 NAT gateway의 개수이다. NAT Gateway는 매우 비싸고, 우리는 public subnet에 EC2를 생성할 것이므로 None을 선택한다.
  • VPC endpoints : VPC와 S3가 통신이 가능하도록 하는 S3 Gateway Endpoint를 위한 옵션이다. 이는 비용이 들지 않으므로 생성해도 무방하다.

 

VPC를 생성했다면 그 안에 EC2를 생성해야 한다. EC2는 다음과 같이 생성한다.

  • OS : Ubuntu
  • Instance type : t2.small(t2.micro는 SSH 통신이 원활하게 이뤄지지 않음)
  • key pair : 새로 생성 후 등록
  • Network settings : subnet을 public으로 변경하고 SSH 접속을 위해 SG에 ssh, 0.0.0.0 옵션 추가
  • storage : free tier limit 내에서 원하는 대로 (너무 작으면 추후 EC2의 동작이 멈출 수 있음)

 

EC2 생성이 완료되었다면 로컬 터미널로 돌아와 /Users/<사용자 이름>/.ssh 경로로 들어와 config 파일을 작성한다.

vi config

Host vbox
    HostName 127.0.0.1
    User ubuntu
    Port 2222
    ForwardAgent yes

Host demo
    HostName 43.203.243.64
    User ubuntu
    IdentityFile ~/.ssh/acc-ec2.pem

 

여기에서 demo의 HostName에는 EC2의 public IP를, IdentityFile에는 아까 생성한 key pair의 이름과 경로를 등록한다.

나의 경우 .pem 파일은 .ssh 경로에 모아둔다.

 

 

작성을 완료했다면 VSCode로 돌아와 확장 프로그램에서 Remote - SSH 를 설치한다.

 

 

설치하고 SSH 확장 프로그램으로 들어오면 config 파일에 작성한 대로 demo로 접속할 수 있을 것이다.

 

실습 후 화면

 

demo 경로로 들어오면 EC2 인스턴스 내부로 SSH를 통해 들어온 것을 확인할 수 있다.

 

혹시 실패했다면 keypair의 권한이 적절하게 부여되어 있는지(너무 open되어 있으면 연결이 불가능하다.), 인스턴스의 크기가 SSH를 견딜 수 있는 사이즈인지 체크해보면 된다.