티스토리 뷰

개요

  • 요즘 새로 시작하는 스타트업 기업은 대부분 Amazon Aurora를 이용하여 데이터베이스를 구축한다. 백업과 스냅샷 관리, 버전업 관리가 매우 편리하기 때문이다. 숙련된 개발자가 있다면 별도의 인프라 엔지니어나 DBA가 존재하지 않아도 데이터베이스 관리가 가능하다. 이번 글에서는 Amazon Aurora에서 MySQL 엔진 기반의 데이터베이스를 생성하는 방법을 설명하고자 한다.

파라미터 그룹 생성

  • 모든 Amazon Aurora 인스턴스는 파라미터 그룹 설정을 필요로 한다. 보안과 관리적인 측면에서 편집이 불가능한 기본 제공되는 파라미터를 그대로 사용하기 보다는, 데이터베이스 단위로 독립적인 파라미터 그룹을 생성할 것을 추천한다. 생성 방법은 아래와 같다.
Amazon RDS 콘솔 페이지 접속 → [파라미터 그룹] 클릭 → [파라미터 그룹 생성] 클릭
→ 파라미터 그룹 패밀리: aurora5.6
→ 유형: DB Cluster Parameter Group/DB Parameter Group
→ 그룹 이름: some-db-dev
→ 설명: some-db-dev

파라미터 그룹 편집

  • 앞서 생성한 파라미터 그룹을 편집할 차례이다. 편집 방법은 아래와 같다.
Amazon RDS 콘솔 페이지 접속 → [파라미터 그룹] 클릭 → 편집할 파라미터 그룹 이름 클릭
→ [파라미터 편집] 클릭 → 수정할 파라미터 값 입력 후 [변경 사항 저장] 클릭
  • 데이터베이스 초기 구성시 일반적으로 설정하는 파라미터는 아래와 같다. 아래는 디비 클러스터 파리미터 그룹이다. 어떤 것은 중단 없이 즉시 적용이 가능하고, 어떤 것은 인스턴스 재부팅을 필요로 한다.
# 기본 타임존
time_zone = UTC → Asia/Seoul (즉시 적용)

log_bin_trust_function_creators = 0 → 1 (즉시 적용)

# 슬로우 쿼리 기록 활성화 여부
slow_query_log = 0 → 1 (즉시 적용)

# 슬로우 쿼리로 취급할 최소 실행 시간(초)
long_query_time = 10 → 1 (즉시 적용)

# 인덱스 미사용 쿼리를 슬로우 쿼리로 취급하여 기록 활성화 여부
log_queries_not_using_indexes = 0 → 1 (즉시 적용)

# 슬로우 쿼리 기록 방법
# TABLE: mysql.slow_log 테이블에 기록
# FILE: slowquery/mysql-slowquery.log 파일에 기록
log_output = TABLE (즉시 적용)

# 퍼포먼스 스키마 활성화 여부
performance_schema = 0 -> 1 (재부팅 필요)
  • Amazon Aurora의 기본 타임존은 UTC이다. 이 경우, 애플리케이션에서 NOW() 함수 호출시 UTC 시간을 응답하여 상황에 따라 혼란을 초래할 수 있어 time_zone = Asia/Seoul로 설정이 필요하다.
  • log_bin_trust_function_creators = 1 설정은 일반 사용자에게 함수 및 트리거 생성 권한을 부여한다.
  • 어떤 파라미터들은 변경 사항 적용 후 인스턴스 상태가 파라메터 호환 장애(incompatible-parameter)로 전환되어 인스턴스가 교착 상태에 빠지기도 한다. 아래와 같이 이벤트를 잘 관찰하여 대응해야 한다. (이런 이유로 운영 인스턴스에 대한 파라미터 그룹 편집은 매우 신중히 접근해야 한다.)
Database instance put into incompatible-parameters. Please check your memory parameters, in particular the max_connections, innodb_buffer_pool_size, key_buffer_size, query_cache_size, tmp_table_size, innodb_additional_mem_pool_size and innodb_log_buffer_size. Modify the memory parameter and reboot the instance.

데이터베이스 생성

  • 사전에 VPC 보안 그룹, DB 클러스터 파리미터 그룹, DB 파라미터 그룹을 생성했다면 이제 최종적으로 데이터베이스를 생성할 차례이다. 생성 방법은 아래와 같다.
Amazon RDS 콘솔 페이지 접속 → [데이터베이스] 클릭 → [데이터베이스 생성] 클릭
→ 데이터베이스 생성 > 데이터베이스 생성 방식 선택: 표준 생성
→ 데이터베이스 생성 > 엔진 옵션: Amazon Aurora
→ 데이터베이스 생성 > 엔진 옵션 → 에디션: MySQL과 호환되는 Amazon Aurora
→ 데이터베이스 생성 > 엔진 옵션 → 버전: Aurora (MySQL)-5.6.10a
→ 데이터베이스 생성 > 엔진 옵션 → 데이터베이스 위치: 리전

→ 데이터베이스 기능: 단일 쓰기 및 다중 읽기
→ 템플릿: 프로덕션

→ 설정 → DB 클러스터 식별자: some-db-dev
→ 설정 → 마스터 사용자 이름: admin
→ 설정 → 마스터 암호: ********

→ DB 인스턴스 크기 → DB 인스턴스 클래스: db.r5.xlarge

→ 연결 → 퍼블릭 액세스 가능성: 예
→ 연결 → 기존 VPC 보안 그룹: (사전 생성한 보안 그룹)
→ 연결 → 데이터베이스 포트: 3306

→ 데이터베이스 인증 → 데이터베이스 인증 옵션 → 암호 인증

→ 추가 구성 → 데이터베이스 옵션 → DB 인스턴스 식별자: some-db-dev-1
→ 추가 구성 → 데이터베이스 옵션 → DB 클러스터 파라미터 그룹: (사전 생성한 클러스터 파라미터 그룹)
→ 추가 구성 → 데이터베이스 옵션 → DB 파라미터 그룹: (사전 생성한 파라미터 그룹)

→ [데이터베이스 생성] 클릭

생성된 데이터베이스 연결

  • 생성된 데이터베이스에는 온프라미스와 동일한 방법으로 로컬에서 원격 연결이 가능하다.
  • Windows 운영체제에서도 MySQL Shell을 이용하면 원격 쉘 연결이 가능하다. [다운로드 링크] 다른 방법으로 MySQL Workbench를 설치해도 mysql.exemysqldump.exe를 제공하여 사용할 수 있다. 이 방법을 추천한다. [다운로드 링크]
  • MySQL Workbench을 설치했다면 환경 변수의 PathC:\Program Files\MySQL\MySQL Workbench 8.0 CE 경로를 추가하면 어디에서도 편하게 mysqlmysqldump 명령어를 실행할 수 있다. 실행 방법은 아래와 같다.
# 작업을 수행할 로컬(또는 원격)에서 원본 디비 연결 확인
$ mysql -P 3306 -h {source_db_host} -u {username} -p
Enter password: *****

온프라미스로부터 데이터베이스 이전

  • 온프라스미스로부터 데이터베이스를 이전하는 방법은 여러 옵션이 가능하다. 본 블로그의 이 글을 참고한다.

참고 글

댓글
댓글쓰기 폼