RDS Optimized Writes for MySQL을 통한 쓰기 성능 개선 - Amazon Relational Database Service

RDS Optimized Writes for MySQL을 통한 쓰기 성능 개선

RDS Optimized Writes for MySQL을 사용하여 쓰기 트랜잭션의 성능을 개선할 수 있습니다. RDS for MySQL 데이터베이스에서 RDS Optimized Writes를 사용하는 경우 쓰기 트랜잭션 처리량(throughput)을 최대 2배까지 높일 수 있습니다.

RDS Optimized Writes 개요

RDS 최적화된 쓰기를 켜면 이중 쓰기 버퍼를 사용할 필요 없이 내구성이 뛰어난 스토리지로 데이터를 플러싱할 때 RDS for MySQL 데이터베이스가 데이터를 한 번만 씁니다. 데이터베이스는 향상된 성능과 함께 안정적인 데이터베이스 트랜잭션을 위한 ACID 속성 보호를 지속적으로 제공합니다.

MySQL 같은 관계형 데이터베이스는 신뢰할 수 있는 데이터베이스 트랜잭션을 위한 ACID(원자성, 일관성, 격리, 내구성) 속성을 제공합니다. 이러한 속성을 제공하기 위해 MySQL은 이중 쓰기 버퍼라는 데이터 스토리지 영역을 사용하여 부분 페이지 쓰기 오류를 방지합니다. 이러한 오류는 정전의 경우처럼 데이터베이스에서 페이지를 업데이트하는 동안 하드웨어 장애가 있을 때 발생합니다. MySQL 데이터베이스는 부분 페이지 쓰기를 감지하고 이중 쓰기 버퍼에 있는 페이지 복사본으로 복구할 수 있습니다. 이 기술은 보호 기능을 제공하지만 추가 쓰기 작업도 초래합니다. MySQL 이중 쓰기 버퍼에 대한 자세한 내용은 MySQL 설명서의 Doublewrite Buffer를 참조하세요.

Amazon RDS Optimized Writes를 켜면 이중 쓰기 버퍼를 사용하지 않고 내구성이 뛰어난 스토리지로 데이터를 플러싱할 때 RDS for MySQL 데이터베이스가 데이터를 한 번만 씁니다. RDS Optimized Writes는 RDS for MySQL 데이터베이스에서 쓰기가 많은 워크로드를 실행하는 경우에 유용합니다. 쓰기 작업이 많은 데이터베이스의 예로는 디지털 결제, 금융 거래, 게임 애플리케이션을 지원하는 데이터베이스가 있습니다.

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

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

  • AUTO - 데이터베이스에서 지원하는 경우 RDS Optimized Writes를 켭니다. 데이터베이스에서 지원하지 않는 경우 RDS Optimized Writes를 해제합니다. 이 설정이 기본값입니다.

  • OFF - 데이터베이스에서 지원하더라도 RDS Optimized Writes를 해제합니다.

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

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

RDS Optimized Writes가 해제된 경우 데이터베이스는 MySQL 이중 쓰기 버퍼를 사용합니다.

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.m7g

      • db.m6g

      • db.m6gd

      • db.m6i

      • db.m5

      • db.m5d

      • 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 최적화된 쓰기를 지원하는 DB 인스턴스 클래스로 데이터베이스를 업그레이드하려면 블루/그린 배포를 생성하면 됩니다. 자세한 내용은 기존 데이터베이스에서 RDS 최적화된 쓰기 활성화 섹션을 참조하세요.

  • 데이터베이스에 연결된 파라미터 그룹에서는 rds.optimized_writes 파라미터가 AUTO로 설정됩니다. 기본 파라미터 그룹에서는 이 파라미터가 항상 AUTO로 설정됩니다.

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

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

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

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

RDS Optimized Writes를 위한 DB 엔진 버전 필터

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

RDS Optimized Writes를 위한 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 대상:

aws rds create-db-instance \ --db-instance-identifier mydbinstance \ --engine mysql \ --engine-version 8.0.30 \ --db-instance-class db.r5b.large \ --manage-master-user-password \ --master-username admin \ --allocated-storage 200

Windows의 경우:

aws rds create-db-instance ^ --db-instance-identifier mydbinstance ^ --engine mysql ^ --engine-version 8.0.30 ^ --db-instance-class db.r5b.large ^ --manage-master-user-password ^ --master-username admin ^ --allocated-storage 200

CreateDBInstance 작업을 사용하여 DB 인스턴스를 생성할 수 있습니다. 이 작업을 사용할 경우 EngineVersionDBInstanceClass 값이 RDS Optimized Writes를 지원하는지 확인하세요. 또한 DB 인스턴스에 연결된 파라미터 그룹에서 rds.optimized_writes 파라미터가 AUTO로 설정되어 있는지 확인합니다.

기존 데이터베이스에서 RDS 최적화된 쓰기 활성화

RDS 최적화된 쓰기를 켜도록 기존 RDS for MySQL 데이터베이스를 수정하려면 지원되는 DB 엔진 버전 및 DB 인스턴스 클래스로 데이터베이스가 생성된 상태여야 합니다. 또한 RDS 최적화된 쓰기가 출시된 2022년 11월 27일 이후에 생성한 데이터베이스여야 합니다. 필요한 기본 파일 시스템 구성이 릴리스 전에 생성된 데이터베이스의 구성과 호환되지 않기 때문입니다. 이러한 조건이 충족되면 rds.optimized_writes 파라미터를 AUTO로 설정하여 RDS 최적화된 쓰기를 활성화할 수 있습니다.

지원되는 엔진 버전, 인스턴스 클래스 또는 파일 시스템 구성으로 데이터베이스를 생성하지 않은 경우 RDS 블루/그린 배포를 사용하여 지원되는 구성으로 마이그레이션할 수 있습니다. 블루/그린 배포를 생성하는 동안 다음을 수행하세요.

  • 그린 데이터베이스에서 Optimized Writes 활성화를 선택하고 RDS 최적화된 쓰기를 지원하는 엔진 버전과 DB 인스턴스 클래스를 지정합니다. 지원되는 엔진 버전과 인스턴스 클래스의 목록은 RDS Optimized Writes 사용 섹션을 참조하세요.

  • 스토리지에서 스토리지 파일 시스템 구성 업그레이드를 선택합니다. 이 옵션은 데이터베이스를 호환 가능한 기본 파일 시스템 구성으로 업그레이드합니다.

블루/그린 배포를 생성하는 도중 rds.optimized_writes 파라미터가 AUTO로 설정된 경우 그린 환경에서 RDS 최적화된 쓰기가 자동으로 활성화됩니다. 그런 다음 블루/그린 배포를 전환하여 그린 환경을 새로운 프로덕션 환경으로 승격합니다.

자세한 내용은 블루/그린 배포 생성 섹션을 참조하세요.

RDS Optimized Writes 제한 사항

스냅샷에서 RDS for MySQL 데이터베이스를 복원할 때는 다음 조건이 모두 적용되는 경우에만 데이터베이스의 RDS 최적화된 쓰기를 켤 수 있습니다.

  • RDS Optimized Writes를 지원하는 데이터베이스에서 스냅샷이 생성되었습니다.

  • RDS Optimized Writes가 릴리스된 이후에 생성한 데이터베이스에서 스냅샷이 생성되었습니다.

  • RDS Optimized Writes를 지원하는 데이터베이스로 스냅샷이 복원됩니다.

  • 복원된 데이터베이스는 rds.optimized_writes 파라미터가 AUTO로 설정된 파라미터 그룹에 연결됩니다.