자바 & 스프링부트 서버 개발

AWS RDS 구축 - 타임존 설정 / 인코딩 방식

개발학생 2022. 9. 6. 19:44
반응형

 

*22년도 4월에 AWS 관리 콘솔에서 구축했던 RDS
 타임존을 고려하고, 한글이 안깨지도록 utf8로 인코딩

 

 

1. AWS 관리 콘솔 접속 후, 모든 서비스 → 데이터베이스 → RDS 선택

 

2. 데이터베이스 생성 클릭

 

3. 엔진-MySQL, 마스터 사용자 이름/암호, 스토리지-20GB로 설정 후 데이터베이스 생성

- 사용자/암호는 따로 설정해야 함

 

 

4. 데이터베이스가 생성되는 동안, ‘database-1’ → ‘연결/보안’ 탭에서 VPC 보안 그룹 ‘default’ 클릭

- 내 IP와 EC2에서 이 데이터베이스에 접속할 수 있도록 설정

- default 보안 그룹은 수정이 되지 않기 때문에 보안 그룹을 새로 생성해줘야 함

 

- EC2로 잠시 넘어가서 EC2의 보안 그룹을 복사(sg-0dc7e4fd67314812a)

 

- 다시 RDS 보안 그룹 생성으로 돌아와서, 인바운드 규칙을 추가하여 사용자 지정에 복사한 EC2 보안 그룹을 넣어줌

 

5. 아까 생성한 데이터베이스가 아직 default보안 그룹과 연결되어 있으므로,
    새로 만든 보안 그룹으로 연결을 바꿔줌

→ RDS에서 database-1을 선택하고 ‘수정’ 클릭, ‘연결’ 폼에서 보안그룹을 수정하고 ‘즉시 적용’ 선택 후 ‘DB 인스턴스 수정’ 클릭

 

6. DataGrip을 이용한 AWS RDS 연결

- database-1의 보안 그룹이 잘 변경된 걸 확인하고, database-1의 ‘엔드포인트’를 복사

 

- Datagrip에서 FIle -> new -> Data Source -> MySQL순으로 버튼을 클릭

- Host에 복사한 엔드포인트를 붙여넣기하고, user과 Password는 RDS 마스터 계정의 이름과 비밀번호를 입력.
  → Test connection을 눌러 Succeeded 가 뜨면 정상적으로 접속한 것

 

- 따란~ 에러가 났다. 검색해보니 MySQL을 실행하지 않고 있었다.
  실행했는데도 안됐는데, https://three-pleasure.tistory.com/151에서 드라이버를 Amazon Auora로 바꾸라고 했다. 그래도 안된다..

 

- 오류 해결이 안 되서 삭제 후 새로운 DB를 생성했음. 다음과 같이 퍼블릭 액세스를 ‘예’로 설정했고 ubuntu 환경에서 mysql 권한설정을 마침
  인바운드 규칙도 수정함(내 아이피가 아닌곳에서도 접속 가능하게)

 

- 그래도 해결되지 않아서 삽질하다가, 블로그 내용에서 ‘서브넷 그룹’을 EC2의 서브넷 그룹과 똑같이 설정하라고 해서 진행했다.   https://a3magic3pocket.github.io/posts/aws-rds-allow-ec2/ https://ndb796.tistory.com/226 RDS의 데이터베이스 탭에서 만든 DB를 선택하
  고 ‘수정’을 누른 후, 퍼블릭 엑세스 비허용 체크. 서브넷 그룹 탭에서 서브넷 그룹을 새로 생성하고,
  서브넷 그룹 변경 후 다시 퍼블릭 엑세스 허용..... 을 해도 안됐다    
  https://aws.amazon.com/ko/premiumsupport/knowledge-center/rds-move-to-private-subnet/

 

- https://bcp0109.tistory.com/357 이번엔 비교적 최근 글을 참고해서 처음부터 다시 만들어봤다. 안된다..

 

- 원인: Database 부분에 아직 이곳에는 없는 instancemia 데이터베이스가 적혀있어서 안되는거였다.... 

 

7. 타임존, 인코딩 설정

- 인코딩의 경우, RDS 창의 ‘파라미터 그룹’에서 파라미터를 추가해야 한다.
  블로그 내용대로 ‘character’, ‘collation’이 들어간 부분 중 수정 가능한 부분을 다음과 같이 utf8, utf8_general_ci로 바꿔주었다.

 

- 타임존은, 아까의 파라미터 그룹에서 time_zone을 검색해서 “Asia/Seoul”로 바꿔준다.

 

- ‘데이터베이스 -> 수정 -> 추가 구성’으로 들어가서 파라미터 그룹을 변경

 

8. 타임존/인코딩 적용 확인

- 데이터베이스를 리부팅해주고, DataGrip으로 RDS 접속하여 확인

 

- 정상적으로 잘 변경됨! (시간-select now(); 인코딩-show variables like ‘c%’;)

반응형