gi_dor

AWS RDS 데이터베이스 만들기 , 설정 , 연결 본문

AWS/CI CD

AWS RDS 데이터베이스 만들기 , 설정 , 연결

기돌 2024. 6. 9. 20:01
728x90

RDS ? 

  • AWS 에서 제공하는 클라우드 기반의 관계형 데이터 베이스 서비스
    • 클라우드 기반 서비스를 사용하면 사용자는 자체적으로 서버를 구축하거나 유지 관리할 필요 없이 필요한 리소스를 인터넷을 통해 제공받을 수 있다
  • 서버 컴퓨터에 직접 MySQL 이나 MariaDB 같은 관계형 DB를 설치하지 않고 사용할 수 있다
    • import 해서 데이터를 넣으려면 MySQL이 필요하긴 하지 않은가 ?????

1. RDS 인스턴스 생성

MariaDB는 MySQL 기반이므로 MySQL과 유사한다고 한다 하지만 MySQL만 써봐서 MySQL을 사용했다 
그외 Amazon Aurora가 MySQL 보다 성능적으로 5배는 좋다고 한다

마스터 사용자의 이름과 , 마스터 암호로 DB에 접속해야한다

 

 

퍼블릭 액세스 - '예'
'아니요' 를 선택시 EC2에서만 DB에 접근이 가능해 개인 PC 에서 DB 접근이 불가능 하다고 한다

 

금액이 적혀 있는데 결제가 된다는건지
하단에  프리티어라서 일정 범위내에서는 무료라는건지 
아마 무료겠지 ? RDS 사용하고 , 이중화 까지하고 날려야겠다 무섭다

 

2. RDS 설정

  • RDS 생성시 필수 설정인 time_zone , Character set , Max Connection 등 설정하기

 

검색창 time_zone  , Asis/Seoul

허용된 값에 Asia/Seoul 이 있길래 적용된건가 ? 안된건가 ? 입력해야하나 ? 안해도되나 ? 고민 했었는데 그냥 입력하고 
저장했다

 

이제 반복이다

  • char 검색 →  6개의 파라미터가 보인다 utf8mb4
  • collation 검색 → 2개의 파라미터 collation_connection , collation_server  의 값을 utf8mb4_general_ci - 이모지 저장
  • max_connection 검색 → 블로그에서는 기본값을 사용했다는데 그 글에 프리티어는 약 60개 라길래 50 입력했다
  • lower_case_table_names 검색 → 값 1
    • 현재 1로 변경하면 DB 인스턴스에 파라미터 그룹 설정이안된다 그래서 DB에 테이블명이 소문자이고 쿼리에 
      대문자라면 해당 테이블을 찾을수 없어서 브라우저에서 SQL이 맛이갔다 
    • 쿼리 콘솔에 set을 이용하든 , 테이블에 직접 1을 입력을하든 읽기 전용이라면서 날 거부한다
      • 진짜 너무 화났음

    • 해결방법으로 해당 테이블을 전부 대문자로 변경했다
    • 로그인이 안되서 USER 관련 테이블 명 전부 대문자로

DB 인스턴스의 체크박스 체크 후 , 수정

생성한 파라미터 그룹을 데이터 베이스에 연결한다

🔸 위에서 언급한 lower case table name을 1로 변경해서
대소문자 구분 안하려고 설정한 DB 파라미터 그룹이다 보시다 싶이 날 거부한다

MySQL 8.0 DB 인스턴스에서는 lower_case_table_names의 파라미터 값을 변경할 수 없습니다.

라고 하는데 설치된 mysql workbench가 8.0인데 버전을 파라미터 그룹 버전을 낮춘다음 8버전 workbench에서 
접속해서 데이터를 import 할수 있을까 ?

유료 라고 대놓고 써있네 .. 다음에 알아보자..

 

3. 로컬 , 내컴퓨터에서 RDS  접속

 

RDS 보안 그룹 선택

체크 박스 선택시 하단에 인바운드 규칙을 볼수 있다

RDS 보안그룹 인바운드 규칙
내 IP와  EC2 인스턴스의 보안그룹 ID를  유형 MySQL로 등록

 

host name은 DB 인스턴스 이름 클릭시 상세페이지 에서 엔드포인트를 붙여넣기 하면된다

기존 MySQL에있는 데이터베이스를 Export 한 뒤에 MySQL RDS에 접속해 Import 한다

Asia/Seoul 은 적용이되었고 역시나 lower_case_table_name은 대소문자 구분을 못한다네

인텔리제이 또한 마찬가지로 똑같이 입력하면된다
역시나 대소문자 구분때문에 select * from user; 는 안되며 select * from USER; 만된다

 

아마 내일쯤 데이터베이스 2중화를 설정해보고 포폴에 추가 작성한다음 
포트폴리오에 새로 업데이트 할것 같다.

그 후에 EC2 인스턴스에 대한건 만들어뒀으니 배포관련 글을 찾아서 적용하는데 꽤 오랜 시간이 걸릴것 같다

배포하는데 RDS 가 필요없다면 삭제할 예정이다

 

배포 연습 중 잘안되서 전부 삭제하고 만드는 도중 MySQL 5버전으로해서 lower case name을 사용하려했다
비용을 보고 다시 지우고 8버전 쓰고 테이블 명 전부 대문자로 바꿔야지 ^^;

728x90