ec2 중지 후 재기동 시 연결 불가 해결하기

dasd412·2022년 5월 20일
1

포트폴리오

목록 보기
40/41

발생한 문제

ec2 인스턴스 중지하고 나서 며칠이 지난 후, 다시 기동시켰다.
그 이후 putty, 파일지라, rds 연결이 모두 안된다. 에러 메시지는 connection time out이였다.

elastic ip 문제인가 했더니, 이미 elastic ip를 설정했기 때문에 인스턴스 ip 문제가 아니다. (elastic ip를 적용하면, 인스턴스 재부팅을 해도 인스턴스 ip가 변경되지 않는다.)

인스턴스 상태는 running이였다. 즉, 인스턴스는 정상 작동하고 있었다.
인스턴스의 ip도 상관 없고, 심지어 정상 작동 중이었다...


원인

결론부터 말하자면, 해결했다. 원인을 분석해보니
ec2 인스턴스 보안 그룹 22번 포트 인바운드 규칙 때문이었다.

22번 포트는 ssh를 위한 포트로, 보안을 위해 내 ip만 접속할 수 있게 설정해놓은 상태였다. 그런데 ec2 재부팅을 하기 전 내 ip와 재부팅을 한 이후의 내 ip가 다른 것을 확인할 수 있었다.

혹시 몰라서 ec2 보안 그룹 22번 포트를 현재 기준 내 ip로 바꿧더니, putty와 파일 지라가 잘 연결한다...

(참고로 nginx도 구동 중이였었다면, 당연히 다시 nginx를 켜야 한다.)

rds의 경우는 접속이 안됬는데, 이 경우에는 rds 보안 그룹 내의 ip v4 3306 포트의 소스를 현재 기준 내 ip로 바꾸자. 그러면 rds도 다시 정상 접속할 수 있다.

즉, ec2가 중지 후 재기동되면 다시 켜진 ec2는 내 컴퓨터의 현재 ip를 인식할 수 없기 때문에 차단하는 것이였다.


가설

  1. 내 컴퓨터의 ip는 유동 ip라서 인터넷 접속할 때마다 계속 바뀐다.
  2. 재기동 이전 ec2는 어떠한 주소 매핑 테이블이 있어서 내 ip가 계속 바뀌더라도 내 컴퓨터로 22번 포트에 접속함을 알 수 있었다.
  3. ec2 중지를 하면, 주소 매핑 테이블이 초기화된다.
  4. 3.이 맞다면, ec2 재기동 이후 주소 테이블을 보니 현재 ip가 없기 때문에 내 컴퓨터로 접속했음에도 불구하고 호스트임을 인식할 수 없다.
profile
아키텍쳐 설계와 테스트 코드에 관심이 많음.

0개의 댓글