RDS Optimized Writes for MySQL로 쓰기 성능 개선

RDS Optimized Writes for MySQL로 쓰기 성능 개선

AWS RDS 사용자 가이드의 이 페이지를 한국어로 설명합니다.

출처: 문서

본문

RDS Optimized Writes for MySQL을 사용하여 쓰기 트랜잭션의 성능을 개선할 수 있습니다. RDS for MySQL 데이터베이스가 RDS Optimized Writes를 사용하면 최대 두 배 높은 쓰기 트랜잭션 처리량을 달성할 수 있습니다.

항목
  • RDS Optimized Writes 개요
  • RDS Optimized Writes 사용
  • 기존 데이터베이스에서 RDS Optimized Writes 활성화
  • RDS Optimized Writes 제한 사항

RDS Optimized Writes 개요

RDS Optimized Writes를 켜면 RDS for MySQL 데이터베이스는 이중 쓰기 버퍼(doublewrite buffer) 없이도 데이터를 영구 스토리지로 플러시할 때 한 번만 쓰게 됩니다. 데이터베이스는 개선된 성능과 함께 안정적인 데이터베이스 트랜젝션을 위한 ACID 속성 보호를 계속 제공합니다.

MySQL과 같은 관계형 데이터베이스는 안정적인 데이터베이스 트랜잭션을 위해 원자성(atomicity), 일관성(consistency), 격리성(isolation), 지속성(durability)의 ACID 속성을 제공합니다. 이러한 속성을 제공하기 위해 MySQL은 페이지 부분 쓰기 오류를 방지하는 doublewrite buffer라는 데이터 저장 영역을 사용합니다. 이러한 오류는 데이터베이스가 페이지를 업데이트하는 동안 하드웨어 장애가 발생할 때(예: 정전의 경우) 발생합니다. MySQL 데이터베이스는 부분 페이지 쓰기를 감지하고 doublewrite buffer의 페이지 복사본으로 복구할 수 있습니다. 이 기법은 보호를 제공하지만 추가 쓰기 작업도 발생시킵니다. MySQL doublewrite buffer에 대한 자세한 내용은 MySQL 문서의 Doublewrite Buffer를 참조하세요.

RDS Optimized Writes가 켜지면 RDS for MySQL 데이터베이스는 doublewrite buffer를 사용하지 않고 데이터를 영구 스토리지로 플러시할 때 한 번만 씁니다. RDS Optimized Writes는 RDS for MySQL 데이터베이스에서 쓰기 집약적인 워크로드를 실행하는 경우 유용합니다. 쓰기 집약적인 워크로드가 있는 데이터베이스의 예로는 디지털 결제, 금융 거래, 게임 애플리케이션을 지원하는 데이터베이스가 있습니다.

이러한 데이터베이스는 AWS Nitro System을 사용하는 DB 인스턴스 클래스에서 실행됩니다. 이러한 시스템의 하드웨어 구성 덕분에 데이터베이스는 16-KiB 페이지를 한 단계로 안정적이고 지속적으로 데이터 파일에 직접 쓸 수 있습니다. AWS Nitro System이 RDS Optimized Writes를 가능하게 합니다.

새 데이터베이스 파라미터 rds.optimized_writes를 설정하여 RDS for MySQL 데이터베이스의 RDS Optimized Writes 기능을 제어할 수 있습니다. RDS for MySQL 버전 8.0 및 RDS for MySQL 버전 8.4의 DB 파라미터 그룹에서 이 파라미터에 액세스합니다. 다음 값으로 파라미터를 설정합니다.

  • AUTO – 데이터베이스가 지원하면 RDS Optimized Writes를 켭니다. 데이터베이스가 지원하지 않으면 RDS Optimized Writes를 끕니다. 이 설정이 기본값입니다.
  • OFF – 데이터베이스가 지원하더라도 RDS Optimized Writes를 끕니다.

RDS Optimized Writes를 지원하지 않는 엔진 버전, DB 인스턴스 클래스 및/또는 파일 시스템 형식의 기존 데이터베이스가 있는 경우 블루/그린 배포를 만들어 기능을 활성화할 수 있습니다. 자세한 내용은 기존 데이터베이스에서 RDS Optimized Writes 활성화를 참조하세요.

RDS Optimized Writes를 사용하도록 구성된 RDS for MySQL 데이터베이스를 기능을 지원하지 않는 DB 인스턴스 클래스로 마이그레이션하면 RDS는 자동으로 데이터베이스의 RDS Optimized Writes를 끕니다.

RDS Optimized Writes가 꺼지면 데이터베이스는 MySQL doublewrite buffer를 사용합니다.

RDS for MySQL 데이터베이스가 RDS Optimized Writes를 사용하는지 확인하려면 데이터베이스의 innodb_doublewrite 파라미터의 현재 값을 확인합니다. 데이터베이스가 RDS Optimized Writes를 사용하는 경우 이 파라미터는 FALSE (0)로 설정됩니다.

RDS Optimized Writes 사용

RDS 콘솔, AWS CLI 또는 RDS API를 사용하여 RDS for MySQL 데이터베이스를 생성할 때 RDS Optimized Writes를 켤 수 있습니다. 데이터베이스 생성 중 다음 두 조건이 모두 적용되면 RDS Optimized Writes가 자동으로 켜집니다.

  • RDS Optimized Writes를 지원하는 DB 엔진 버전과 DB 인스턴스 클래스를 지정합니다.
    • RDS Optimized Writes는 RDS for MySQL 버전 8.0.30 이상에 지원됩니다. RDS for MySQL 버전에 대한 자세한 내용은 Amazon RDS의 MySQL 버전을 참조하세요.
    • RDS Optimized Writes는 다음 DB 인스턴스 클래스를 사용하는 RDS for MySQL 데이터베이스에 지원됩니다: db.m8g, db.m8gd, db.m7i, db.m7g, db.m6g, db.m6gd, db.m6i, db.m5, db.m5d, db.r8g, db.r8gd, db.r7i, db.r7g, db.r6g, db.r6gd, db.r6i, db.r5, db.r5b, db.r5d, db.x2idn, db.x2iedn.
    • DB 인스턴스 클래스에 대한 자세한 내용은 DB 인스턴스 클래스를 참조하세요.
    • DB 인스턴스 클래스 가용성은 AWS 리전마다 다릅니다. 특정 AWS 리전에서 DB 인스턴스 클래스가 지원되는지 확인하려면 AWS 리전에서 DB 인스턴스 클래스 지원 확인을 참조하세요.
    • RDS Optimized Writes를 지원하는 DB 인스턴스 클래스로 데이터베이스를 업그레이드하려면 블루/그린 배포를 만들 수 있습니다. 자세한 내용은 기존 데이터베이스에서 RDS Optimized Writes 활성화를 참조하세요.
  • 데이터베이스와 연결된 파라미터 그룹에서 rds.optimized_writes 파라미터가 AUTO로 설정됩니다. 기본 파라미터 그룹에서 이 파라미터는 항상 AUTO로 설정됩니다.

RDS Optimized Writes를 지원하는 DB 엔진 버전과 DB 인스턴스 클래스를 사용하고 싶지만 이 기능을 사용하고 싶지 않다면 데이터베이스를 생성할 때 사용자 지정 파라미터 그룹을 지정하세요. 이 파라미터 그룹에서 rds.optimized_writes 파라미터를 OFF로 설정합니다. 나중에 데이터베이스가 RDS Optimized Writes를 사용하도록 하려면 파라미터를 AUTO로 설정하여 켤 수 있습니다. 사용자 지정 파라미터 그룹 생성 및 파라미터 설정에 대한 자세한 내용은 Amazon RDS용 파라미터 그룹을 참조하세요.

DB 인스턴스 생성에 대한 자세한 내용은 Amazon RDS DB 인스턴스 생성을 참조하세요.

RDS 콘솔을 사용하여 RDS for MySQL 데이터베이스를 만들 때 RDS Optimized Writes를 지원하는 DB 엔진 버전과 DB 인스턴스 클래스로 필터링할 수 있습니다. 필터를 켠 후 사용 가능한 DB 엔진 버전과 DB 인스턴스 클래스 중에서 선택할 수 있습니다.

RDS Optimized Writes를 지원하는 DB 엔진 버전을 선택하려면 Engine version에서 이를 지원하는 RDS for MySQL DB 엔진 버전으로 필터링한 다음 버전을 선택합니다.

Instance configuration 섹션에서 RDS Optimized Writes를 지원하는 DB 인스턴스 클래스로 필터링한 다음 DB 인스턴스 클래스를 선택합니다.

이러한 선택을 마친 후 요구 사항을 충족하는 다른 설정을 선택하고 콘솔로 RDS for MySQL 데이터베이스 생성을 마칠 수 있습니다.

AWS CLI로 DB 인스턴스를 만들려면 create-db-instance 명령을 실행합니다. --engine-version 및 --db-instance-class 값이 RDS Optimized Writes를 지원하는지 확인합니다. 또한 DB 인스턴스와 연결된 파라미터 그룹의 rds.optimized_writes 파라미터가 AUTO로 설정되었는지 확인합니다. 이 예시에서는 기본 파라미터 그룹을 DB 인스턴스와 연결합니다.

예: RDS Optimized Writes를 사용하는 DB 인스턴스 생성

Linux, macOS 또는 Unix의 경우:

더 알아보기 (Learn more)