AWS RDS 로컬 연결

이정기·2023년 6월 8일
0

TIL

목록 보기
70/71
post-thumbnail

레포지토리 및 데이터베이스 재연동

리펙토링을 마무리하고 회고록을 작성 중 데이터베이스 연결 문제로 주춤했다.

데이터베이스는 팀원껄 썼는데, 리펙토링을 마무리 하니 말도 없이 데이터베이스 연결을 끊었다.

리펙토링이 먼저라 생각했기 때문에, 팀원 데이터베이스와 레포지토리에서 작업하고 있었어서 언젠간 이런 날이 올줄 알았지만, 예고도 없이 이런 일이 벌어져 얼른 해결해야 했다.

레포지토리 부분에선 프론트엔드를 공부하는 선우에게 도움을 받았다.

레포지토리 fork 및 remote

  1. 현재 사용하고 있는 레포지토리 이름을 바꾼다.
git remote rename origin upstream
  1. 내 레포지토리와 연결한다.
git remote add origin git@github.com:wjdrl3122/chicken-project_team2.git
  1. 전에 레포지토리에 있는 데이터를 가져온다.
git fetch upstream

그 후 remote 이름에 따라 pull , push 를 진행해주면 된다. 이런식으로 작업하면, 내 레포지토리와 상대 레포지토리가 연결되어 내 레포지토리에 pull 을 하면, 다른 레포지토리에도 리퀘스트 요청이 간다.


AWS RDS 로컬 연결

그리고 3일동안 앓았던 데이터베이스 연결을 마침 해내서 같이 정리한다.

내가 했던 작업은 AWS RDS 를 로컬에서 접속하고 싶었다.

너무 오랜만에 콘솔을 켜서 그런가 내 데이터베이스도 찾을 수 없었다.
해당 문제는 리전을 옳바르게 설정하지 않은 문제였다.

내가 예전에 만든 DB 인스턴스를 찾은 후, 엔포인트, 포트번호, ID, 비밀번호, DB 이름을 들고 디비버에 연결 했지만, 오류가 났다.

오류 내용으로 처음은 데이터베이스 이름을 찾을 수 없다는 내용이였고,
두번째는, "Connection timed out" 이 날 괴롭혔다.

첫 번째, 오류내용은 예전에 만들어둔 DB인스턴스 였기 때문에, DB 엔진 버전이 맞지 않았다. 그래서 최신버전으로 올려주었다.(해당 버전 변경은 나중에 다시 문제가 터진다.)

그 후 중요한 설정

  • 퍼블릭 엑세스를 가능으로 만들어주는 것
  • EC2 는 로컬에 연결할 것이기 때문에 연결하지 않아도 된다는 것
  • 인바운드 규칙을 공용으로 설정해 주는 것(내 아이피만 따로 설정도 가능)
    (인바운드 규칙, 아웃바운드 규칙이란 가상 방화벽이라 생각하면 된다.)
  • 엔포인트, 포트번호, ID, 비밀번호, DB 이름 재확인
  • 로컬에 설치한 MySQL 버전과 RDS DB 엔진의 버전 일치 여부 확인

위에 모든 작업을 찾고 설정했지만 여전히 "Connection timed out" 에러가 났다.

그 후 은인같은 블로그를 만나 해결할 수 있었는데, RDS 서브넷이 private 인걸 public 으로 바꾸어주면 해결됐다.

이 작업에서 RDS 안에 VPC 안으로 들어가 인바운드 규칙만 바꿔주면 해결될 것이 아니라, VPC 자체에도 공용으로 바꿔주는 설정이 있다는 것을 배웠다.

profile
Node.js 로 꿈을 꾸었다..

0개의 댓글