Skip to content
Seongbeen Kim edited this page May 21, 2021 · 2 revisions

1. RDS란?

  • 간단하게 설명하자면, RDS는 AWS에서 지원하는 클라우드 기반 관계형 데이터베이스이다. 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같이 잦은 운영 작업을 자동화하여 개발자가 개발에 집중할 수 있게 지원하는 서비스이다.

1. RDS를 사용하는 이유?

  • 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같이 잦은 운영 작업을 자동화하여 개발에 집중 가능
  • 조정 가능한 용량
    • 초과하는 양의 데이터가 쌓여도 비용만 낸다면 정상적으로 서비스 가능

2. RDS 인스턴스 생성

  • 프리 티어 요금부과되지 않게 Mysql 설치

1. 데이터베이스 생성

rds create

2. 데이터베이스 엔진 유형 선택

  • 원하는 DB엔진 설정

    rds engine

3. Mysql 버전 선택

  • 원하는 Mysql 버전 선택

    rds mysql version

4. 템플릿 선택

  • 프리 티어 선택

    rds template

5. 설정

  • 아래에 빨간색 표시로 되어 있는 곳 작성

    rds db configuration

6. DB 인스턴스 크기

  • 위의 4. 템플릿 에서 프리티어할 경우 자동으로 설정이 되어 있으며, 다른 클래스 선택 불가

    rds instance class

7. 스토리지

  • 스토리지 자동 조정 기능은 프리티어라도 요금이 발생할 수 있다. 따라서, 반드시 해제해줘야 한다.

    rds storage

8. 가용성 및 내구성

  • 해당 기능도 요금이 발생할 수 있지만, 프리 티어일 경우 대기 인스턴스 생성하지 않도록 디폴트로 설정되어 있으므로 넘어가면 된다.

    rds az

9. 인스턴스 생성 완료

  • 퍼블릭 액세스 기능로 해준 이유는 다른 VPC의 EC2에서 접근이 가능하도록 해주기 위해서이다.
    • VPC 피어링 방법도 있지만, 요금이 발생할 수도 있다고하여 이와 같이 설정해주었다.
  • 동일한 VPC 내에 있는 EC2에 접속하게 할 경우에는 아니오 를 선택하고 기존 VPC 보안 그룹을 선택해주면 된다.

rds connect

10. 데이터베이스 인증

  • 원하는 옵션을 선택한다.

    rds verification

11. 추가 구성

  • 자동 백업 활성화 기능은 프리티어라도 요금이 발생할 수 있다. 따라서, 반드시 해제해줘야 한다.

    rds addiitional configuration

    rds addiitional configuration2

3 4. RDS 설정

1. 파라미터 그룹 생성

  • 파라미터 그룹 생성 버튼 클릭 및 그룹 이름 작성

    rds parameter create button rds parameter create

2. 파라미터 편집

  1. 시간대(time_zone) 설정

    • time_zome 검색 후 Asia/Seoul 설정

      rds timezone
  2. 문자열 집합(Character set) utf8mb4 설정

    • 5.6~ 5.7 까지는 디폴트 latin1

      • 8.0.1 부터 디폴트 latin1 에서 utf8mb4 로 변경됨 (현재 8.0.11 버전이기 때문에 해당 과정은 넘어가도 된다.)
    • utf8mb4 으로 변경해주는 이유는 Emoji도 사용하기 위해서이다. Emoji를 사용하지 않을 경우애는 utf8 로 변경해주면 된다.

    • character 검색 후 6개의 모든 항목 utf8mb4 로 설정해주면 된다.

      • character_set_client
      • character_set_connection
      • character_set_database
      • character_set_filesystem
      • character_set_results
      • character_set_server
      rds character set
  3. 문자 간 정렬(Collation) utf8mb4_general_ci 설정

    • 5.6 ~ 5.7 까지는 디폴트 utf8mb4_general_ci
      • 8.0.1 부터 디폴트 utf8mb4_general_ci 에서 utf8mb4_0900_ai_ci 로 변경 (현재 8.0.11 버전이기 때문에 해당 과정 적용 필요)
    • Collation 검색 후 아래 항목들 utf8mb4_general_ci 로 설정
      • collation_connection

      • collation_database

        rds collation connect

        rds collation server

3. 파라미터 적용

  1. 데이터베이스 수정 버튼 클릭

    rds modify
  2. 데이터베이스 옵션 - DB 파라미터 그룹 에서 생성한 파라미터 그룹 설정 및 계속 버튼 클릭

    rds db parameter change
  3. 수정 예약에서 즉시 적용DB 인스턴스 수정 버튼 클릭

    rds modification async apply
    • 즉시 적용을 하더라도 반영이 되지 않을 경우가 있는데 그럴 경우에는 재부팅을 해주면 된다.

4. RDS 접속

1. mysql 접속

  • mysql -h 엔드포인트 주소 -u 마스터아이디 -p

    rds endpoint

    rds mysql login

2. 파라미터 그룹에서 설정한 값 확인

  1. 시간대

    • SHOW VARIABLES WHERE VARIABLE_NAME LIKE 'time%';

      rds mysql time

  2. Character set, Collation

  • SHOW VARIABLES WHERE VARIABLE_NAME LIKE 'c%'
    • collation_connection, collation_databaseutf8mb4_general_ci로 되어있지 않고, default로 되어있기 때문에 쿼리를 통해 변경을 해줘야 한다.

      rds mysql parameter group

    • ALTER DATABASE 데이터베이스명 CHARACTER SET = 'utf8mb4' COLLATE = 'utf8mb4_general_ci'; 입력

      • 그래도 안될 경우 set 'Variable_name' = utf8mb4_general_ci

      rds mysql parameter group2

참조

AWS 프리 티어가 적용되는 Amazon RDS 데이터베이스 인스턴스를 시작하려면 어떻게 해야 합니까?

MySQL Character Set 과 utf8mb4

Charset and Collation Settings Impact on MySQL Performance

MySQL 8 의 character set 과 collation 변경 사항

AWS RDS 에서 MySql 한글 및 이모지 처리 (utf8, utf8mb4)

[AWS] RDS 인스턴스 생성 및 외부 접속

Clone this wiki locally