2024. 9. 6. 21:41ㆍ[Node.js_6기 본캠프 TIL]
AWS에서 EC2와 RDS를 처음 만들어보게 된 날인 만큼, 요금 폭탄의 괴담을 떠올리며 인스턴스가 중지 상태인지 여러번 확인하고 나서야 식사 시간을 가질 수 있었다.
그러나 다시 강의를 틀고 MySQL 연결 작업을 하는데, 이상하게 'Error: connect ETIMEDOUT' 메세지가 뜨며 RDS에 연결되지 않는 현상이 발생했다. 인스턴스를 중지해둔 상태라 그런가? 연결은 딱히 안해놨지만, 다 켜놓고 테스트 해보자- 라는 마음으로 EC2 인스턴스 창으로 넘어갔다.
뭐야 내 EC2 돌려줘요
아무리 새로고침을 해도, 세팅했던 것이 꿈인 것처럼 인스턴스가 사라져 있었다. 보안그룹은 분명히 남아있는데, 그 보안그룹을 사용하고 있는 인스턴스가 대체 어디로 사라진 것인지 솜사탕 씻은 너구리처럼 AWS 사이트를 여기저기 휘적거렸다.
리소스 창을 노려보다가 문득, '아시아 태평양 (서울) 리전에서 다음 Amazon EC2 리소스를 사용하고 있음: '이라는 문구가 보였다.
설마 계정 옆에 지역명이 계속 변하던 현상이 연관이 있나 싶어 'AWS EC2 인스턴스 안보임'을 검색했다.
처음 생성했던 리전을 찾아라
생각보다 흔하게 발생하는 이슈인지, 관련 글이 줄줄이 나왔다. 그리고 예상대로 리전의 지역값이 문제였다. 딱히 건드린 적 없어도 세계일주를 하던 나의 리전이 어딘가에 EC2를 생성하게 한 뒤, 혼자 서울로 돌아와버린 것이었다.
버지니아와 캘리포니아를 본 기억이 있어, 지역을 옮겨가며 탐색하던 그 때.
드디어 캘리포니아에서 얌전히 중지되어 있던 나의 EC2 인스턴스를 찾을 수 있었다. 안도의 한숨과 함께 사용중으로 돌려놓고 RDS 연결 작업을 시작했다. 그리고 당연하게도... RDS는 해결되지 않았다.
Error: connect ETIMEDOUT 해결하기
찾아보니 VScode에서 ETIMEDOUT 에러가 발생하는 이유는 EC2가 아니라, 1)서버의 정보를 잘못 기입한 경우 2)권한이 없는 경우 3)요청 시간이 부족한 경우 로 나뉜다고 한다.
1) 다시 한번 연결해보자
보통 서버의 정보를 잘못 기입하여 올바른 경로로 연결하지 못해, 해당 에러가 발생한다는 말에 연결을 끊고 천천히 다시 연결해봤다. 여전히 ETIMEDOUT 에러에서 벗어날 수 없었다.
2) 접근 권한을 확인해보자
혹시나 하는 마음에 강의를 돌려보며 세팅된 환경을 대조해보았다. '퍼블릭 액세스 가능' 이라는 옵션이 '예' 로 표시되어야 하는데, 내 보안 창에는 '아니오'가 선명하게 찍혀있었다. 다행히도 수정할 수 있는 옵션이었기 때문에, RDS를 새로 만들지 않아도 되었다.
퍼블릭 액세스를 가능한 상태로 만들고 나서야 MySQL에 정상적으로 연결할 수 있었다. 인스턴스 세팅한다고 git bash와 MongoDB 가지고 한참 끙끙 거렸던 것에 비하면 무난하게 해결되어 기쁘다....
'[Node.js_6기 본캠프 TIL]' 카테고리의 다른 글
CH 3 아이템 시뮬레이터 과제 - 트러블슈팅 0910 (1) | 2024.09.10 |
---|---|
CH 3 아이템 시뮬레이터 과제 - 트러블슈팅 0909 (0) | 2024.09.09 |
[프로그래머스] 푸드 파이트 대회(JavaScript) (1) | 2024.09.05 |
[Node.js] 미들웨어와 라이브러리 훑어보기 (0) | 2024.09.04 |
[알고리즘 코드카타] 두 개 뽑아서 더하기(JavaScript) (0) | 2024.09.03 |