본문 바로가기
주니어에서 시니어로/개발일기

[사이드 프로젝트] 웹사이트 배포까지 #1_AWS DB 생성해 접속하기

by 펜네임 2023. 1. 7.

🎃지금 뭐하고 있는지

다른 개발자 한 분과 사이드 프로젝트 팀을 만들어 웹사이트 만들기를 진행하고 있다.

가까운 지인이 운영하는 여행사 사이트를 무료로 만들어 드리기로 했다.

사실 보수 없이 제작하기로 했다는 결정이 의아할 수도 있고 개인적으로 고민했던 부분이기도 한데, 어디까지나 본업과 별개인 사이드 프로젝트라 시간을 넉넉히 가지고 싶다는 점과 설계/개발 단계에서 고객 요구에 갇히지 않고 자유롭게 개발해보고 싶다는 점, 실제 서비스할 웹사이트를 소규모 팀으로 배포까지 해볼 수 있다는 점을 고려해 결정했다.

 

 

사용 언어는?

Java, JS(일단 Vanilla), Spring Framework

 

 


 

🎃 오늘 할 일은?

함께 작업할 DB 서버 생성 후 접속!

- 사실 이전까지 팀원과 나 두 사람 중 한 사람의 개인 PC를 DB서버로 이용할 계획이었다. 사용할 용량이 크지 않으니까... 나머지 한 명은 그 DB에 접속만 하면 되지 않을까 한 것인데.

 

- 같은 접속 정보로 클라이언트 PC 쪽에서 항상 접속에 실패함. 방화벽은 열어두고, 서비스를 멈췄다 시작해가며 리스너 설정도 바꿔보고, 오라클이 아닌 MySQL을 사용해보기도 했지만 여전히 안 됨. 그러면 함께 작업할 DB 서버는 어떻게 해야 하지?

 

- 같이 모각공 하는 개발자 지인에게 물어보니 본인은 비슷한 상황에서 git처럼 DB revision을 쉽게 관리할 수 있는 라이브러리를 썼다고 했다. 그런데 JPA가 세팅돼 있어야 한다고. JPA에 대해 더 알아봤는데, 테이블을 JAVA의 객체로 만들어 관계 설정을 하는 거라고 한다. 심지어 사용 DB에 종속적이지도 않고, JAVA 문법을 사용할 수 있는 부분도 있다고! 엄청 흥미롭고 잘 사용하면 편할 것 같지만 ORM과 업무 특성을 고려해 객체-테이블 관계 설계하는 일이 오래 걸릴 것 같았다. 이미 미뤄진 일정을 더 미루기 어려우니 JPA 적용은 다른 기회에 해보기로 했다.

 

 


 

🎃 진행과정

🎫 클라우드 DB를 이용해 보기로 했다.

오라클 클라우드는 회원가입부터 복잡다난했다.

무료 계정을 만들려는데 1차 시도에는 내가 주소지를 잘못 입력해서 처음부터 다시.

2차 시도에는 '무료로 시작하기' 버튼을 누르니 무한 로딩 되기에 라이브챗으로 질문했다.

1) 브라우저 문제일 수도 있고, 2) 이메일 계정을 다른 걸로 쓰거나 3) 몇 시간 후에 다시 시도해보라는 답변이 왔다. 

 

(╯°□°)╯︵ ┻━┻

 

AWS 너밖에 없다. AWS 클라우드 회원가입을 진행했다.

방식은 비슷했지만 좀 더 직관적이었고 무사히 가입됐다.

 

noSQL과 RDS(관계형 데이터베이스) 중 골라 쓸 수 있는데

일정을 더 늦추고 싶지 않아 더 익숙한 쪽인 RDS를 택했다.

 

 

🎫 DB 생성 

 

 

잘 보고 리전(region)은 서울, 인스턴스 크기는 프리 티어를 선택해 만들었다. 

운영서버 데이터도 많지 않기 때문에 개발엔 20GB면 충분하다!

무료로 쓰고 싶으니 혹시나 데이터가 잘못 들어가지 않도록 주의해야겠다.

 

DB 생성에는 몇분 정도가 걸렸다.

 

 

🎫 클라이언트에서 DB 접속하기

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.Scenarios.html#USER_VPC.Scenario4

 

접속은 위의 그림처럼 이루어질 예정이다!

아래 링크의 사용자 가이드를 따라간다.

 

 

Creating a MySQL DB instance and connecting to a database on a MySQL DB instance - Amazon Relational Database Service

Creating a MySQL DB instance and connecting to a database on a MySQL DB instance The easiest way to create a DB instance is to use the AWS Management Console. After you create the DB instance, you can use standard MySQL utilities such as MySQL Workbench to

docs.aws.amazon.com

 

 


 

 

 

퍼블릭 액세스가 가능하도록 DB 인스턴스의 추가 구성을 변경해준다.

그래야 DB 인스턴스에 ip가 할당된다.

 

 

사용자 가이드에는 VPC(Virtual Private Cloud)의 보안그룹을 먼저 만든 다음 DB 인스턴스 생성 시 만들어둔 보안그룹을 선택하라고 한다. 하지만 이미 기본 설정으로 만들어서 디폴트 보안그룹이 적용된 상태다.

 

새 그룹을 생성하고 인바운드 규칙을 추가해 액세스를 허용해본다.

접속할 기기(IP)마다 추가해준다.

 

 

DB 설정에서 새로 만든 보안 그룹을 넣어준다. 다중선택도 가능하지만 디폴트 그룹은 뺐다.

완전히 수정되기까지는 1-2분이 걸렸다.

 

 

여기까지 왔으니 설정은 끝났다.

긴장되는 접속 테스트의 순간...

 

데이터베이스 정보를 보며 아래와 같이 입력해준다.

Hostname : <엔드포인트>

Username : <마스터 사용자 이름>

Password : <마스터 사용자 비밀번호>

 

성공했습니다 어머니...

 

길고 길었던 DB 접속 노력의 결실... 오늘 하루가 끝나기 전에 볼 수 있었다.

11월 13일부터 이걸 붙잡고 끙끙댔으니 약 2달만이다. 감동적이다.ㅠㅠ

 

쿼리도 잘 돈다!

 

PC로도 잘 접속되나 확인하고 내일은 팀원에게도 이 기쁜 소식을 알려야겠다...!!

 

 

 

 

 

참고사이트

https://banjubu.tistory.com/16

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_CommonTasks.Connect.html

 

Connecting to an Amazon RDS DB instance - Amazon Relational Database Service

Connecting to an Amazon RDS DB instance Before you can connect to a DB instance, you must create the DB instance. For information, see Creating an Amazon RDS DB instance. After Amazon RDS provisions your DB instance, use any standard client application or

docs.aws.amazon.com

 

댓글