1 minute read

어떤 에러?

어제 OnWedding 프로젝트 배포를 할 때

인스턴스에서 작업하면서 뭔가가 잘못 됐는지,

터미널에서 인스턴스에 접속하려고 하면

ssh: connect to host ... port 22: Operation timed out

아무 반응이 없다가 어느정도 시간이 지나면 위와 같은 에러 코드가 떴다.

22번 포트에서 뭔가가 막혀서 응답을 하지 못하고

timed out이 뜬 것 같은데..

도대체 무엇이 문제인지 너무 막막했다.

이럴 땐? 역시 구글링이 빛을 발한다.

어떻게 해결?

우선, 프리티어로 사용하기 때문에

부족한 메모리 용량으로 인한 것으로 판단해

인스턴스를 중지 후 재시작을 해보았다.

그러나 전혀 문제가 해결되지 않았다.

때문에, 22번 포트를 보안그룹에서 인바운드 하지 못하는건가?

라는 생각이 들어, 인스턴스 보안그룹을 확인해 봤지만

22번 포트를 아주 잘 인바운드 하고 있었다.

여기까지 문제가 해결이 되지 않자,

구글링을 해서 나온 하나의 해결안.

VPC 라우팅 테이블에서 0.0.0.0/0 라우팅이 활성화 되어 있는지

확인을 하고, 그렇지 않다면 열어주어야 하는 것인데,

이것 역시 제대로 활성화 되어 열심히 일을 하는 중이었다.

뭔가 문제가 커질 것 같은 불길한 예감이 들었지만,

조바심 내지 않고 천천히 구글링을 다시 해보았고,

다시 한 번 찾은 새로운 해결안.

Ubuntu 방화벽 ufw를 비활성화를 해야 한다는 것인데,

ufw를 비활성화 하기 위해선 어찌되었든 인스턴스에 접속을 해야했다..

인스턴스에 접속 자체를 하지 못하는데 어찌해야 하나, 고민하던 중

방법을 찾게 되었다.

(AWS 접속)

  1. EC2에서 신규 인스턴스 생성
  2. 기존 인스턴스 실행 중지
  3. EBS → 볼륨 탭에서 현재 인스턴스 볼륨 분리 (성공적으로 분리되면 사용 중 에서 사용 가능 으로 변함)
  4. 방금 해제한 볼륨을 새로 생성한 신규 인스턴스에 연결
  5. 신규 인스턴스 SSH로 접속
  6. 새로 연결해준 볼륨 Mount
$ mkdir mnt
$ sudo mount /dev/xvdf1 ./mnt
  1. ufw 설정 파일 수정
$ cd mnt/etc/ufw
$ nano ufw.conf

// ENABLED 값을 no로 수정하고 나온다.
// 원래 no라면, 그대로 나옴
  1. Mount한 볼륨을 Unmount
$ cd
$ sudo umount ./mnt

// 제대로 언마운트 됐는지 확인하기 위해서
// mnt 폴더에 들어가 리스트를 확인.
// 텅 비어있다면 제대로 언마운트 된 것.
  1. 기존 인스턴스에 볼륨 재연결 디바이스 선택이 자동으로 /dev/sdf 로 잡히지만, 루트 디바이스가 반드시 있어야 하기 때문에 /dev/sda1 으로 설정해준다
  2. 기존 인스턴스 SSH로 접속하기!

다행히도, 위와 같은 Process로 진행했더니

정상적으로 인스턴스 SSH 연결이 됐다.

새로운 IP를 받아왔기 때문에

ELB도 확인 해주고, PM2 연결도 다시 해주었다.

(redis도 끊어졌다고 한다..)

이로써 최종 배포 후 첫 서버 유지보수(?)를 치뤘다.

뭔가, 엔지니어가 된 기분이라, 뿌듯했지만

간담이 서늘했던 경험이다.

Updated: