전용 로그 볼륨(DLV) 사용 - Amazon Relational Database Service

전용 로그 볼륨(DLV) 사용

프로비저닝된 IOPS(PIOPS) 스토리지를 사용하는 DB 인스턴스 전용 로그 볼륨(DLV)을 사용할 수 있습니다. DLV는 PostgreSQL 데이터베이스 트랜잭션 로그 및 MySQL/MariaDB의 재실행 로그와 바이너리 로그를 데이터베이스 표가 들어 있는 볼륨과 분리된 스토리지 볼륨으로 옮깁니다. DLV는 트랜잭션 쓰기 로깅을 보다 효율적이고 일관되게 만듭니다. DLV는 할당된 스토리지가 크고 초당 I/O(IOPS) 요구 사항이 높거나 지연 시간에 민감한 워크로드가 있는 데이터베이스에 적합합니다.

DLV는 PIOPS 스토리지(io1 및 io2 Block Express)에 지원되며 1,000GiB의 고정 크기와 프로비저닝된 IOPS 3,000으로 생성됩니다.

Amazon RDS는 다음 버전의 경우 모든 AWS 리전에서 DLV를 지원합니다.

  • MariaDB 10.6.7 이상의 10 버전

  • MySQL 8.0.28 이상의 8 버전

  • PostgreSQL 13.10 이상의 13버전, 14.7 이상의 14 버전, 15.2 이상의 15 버전

RDS는 다중 AZ 배포와 함께 DLV를 지원합니다. 다중 AZ 인스턴스를 수정하거나 생성하면 기본 인스턴스와 보조 인스턴스 모두에 대해 DLV가 생성됩니다.

RDS는 읽기 전용 복제본이 있는 DLV를 지원합니다. 기본 DB 인스턴스에 DLV가 활성화되어 있는 경우 DLV를 활성화한 후 생성되는 모든 읽기 전용 복제본에도 DLV가 포함됩니다. DLV로 전환하기 전에 생성된 읽기 전용 복제본에는 명시적으로 수정하지 않는 한 DLV가 활성화되지 않습니다. DLV가 활성화되기 전에 기본 인스턴스에 연결된 모든 읽기 전용 복제본도 DLV를 사용하도록 수동으로 수정하는 것이 좋습니다.

참고

5TiB 이상의 데이터베이스 구성에는 전용 로그 볼륨을 사용하는 것이 좋습니다.

각 데이터베이스 엔진에 사용할 수 있는 할당된 스토리지, 프로비저닝된 IOPS, 스토리지 처리량(throughput) 범위에 대한 자세한 내용은 프로비저닝된 IOPS SSD 스토리지 섹션을 참조하세요.

DLV 활성화 및 비활성화 시 고려 사항

DLV 활성화 및 비활성화 시 시간이 많이 걸리고 가동 중지가 발생할 수 있습니다. 이 프로세스에는 활성화한 경우 모든 트랜잭션 로그 또는 다시 실행 및 이진수 로그(데이터베이스 엔진에 따라 다름)를 새 볼륨에 복사하고, 비활성화할 때는 원래 스토리지로 다시 복사하는 작업이 포함됩니다. 이 작업 기간은 다음과 같은 여러 요인의 영향을 받습니다.

  • 트랜잭션 로그 수:

    • 데이터베이스가 크고 트랜잭션이 많을수록 로그가 더 많이 생성되므로, 복사에 더 많은 시간이 걸립니다.

    • 복제 슬롯이 비활성 상태이거나 복제가 지연되는 경우 기본 DB 인스턴스에 트랜잭션 로그가 누적되어 복사에 필요한 시간이 늘어날 수 있습니다. 복제가 최신인지 확인하고 불필요한 슬롯은 모두 제거하세요.

  • 스토리지 구성:

    • DB 인스턴스 EBS 대역폭 - 대역폭이 높을수록 데이터 전송 속도가 빨라집니다.

    • 프로비저닝된 IOPS 수 - 초당 입출력 작업 처리량(IOPS)이 증가하면 복사 프로세스의 속도를 높일 수 있습니다.

  • 데이터베이스 활동 - 구성 중 데이터베이스 활동 수준이 활발하면 프로세스 속도가 느려질 수 있습니다.

가동 중지를 최소화하려면 작업량이 적은 기간이나 유지 관리 기간에 계획을 세우고 일정을 잡는 것이 좋습니다.

DB 인스턴스를 생성할 때 DLV 활성화

AWS Management Console, AWS CLI 또는 RDS API를 사용하여 DLV가 활성화된 DB 인스턴스를 만들 수 있습니다.

새로운 DB 인스턴스에서 DLV를 활성화하는 방법
  1. https://console.aws.amazon.com/rds/에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다.

  2. 데이터베이스 생성을 선택합니다.

  3. DB 인스턴스 생성 페이지에서 DLV를 지원하는 DB 엔진을 선택합니다.

  4. 스토리지에서 다음을 수행합니다.

    1. 프로비저닝된 IOPS SSD(io1) 또는 프로비저닝된 IOPS SSD(io2)를 선택합니다.

    2. 할당된 스토리지와 원하는 프로비저닝된 IOPS를 입력합니다.

    3. 전용 로그 볼륨을 확장하고 전용 로그 볼륨 켜기를 선택합니다.

    새로운 DB 인스턴스에서 DLV 활성화.
  5. 복제본에 필요에 따라 다른 설정을 선택합니다.

  6. 데이터베이스 생성를 선택합니다.

데이터베이스가 생성되면 데이터베이스 세부 정보 페이지의 구성 탭에 전용 로그 볼륨 값이 나타납니다.

프로비저닝된 IOPS 스토리지를 사용하는 DB 인스턴스를 생성할 때 DLV를 활성화하려면 create-db-instance AWS CLI 명령을 사용합니다. 다음 파라미터를 설정합니다.

  • --dedicated-log-volume - 전용 로그 볼륨을 활성화합니다.

  • --storage-type - 프로비저닝된 IOPS의 경우 io1 또는 io2로 설정합니다.

  • --allocated-storage - DB 인스턴스에 할당할 스토리지 크기(GiB)입니다.

  • --iops - DB 인스턴스에 대해 설정하는 프로비저닝된 IOPS의 크기이며, 초당 I/O 작업 수로 표현됩니다.

프로비저닝된 IOPS 스토리지를 사용하는 DB 인스턴스를 생성할 때 DLV를 활성화하려면 CreateDBInstance Amazon RDS API 작업을 사용합니다. 다음 파라미터를 설정합니다.

  • DedicatedLogVolume - 전용 로그 볼륨을 활성화하려면 true로 설정합니다.

  • StorageType - 프로비저닝된 IOPS의 경우 io1 또는 io2로 설정합니다.

  • AllocatedStorage - DB 인스턴스에 할당할 스토리지 크기(GiB)입니다.

  • Iops - DB 인스턴스에 대해 설정하는 IOPS 속도이며, 초당 I/O 작업 수로 표현됩니다.

기존 DB 인스턴스에서 DLV 활성화

AWS Management Console, AWS CLI 또는 RDS API를 사용하여 DLV를 활성화하도록 DB 인스턴스를 수정할 수 있습니다.

DB 인스턴스의 DLV 설정을 수정한 후에는 DB 인스턴스를 재부팅해야 합니다.

기존 DB 인스턴스에서 DLV를 활성화하는 방법
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 데이터베이스를 선택합니다.

    DB 인스턴스의 목록을 필터링하려면 Filter databases(데이터베이스 필터링)에 Amazon RDS가 결과를 필터하는 데 사용할 텍스트 문자열을 입력합니다. 이름이 해당 문자열을 포함하는 DB 인스턴스만 표시됩니다.

  3. 수정하려는 프로비저닝된 IOPS 스토리지가 있는 DB 인스턴스를 선택합니다.

  4. 수정을 선택합니다.

  5. DB 인스턴스 수정 페이지에서 다음을 수행합니다.

    1. 스토리지에서 전용 로그 볼륨을 확장하고 전용 로그 볼륨 켜기를 선택합니다.

  6. 계속을 선택합니다.

  7. DB 인스턴스에 대한 변경 사항을 즉시 적용하려면 즉시 적용을 선택합니다. 또는 Apply during the next scheduled maintenance window(예약된 다음 유지 관리 기간에 적용)를 선택하여 다음 유지 관리 기간에 변경 사항을 적용합니다.

  8. 변경될 파라미터를 검토하고 Modify DB instance(DB 인스턴스 수정)를 선택하여 수정을 완료합니다.

데이터베이스 세부 정보 페이지의 구성 탭에 새로운 전용 로그 볼륨 값이 나타납니다.

프로비저닝된 IOPS 스토리지를 사용하는 기존 DB 인스턴스에서 DLV를 활성화 또는 비활성화하려면 AWS CLI 명령인 modify-db-instance를 사용합니다. 다음 파라미터를 설정합니다.

  • --dedicated-log-volume - 전용 로그 볼륨을 활성화합니다.

    전용 로그 볼륨을 비활성화하려면 --no-dedicated-log-volume(기본값)을 사용합니다.

  • --apply-immediately - --apply-immediately를 사용하면 변경 사항이 즉시 적용됩니다.

    다음 유지 관리 기간에 변경 사항을 적용하려면 --no-apply-immediately(기본값)을 사용합니다.

프로비저닝된 IOPS 스토리지를 사용하는 기존 DB 인스턴스에서 DLV를 활성화 또는 비활성화하려면 Amazon RDS API 작업인 ModifyDBInstance를 사용합니다. 다음 파라미터를 설정합니다.

  • DedicatedLogVolume - 전용 로그 볼륨을 활성화하려면 이 옵션을 true로 설정합니다.

    전용 로그 볼륨을 비활성화하려면 이 옵션을 false로 설정합니다. 이것이 기본값입니다.

  • ApplyImmediately - 이 옵션을 True로 설정하면 변경 사항이 즉시 적용됩니다.

    다음 유지 관리 기간에 변경 사항을 적용하려면 이 옵션을 False(기본값)로 설정합니다.

DLV 스토리지 모니터링

CloudWatch의 FreeStorageSpaceLogVolume 지표를 사용하여 DLV 스토리지 사용량을 모니터링할 수 있습니다.

RDS for PostgreSQL에 대한 다음 쿼리를 사용하여 트랜잭션 로그가 차지하는 크기를 찾아볼 수 있습니다.

SELECT pg_size_pretty(COALESCE(sum(size), 0)) AS total_wal_generated_size FROM pg_catalog.pg_ls_waldir();

DLV의 스토리지가 부족하면 DB 인스턴스가 storage-full 상태로 전환되어 가동 중지가 발생합니다.