[Err Handling] ssh: connect to host … port 22: Operation timed out
어떤 에러?
어제 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 접속)
- EC2에서 신규 인스턴스 생성
- 기존 인스턴스 실행 중지
- EBS → 볼륨 탭에서 현재 인스턴스 볼륨 분리
(성공적으로 분리되면
사용 중
에서사용 가능
으로 변함) - 방금 해제한 볼륨을 새로 생성한 신규 인스턴스에 연결
- 신규 인스턴스 SSH로 접속
- 새로 연결해준 볼륨 Mount
$ mkdir mnt
$ sudo mount /dev/xvdf1 ./mnt
- ufw 설정 파일 수정
$ cd mnt/etc/ufw
$ nano ufw.conf
// ENABLED 값을 no로 수정하고 나온다.
// 원래 no라면, 그대로 나옴
- Mount한 볼륨을 Unmount
$ cd
$ sudo umount ./mnt
// 제대로 언마운트 됐는지 확인하기 위해서
// mnt 폴더에 들어가 리스트를 확인.
// 텅 비어있다면 제대로 언마운트 된 것.
- 기존 인스턴스에 볼륨 재연결 디바이스 선택이 자동으로 /dev/sdf 로 잡히지만, 루트 디바이스가 반드시 있어야 하기 때문에 /dev/sda1 으로 설정해준다
- 기존 인스턴스 SSH로 접속하기!
다행히도, 위와 같은 Process로 진행했더니
정상적으로 인스턴스 SSH 연결이 됐다.
새로운 IP를 받아왔기 때문에
ELB도 확인 해주고, PM2 연결도 다시 해주었다.
(redis도 끊어졌다고 한다..)
이로써 최종 배포 후 첫 서버 유지보수(?)를 치뤘다.
뭔가, 엔지니어가 된 기분이라, 뿌듯했지만
간담이 서늘했던 경험이다.