AWS

AWS 데이터베이스 만들고(RDS) MySQL 활용하기

늦게 시작한 개발자 2023. 1. 5. 18:02

현재 팀프로젝트를 진행하고 있으며 이 방법을 찾는데만 약 6시간 정도 걸렸던 것 같다. 

아마 나처럼 안되는 사람들이 있어서 시간이 오래걸린 사람도 있을 것 같은데 이미지로 표기를 해가면서 설명을 해보도록 하겠다.

우선 AWS는 기본적으로 회원가입은 기본적으로 해둔다.

AWS자체가 새로운 컴퓨터라고 생각을 해두면 되는데 나만의 데이터베이스를 만들기 위해서 하는 것이기 때문에 어떠한 APP을 사용해야 하나 찾아본 결과 다양한 글들 중에서 RDS라는 것을 많이 활용하고 있었다.

 

나의 경우는 이미 만들어진 상황이기 때문에 실제로 만드는 시연 모습만 보여주고 수정문에서 활용을 할 것이다.

 

데이터베이스 생성

이미지를 순서대로 보면서 설명을 하도록 하겠다. 추가로 우리는 무료로 사용할 것이기 때문에 잊지말자.

1. 표준생성, MySQL 을 선택한다. 

다양한 데이터베이스 엔진들이 있는데 내가 현재 사용한 것은 MySQL이기 때문이다. 그리고 표준 생성을 선택한 이유는 손쉬운 생성시 잘못된 선택으로 요금이 발생될 수 있기 때문에 기본설정으로 한 것이다.

2. 버전 선택부분이 있는데 기본으로 진행하자.

그리고 템플릿 선택은 프리티어로 무료를 선택하자.

3. 설정 부분 여기가 중요한데 식별자 부분에 대해서는 크게 중요한 것은 없고 AWS에 대한 주소생성시 식별자가 표기된다고 보면 된다. 이것은 중요한게 아니다.

하지만 마스터 사용자 이름은 우리가 흔히 알고 있는 MySQL에서 'root'라는 것을 알 수 있는데 이것은 생성시 본인이 이미 MySQL이든 무엇이든 활용을 하고 있다면, 나중에 MySQL 워크벤치에 커넥트 할때 기존에 root라는 동일이름의 서버를 운영하고 있기 때문에 로그인 할 수 없다고 표시가 된다. 그렇기에 우리가 만들 마스터 사용자 이름은 본인이 잊어먹지 않을 이름으로 변경해서 한다. 참고로 나는 admin으로 진행을 했는데 root라는 이름과 겹치지 않기 때문이다.

참고로 여기서 의문인 점은 로컬의 root와 aws에서의 root는 다른 개념인데 왜 안되는지 참... 의문이 드는 부분이다.

비번은 본인이 만들면 되는 것이고.

4. 인스턴스 구성에서만 선택을 해줘야 하는데 db.t3.micro로 되어있는데 이것은 내가 잘 모르지만 다른 사람들은 죄다 db.t2.micro로 바꿔서 했다. 선택이 가능하다는 것은 무료니까 그것으로 변경해주면 될것 같다.

스토리지는 변경해줄 필요가 없다.

5. 만일 자신이 현재 EC2 컴퓨터링을 연결할 이유가 없다고 한다면 개인적으로 VPC를 새로 생성하는게 좋다고 보지만 나중에 연결을 할 것이라면 생성되어있는 연결할 VPC에 연동을 해주는게 좋다고 생각이 든다. 애초에 EC2에서 생성한게 있다면 VPC에 생성되어 있는 것을 확인할 수 있으며 본 필자는 아직 리소스 연결을 할 필요가 없기에 새로 VPC를 생성해서 진행을 하게 되었다.

퍼블릭 엑세스는 내용처럼 외부에서도 접속할 수 있도록 선택을 하는 부분이다. 일반적으로 대부분 예 선택을 많이하고 있다.

6. VPC보안 그룹의 경우는 아마 나중에 내가 좀더 많은 데이터베이스를 구동한다면 구릅별 선택이 있었는데 딱히 선택할 칸이 없어서 그냥 기존항목 즉 새로 생성될 VPC한줄로만 이어간다 생각하면 된다. 만일 새로 생성한다면 VPC라는 폴더 안에 새로운 VPC폴더가 생성된다고 보면 된다.

암호인증은 아까 생성한 비밀번호로 하면된다.

추가 구성이 보이는데 내가 이것때문에 애를 먹었었다. 포트를 설정하는 부분이 있는데 만일 내가 나중에 데이터베이스 하나를 더 AWS에 생성을 한다면 다른 번호로 입력을 하면된다.

로컬호스트-3306 과 AWS-3306은 아파트로 따지면 102동 1101호 와 103동 1101호 개념이라고 보면 된다.

7.모니터링 밑에 추가구성은 다른 구성인데 여기서는 DB파리미터 그룹을 선택하게 된다.

그전 초기 데이터베이스 이름은 내가 나중에 따로 생성할 필요없이 생성을 해주는 기능이다.

유튜브에서 확인을 해본 결과 파라미터 설정으로 UTF-8을 해줘야 하는데 이를 해주지 않는다면 데이터베이스가 한글을 읽지 못하기 때문이다. MySQL내에서는 자동으로 UTF-8이 잡히는데 AWS는 아직 불가능한 것인가 보더라.

만일 이미 파라미터를 설정한게 있다면 변경을 해주면 되고 그렇지 않으면 생성 후 수정으로 파라미터를 재 설정할 수 있다.

그리고 자동백업을 활성화 하는 것은 딱히 당장은 해줄 필요가 없다고 한다.

포트연결하기

1. 기존 생성된 DB식별자에서 내가 생성한 것을 클릭해 들어가보면 (참고로 생성을 하고 기다리는데 생각보다 시간이 5분정도 걸렸던 것 같다. 파란 글씨를 클릭해 들어가보면

2. 엔드포인트 및 포트는 나중에 로컬호스트 개념의 주소라고 보면된다. 원래는 공개를 하면 안되는 주소라고 생각해주면되며, 포트 3306도 제대로 되어 있다는 것을 알 수 있다. 여기서 우리가 수정을 해야하는 것은 VPC보안그룹의 활성된 것을 수정해줘야 한다. 참고로 위의 6번에서 그룹을 생성했다면 저곳에 두개가 표기 되는 것을 확인할 수 있다.

3. 데이터베이스만의 VPC가 생성되어 있는 것을 알 수 있다. 여기서 인바운드 규칙에서의 편집을 눌러준다.

4. 두가지가 표시되어 있는 것을 알 수 있는데 원래는 한개였다. 처음에 퍼블릭엑세스를 예라고 클릭해서 모든트레픽 유형이 되어 있는것 같은데 저거 하나만을 가지고 MySQL연결을 해보지는 않았지만 되는것 같은데 아무튼 다른 유튜버가 확정적으로 들어가기 위해서는 포트를 정확하게 3306 해주는게 좋다고 했다. 두번째가 만들어진 것이고 3번째는 여러분이 할 예정의 이미지라고 보면 된다. 괜히 3개 만들지 말고 첫번째와 두번째가 나오면 된다. 세번째가 두번째 만드는 방식이니까.

MySQL에서 확인해보기

솔직히 AWS내에서는 어떻게 하는지 모르기 때문에 터미널 기능이 보이지도 않고... 그래서 MySQL에서 연결이 되는 것으로 보이니 MySQL을 켜본다.

1. 현재 두개로 보이지만 기존에 있는 것을(혹은 처음인 사람은 아무것도 없다.) 제외한 서울 리퍼블릭은 없다고 생각해야한다. + 버튼을 클릭하자

2. 커넥트 네임은 아무거나 해도 된다.

호스트네임 여기가 AWS 데이터베이스 만들었을때 엔드포인트 및 포트 주소가 있는데 그것을 그대로 옮겨준다. 그리고 포트는 3306으로 만들었으니 그대로 해주면 되고(3306은 MySQL에서 사용하는 포트라고 한다. 뒷자리만 바꾸면 새로운 스키마라고 생각하면 된다.)

username은 생성당시 admin을 해주면 되고 store in 으로 패스워드 입력을 해준다.

하고 난뒤 test를 해보는데

테스트를 한 후 아래와 같은 successfully가 안뜨면 당신은 실패! 

왜 안되는지에 대해서 간단한 생각을 다시 해보자면, 내 개인 적인 생각이니 정답은 아니라는 것을 기억해라.

vpc에 3306을 확정적으로 주입시켜주었는지? 

유저네임과 비밀번호를 제대로 했는지

엔드포인트 및 포트 주소가 제대로 되었는지

aws에 데이터베이스가 제대로 실행가능중으로 되어 있는지

그거 외에는 안되는 이유는 아직 찾아보지는 않았다. 아니면 aws내에 이미 3306으로 된 데이터베이스가 있을지도?

이렇게 만들고 난 다음에 utf설정과 자바에 application부분 설정하는 것을 작성하도록 하겠다.

아 참고로 sys라는 데이터베이스가 같이 생성되어 있을텐데 절대 삭제하지 마라! 상관은 없다고 써있는것 같기는 한데 내가 해봣을때 필요없다 생각하고 삭제했는데 안되더라