Amazon Aurora MySQL 개요

Aurora MySQL 버전 2와 버전 3 비교

Estimated reading: 3 minutes 32 views

원본 문서: Comparing Aurora MySQL version 2 and Aurora MySQL version 3

이 문서를 통해 Aurora MySQL 버전 2 클러스터를 버전 3으로 업그레이드할 때 알아두어야 할 변경 사항을 확인할 수 있습니다.

원자적(atomic) 데이터 정의 언어(DDL) 지원

MySQL 5.7에서 8.0으로의 주요 변화 중 하나는 원자적 데이터 사전(Atomic Data Dictionary)의 도입입니다. MySQL 8.0 이전에는 MySQL 데이터 사전이 파일 기반 접근 방식을 사용하여 테이블 정의(.frm), 트리거(.trg), 함수 등의 메타데이터를 저장 엔진(InnoDB 등)의 메타데이터와 별도로 관리했습니다. 이 방식에는 DDL 작업 중 예기치 않은 일이 발생할 경우 파일 기반 메타데이터와 저장 엔진 메타데이터가 일치하지 않아 테이블이 “고아 상태“로 남을 수 있는 문제가 있었습니다.

MySQL 8.0은 이 문제를 해결하기 위해 원자적 데이터 사전을 도입했습니다. 원자적 데이터 사전은 모든 메타데이터를 mysql 스키마의 내부 InnoDB 테이블 세트에 저장합니다. 이 새로운 아키텍처는, 데이터베이스 메타데이터를 관리하는 트랜잭션적이고 ACID를 준수하는 방법을 제공하여 이전 파일 기반 접근 방식의 “원자적 DDL” 문제를 해결합니다. 원자적 데이터 사전에 대한 자세한 내용은 MySQL Reference Manual파일 기반 메타데이터 저장소 제거원자적 데이터 정의문 지원 부분을 참조하세요.

이러한 아키텍처 변화로 인해 Aurora MySQL 버전 2에서 버전 3으로 업그레이드할 때 다음 사항을 고려해야 합니다:

  • 버전 2의 파일 기반 메타데이터는 버전 3으로 업그레이드하는 과정에서 새로운 데이터 사전 테이블로 마이그레이션되어야 합니다. 데이터베이스 객체 수에 따라 마이그레이션에 시간이 걸릴 수 있습니다.
  • 이 변경 사항으로 인해 MySQL 5.7에서 8.0으로 업그레이드하기 전에 해결해야 하는 새로운 비호환성 문제들이 발생할 수 있습니다. 예를 들어, MySQL 8.0에는 기존 데이터베이스 객체 이름과 충돌할 수 있는 새로운 예약어가 추가되었습니다.

엔진을 업그레이드하기 전에 이러한 비호환성을 식별할 수 있도록, Aurora MySQL은 업그레이드 호환성 검사(사전 검사)를 수행하여 데이터 사전 업그레이드 전 데이터베이스 사전에서 비호환 객체가 있는지 확인합니다. 사전 검사에 대한 자세한 내용은 Aurora MySQL의 주요 버전 업그레이드 사전 검사를 참조하세요.

Aurora MySQL 버전 2와 3의 기능 차이

다음 Amazon Aurora MySQL 기능은 MySQL 5.7용 Aurora MySQL에서는 지원되지만 MySQL 8.0용 Aurora MySQL에서는 지원되지 않습니다:

  • Aurora MySQL 버전 3은 Aurora Serverless v1 클러스터에서 사용할 수 없습니다. Aurora MySQL 버전 3은 Aurora Serverless v2와 호환됩니다.
  • Lab 모드는 Aurora MySQL 버전 3에 적용되지 않습니다. 버전 3에서는 Lab 모드 기능이 없으며, 인스턴트 DDL이 이전 Lab 모드의 빠른 온라인 DDL 기능을 대체합니다. 예시는 인스턴트 DDL (Aurora MySQL 버전 3)을 참조하세요.
  • 쿼리 캐시는 커뮤니티 MySQL 8.0과 Aurora MySQL 버전 3에서 제거되었습니다.
  • Aurora MySQL 버전 3은 커뮤니티 MySQL의 해시 조인 기능과 호환됩니다. Aurora MySQL 버전 2의 Aurora 전용 해시 조인 구현은 사용되지 않습니다. Aurora 병렬 쿼리에서 해시 조인을 사용하는 방법은, 병렬 쿼리 클러스터용 해시 조인 활성화Aurora MySQL 힌트를 참조하세요. 해시 조인의 일반적인 사용 방법은 MySQL Reference Manual해시 조인 최적화를 참조하세요.
  • Aurora MySQL 버전 2에서 사용되지 않도록 권장된 mysql.lambda_async 저장 프로시저가 버전 3에서는 제거되었습니다. 버전 3에서는 비동기 함수 lambda_async를 대신 사용하세요.
  • Aurora MySQL 버전 3의 기본 문자 집합은 utf8mb4입니다. Aurora MySQL 버전 2의 기본 문자 집합은 latin1이었습니다. 이 문자 집합에 대한 정보는 MySQL Reference Manualutf8mb4 문자 집합(4바이트 UTF-8 유니코드 인코딩)을 참조하세요.

일부 Aurora MySQL 기능은 특정 AWS 리전과 DB 엔진 버전 조합에서만 사용할 수 있습니다. 자세한 내용은 AWS 리전 및 Aurora DB 엔진에 따른 Amazon Aurora 지원 기능을 참조하세요.

인스턴스 클래스 지원

Aurora MySQL 버전 3은 버전 2와 다른 인스턴스 클래스 세트를 지원합니다:

  • 대형 인스턴스의 경우 db.r5, db.r6g, db.x2g와 같은 최신 인스턴스 클래스를 사용할 수 있습니다.
  • 소형 인스턴스의 경우 db.t3db.t4g와 같은 최신 인스턴스 클래스를 사용할 수 있습니다.
참고
T DB 인스턴스 클래스는 개발 및 테스트 서버 또는 다른 비프로덕션 서버에서만 사용하는 것을 권장합니다. T 인스턴스 클래스에 대한 자세한 내용은 개발 및 테스트를 위한 T 인스턴스 클래스 사용을 참조하세요.

다음은 Aurora MySQL 버전 2에서는 지원되지만 버전 3에서는 지원되지 않는 인스턴스 클래스입니다:

  • db.r4
  • db.r3
  • db.t3.small
  • db.t2

Aurora MySQL DB 인스턴스를 생성하는 CLI 명령어를 사용하는 관리 스크립트를 확인하고, 버전 3에서 사용할 수 없는 인스턴스 클래스 이름이 하드코딩되어 있는 경우 수정해야 합니다. 필요에 따라 인스턴스 클래스 이름을 버전 3에서 지원하는 이름으로 변경하세요.


특정 Aurora MySQL 버전과 AWS 리전 조합에 사용할 수 있는 인스턴스 클래스를 확인하려면 describe-orderable-db-instance-options AWS CLI 명령어를 사용하세요.

Aurora 인스턴스 클래스에 대한 전체 내용은 Amazon Aurora DB 인스턴스 클래스를 참조하세요.

Aurora MySQL 버전 3의 파라미터 변경 사항

Aurora MySQL 버전 3에는 새로운 클러스터 레벨 및 인스턴스 레벨 구성 매개변수가 포함되어 있습니다. 또한 Aurora MySQL 버전 2에 있던 일부 파라미터가 제거되었습니다. 포괄적인 언어를 위한 이니셔티브의 결과로 일부 파라미터 이름이 변경되었습니다. 이전 버전과의 호환성을 위해 이전 이름이나 새 이름을 사용하여 파라미터 값을 검색할 수 있습니다. 그러나 사용자 지정 파라미터 그룹에서 파라미터 값을 지정하려면 새 이름을 사용해야 합니다.

Aurora MySQL 버전 3에서는 lower_case_table_names 파라미터 값이 클러스터 생성 시점에 영구적으로 설정됩니다. 이 옵션에 기본값이 아닌 값을 사용하는 경우 업그레이드하기 전에 Aurora MySQL 버전 3 사용자 지정 파라미터 그룹을 설정해야 합니다. 그런 다음 클러스터 생성 또는 스냅샷 복원 작업 중에 파라미터 그룹을 지정합니다.

참고
Aurora MySQL 기반의 글로벌 데이터베이스에서는 lower_case_table_names 파라미터가 활성화된 상태에서 Aurora MySQL 버전 2에서 버전 3으로 직접 업그레이드할 수 없습니다. 대신 스냅샷 복원 방법을 사용하세요.

Aurora MySQL 버전 3에서는 CONNECTION_ADMIN 권한을 가진 사용자에게 init_connectread_only 파라미터가 적용되지 않습니다. 여기에는 Aurora 마스터 사용자가 포함됩니다. 자세한 내용은 역할 기반 권한 모델을 참조하세요.

Aurora MySQL 클러스터 파라미터 전체 목록은 클러스터 레벨 파라미터를 참조하세요. 이 표는 Aurora MySQL 버전 2와 3의 모든 파라미터를 다룹니다. 이 표에는 Aurora MySQL 버전 3에서 새로 추가된 파라미터 또는 Aurora MySQL 버전 3에서 제거된 파라미터에 대한 설명이 포함되어 있습니다.

Aurora MySQL 인스턴스 파라미터의 전체 목록은 인스턴스 수준 파라미터를 참조하세요. 이 표는 Aurora MySQL 버전 2와 3의 모든 파라미터를 다룹니다. 이 표에는 Aurora MySQL 버전 3에서 새로 추가된 파라미터와 Aurora MySQL 버전 3에서 제거된 파라미터에 대한 설명이 포함되어 있습니다. 또한 이전 버전에서는 수정 가능했지만 Aurora MySQL 버전 3에서는 수정할 수 없는 파라미터에 대한 설명도 포함되어 있습니다.

변경된 파라미터 이름에 대한 정보는 Aurora MySQL 버전 3의 포괄적 언어 변경 사항을 참조하세요.

상태 변수(status variable)

Aurora MySQL에 적용되지 않는 상태 변수에 대한 자세한 내용은 Aurora MySQL에 적용되지 않는 MySQL 상태 변수를 참조하세요.

Aurora MySQL 버전 3의 포괄적 언어 변경 사항

Aurora MySQL 버전 3은 MySQL 커뮤니티 에디션 8.0.23 버전과 호환됩니다. 또한, Aurora MySQL 버전 3은 MySQL 8.0.26의 포괄적 언어 변경 사항(키워드와 시스템 스키마 변경)을 포함합니다. 예를 들어, 이제 SHOW SLAVE STATUS 명령어 대신 SHOW REPLICA STATUS 명령어가 더 선호됩니다.

다음 Amazon CloudWatch 지표는 Aurora MySQL 버전 3에서 새로운 이름으로 제공됩니다.

Aurora MySQL 버전 3에서는 새로운 지표 이름만 사용할 수 있으므로, 업그레이드 시 지표 이름을 참조하는 알람 또는 자동화된 작업을 업데이트해야 합니다.

이전 이름새로운 이름
ForwardingMasterDMLLatencyForwardingWriterDMLLatency
ForwardingMasterOpenSessionsForwardingWriterOpenSessions
AuroraDMLRejectedMasterFullAuroraDMLRejectedWriterFull
ForwardingMasterDMLThroughputForwardingWriterDMLThroughput

다음 상태 변수는 Aurora MySQL 버전 3에서 새로운 이름으로 변경되었습니다.

호환성을 위해 초기 Aurora MySQL 버전 3 릴리스에서는 기존 이름과 새로운 이름을 모두 사용할 수 있지만, 향후 릴리스에서는 이전 상태 변수 이름이 제거될 예정입니다.

제거 예정 이름새로운 또는 권장 이름
Aurora_fwd_master_dml_stmt_durationAurora_fwd_writer_dml_stmt_duration
Aurora_fwd_master_dml_stmt_countAurora_fwd_writer_dml_stmt_count
Aurora_fwd_master_select_stmt_durationAurora_fwd_writer_select_stmt_duration
Aurora_fwd_master_select_stmt_countAurora_fwd_writer_select_stmt_count
Aurora_fwd_master_errors_session_timeoutAurora_fwd_writer_errors_session_timeout
Aurora_fwd_master_open_sessionsAurora_fwd_writer_open_sessions
Aurora_fwd_master_errors_session_limitAurora_fwd_writer_errors_session_limit
Aurora_fwd_master_errors_rpc_timeoutAurora_fwd_writer_errors_rpc_timeout

다음 구성 파라미터도 Aurora MySQL 버전 3에서 새로운 이름으로 제공됩니다.

호환성을 위해 Aurora MySQL 버전 3 초기 릴리스에서는 mysql 클라이언트에서 기존 이름과 새 이름을 모두 사용하여 파라미터 값을 확인할 수 있습니다. 그러나 사용자 지정 파라미터 그룹에서 값을 수정할 때는 새 이름만 사용할 수 있으며, 향후 릴리스에서는 이전 파라미터 이름이 제거될 예정입니다.

제거 예정 이름새로운 또는 권장 이름
aurora_fwd_master_idle_timeoutaurora_fwd_writer_idle_timeout
aurora_fwd_master_max_connections_pctaurora_fwd_writer_max_connections_pct
master_verify_checksumsource_verify_checksum
sync_master_infosync_source_info
init_slaveinit_replica
rpl_stop_slave_timeoutrpl_stop_replica_timeout
log_slow_slave_statementslog_slow_replica_statements
slave_max_allowed_packetreplica_max_allowed_packet
slave_compressed_protocolreplica_compressed_protocol
slave_exec_modereplica_exec_mode
slave_type_conversionsreplica_type_conversions
slave_sql_verify_checksumreplica_sql_verify_checksum
slave_parallel_typereplica_parallel_type
slave_preserve_commit_orderreplica_preserve_commit_order
log_slave_updateslog_replica_updates
slave_allow_batchingreplica_allow_batching
slave_load_tmpdirreplica_load_tmpdir
slave_net_timeoutreplica_net_timeout
sql_slave_skip_countersql_replica_skip_counter
slave_skip_errorsreplica_skip_errors
slave_checkpoint_periodreplica_checkpoint_period
slave_checkpoint_groupreplica_checkpoint_group
slave_transaction_retriesreplica_transaction_retries
slave_parallel_workersreplica_parallel_workers
slave_pending_jobs_size_maxreplica_pending_jobs_size_max
pseudo_slave_modepseudo_replica_mode

다음 스토어드 프로시저도 Aurora MySQL 버전 3에서 새로운 이름으로 변경되었습니다.

호환성을 위해 초기 릴리스에서는 기존 이름과 새 이름을 모두 사용할 수 있으며, 향후 릴리스에서는 이전 프로시저 이름이 제거될 예정입니다.

제거 예정 이름새로운 또는 권장 이름
mysql.rds_set_master_auto_positionmysql.rds_set_source_auto_position
mysql.rds_set_external_mastermysql.rds_set_external_source
mysql.rds_set_external_master_with_auto_positionmysql.rds_set_external_source_with_auto_position
mysql.rds_reset_external_mastermysql.rds_reset_external_source
mysql.rds_next_master_logmysql.rds_next_source_log

AUTO_INCREMENT 값

Aurora MySQL 버전 3에서는 DB 인스턴스를 재시작할 때 각 테이블의 AUTO_INCREMENT 값이 유지됩니다. 반면, Aurora MySQL 버전 2에서는 재시작 후 AUTO_INCREMENT 값이 유지되지 않았습니다.

새 클러스터를 스냅샷에서 복원하거나 시점 복구(Point-In-Time Recovery), 클러스터 복제본 생성을 통해 설정할 때는 AUTO_INCREMENT 값이 유지되지 않습니다. 이 경우 AUTO_INCREMENT 값은 스냅샷이 생성될 당시 테이블 내 가장 큰 열 값에 기반하여 초기화됩니다. 이는 RDS for MySQL 8.0의 동작과 다르며, RDS for MySQL 8.0에서는 이러한 작업 중 AUTO_INCREMENT 값이 유지됩니다.

바이너리 로그 복제

MySQL 8.0 커뮤니티 에디션에서는 바이너리 로그 복제가 기본으로 활성화되어 있지만, Aurora MySQL 버전 3에서는 기본적으로 비활성화되어 있습니다.


Aurora의 내장 복제 기능으로 고가용성 요구 사항을 충족할 수 있다면 바이너리 로그 복제를 비활성화 상태로 두는 것이 좋습니다. 이렇게 하면 바이너리 로그 복제로 인한 성능 저하를 피하고, 관련 모니터링 및 문제 해결을 줄일 수 있습니다.

Aurora는 MySQL 5.7 호환 소스에서 Aurora MySQL 버전 3으로의 바이너리 로그 복제를 지원합니다. 소스 시스템으로는 Aurora MySQL DB 클러스터, RDS for MySQL DB 인스턴스, 온프레미스 MySQL 인스턴스가 될 수 있습니다.

커뮤니티 MySQL과 마찬가지로, Aurora MySQL도 동일한 주요 버전 또는 한 단계 높은 주요 버전으로 실행되는 타겟으로의 복제를 지원합니다. 예를 들어, MySQL 5.6 호환 시스템에서 Aurora MySQL 버전 3으로의 복제는 지원되지 않습니다. 반대로 Aurora MySQL 버전 3에서 MySQL 5.7 호환 또는 MySQL 5.6 호환 시스템으로의 복제도 지원되지 않습니다. 바이너리 로그 복제 사용에 대한 자세한 내용은 Aurora와 MySQL 또는 다른 Aurora DB 클러스터 간 복제(바이너리 로그 복제)를 참조하세요.

Aurora MySQL 버전 3은 커뮤니티 MySQL 8.0의 개선 사항인 필터링된 복제 기능과 같은 바이너리 로그 복제 기능 개선을 포함합니다. 커뮤니티 MySQL 8.0의 개선 사항에 대한 자세한 내용은 MySQL 레퍼런스 매뉴얼서버가 복제 필터링 규칙을 평가하는 방법을 참조하세요.

바이너리 로그 복제를 위한 트랜잭션 압축

바이너리 로그 압축 사용 정보는 MySQL 레퍼런스 매뉴얼바이너리 로그 트랜잭션 압축을 참조하세요.

Aurora MySQL 버전 3에서 바이너리 로그 압축에는 다음 제한 사항이 적용됩니다:

  • 바이너리 로그 데이터가 허용된 최대 패킷 크기를 초과하는 트랜잭션은 압축되지 않습니다. 이는 Aurora MySQL의 바이너리 로그 압축 설정이 켜져 있는지 여부와 상관없이 적용되며, 해당 트랜잭션은 압축되지 않고 그대로 복제됩니다.
  • MySQL 8.0을 아직 지원하지 않는 변경 데이터 캡처(CDC) 커넥터를 사용하는 경우 이 기능을 사용할 수 없습니다. 모든 서드파티 커넥터가 바이너리 로그 압축과 호환되는지 충분히 테스트한 후, 바이너리 로그 복제를 CDC에 사용하는 시스템에서 압축 기능을 활성화하는 것을 권장합니다.

Leave a Comment



이 문서 공유

Aurora MySQL 버전 2와 버전 3 비교

링크 복사

CONTENTS