Aurora MySQL 5.6 End of Life 대응 방안

4분 분량
콘텐츠 수준: 중급
1

2023/2/28 에 End of Life 되는 Aurora MySQL 5.6 의 업그레이드 방법 및 주의 사항에 대해 설명 합니다

Aurora MySQL 5.6 End of Life ( RDS MySQL 제외 )

1. Aurora MySQL 5.6 and 5.7 End of Life 스케줄 ( 2023/1/9 기준 )

여기에 이미지 설명 입력

• EOL 에 해당하는 Aurora 클러스터 버전 확인 여기에 이미지 설명 입력 https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/Aurora.MySQL56.EOL.html

• 5.7 버전의 EoL 일정은 추후 변경 될 수 있으므로 최신 정보는 아래 문서 링크를 통해 확인
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/Aurora.VersionPolicy.html#Aurora.VersionPolicy.MajorVersionLifetime

2. Aurora MySQL 5.6 메이저 버전 업그레이드

여기에 이미지 설명 입력

[ Upgrade 주의 및 권고 사항 ]

• 업그레이드는 Database Engine 의 재시작을 필요로 하기 때문에 서비스 downtime 을 필요로 합니다.

• 5.6 버전의 Upgrade 는 필수 작업 이며 기간 안에 업그레이드 미 수행 시 예약된 유지 관리 시간 (고객 설정)에 업그레이드가 강제로 수행 됩니다.

• 메이저 버전 업그레이드는 파라미터(신구 버전 값) ,성능, 호환성 (SQL 호환성, 특정 버전의 기능 동작) 의 테스트를 통해 정확한 작업 계획을 수립 해야 합니다.

• 메이저 버전 업그레이드의 모든 내용은 해당 문서를 참고 해 주시기 바랍니다.
https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.MajorVersionUpgrade.html
https://aws.amazon.com/ko/blogs/database/upgrade-amazon-aurora-mysql-compatible-edition-version-1-with-mysql-5-6-compatibility/

[ Upgrade 테스트 및 작업 계획 수립]

< v1 5.6 -> v2 5.7 >

여기에 이미지 설명 입력

• 복제본 생성 기능을 사용하여 5.6 운영 환경의 복제 본 생성 후 복제본을 In-Place 업그레이드 하여 5.7 버전 환경 구축

• v11.22.33 이상 버전 은 In-Place (Replication 이나 스냅샷이 아닌 복제본 생성 없이 클러스터 엔진 업그레이드 ) 방법으로
v2(5.7) 로 업그레이드 가능하며 , v1에서 v3(5.8)로 In-Place 업그레이드를 위해서는 5.7 버전으로 업그레이드 이후에 진행 가능 합니다. https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.MajorVersionUpgrade.html#AuroraMySQL.Updates.MajorVersionUpgrade.1to2 https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.MajorVersionUpgrade.html#AuroraMySQL.Upgrading.Planning

• Aurora 클러스터 버전이 1.22.3 이전 버전을 사용 하는 경우 1.22.3 버전으로 자동 업그레이드를 수행 하므로 시간이 더 소요 될 수 있기 때문에
메이저 버전 업그레이드 시 다운타임을 최소화하기 위해 Aurora MySQL 1.22.3으로 초기 마이너 버전 업그레이드를 미리 실행할 수 있습니다
한 가지 주의할 점은 업그레이드 프로세스를 중간에 취소할 수 없으며 업그레이드가 성공하거나 실패할 때까지 실행됩니다.
업그레이드 프로세스 중에 문제가 발생한 경우 변경을 롤백이 필요 할 수 있습니다. 따라서 업그레이드를 시작하기 전에 수동 스냅샷 또는 Aurora 클론을 생성하는 것이 중요합니다.

자세한 내용은 Aurora MySQL in-place 메이저버전 업그레이드의 구조 를 참조해 주세요.

< v1 5.6 -> v3 8.0 >

여기에 이미지 설명 입력

• 5.6 -> 5.7 -> 8.0 으로 순차 In-Place 업그레이드 및 스냅샷 리스토어
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.MajorVersionUpgrade.html#AuroraMySQL.Updates.MajorVersionUpgrade.2to3 https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.mysql80-upgrade-procedure.html

• In-Place 업그레이드는 클러스터 복제본을 생성하지 않기 때문에 빠르게 수행을 할 수 있지만 DB 재시작 과정에서 서비스 downtime 이 발생 합니다.
서비스 연속성을 위해 downtime 을 최소화 하는 방안으로 MySQL binlog 를 활성화 하여 업그레이드 진행 하는 것을 고려 해 볼 수 있습니다. 아래 링크를 참조해주세요.
https://aws.amazon.com/ko/blogs/database/performing-major-version-upgrades-for-amazon-aurora-mysql-with-minimum-downtime/

[ Aurora v1, v2, v3 버전 차이점 ]

• Aurora MySQL v1,v2 비교
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.CompareMySQL57.html

• Aurora MySQL v2, v3 비교
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.Compare-v2-v3.html

• Aurora MySQL v3, MySQL 8.0 Community Edition 비교
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.Compare-80-v3.html

• MySQL 8.0 신규 기능
https://dev.mysql.com/blog-archive/the-complete-list-of-new-features-in-mysql-8-0/

• MySQL 5.7 신규 기능
https://dev.mysql.com/blog-archive/whats-new-in-mysql-5-7-generally-available/

[ Upgrade Version 결정]

• 기존 애플리케이션과 버전 호환성이 최종 Target Upgrade 버전을 결정하는 데 중요한 요소

• 업그레이드 주기를 많이 가져가지 못할 경우(서비스 중지가 불가능) LTS(Long-Term Support) 버전 사용을 검토 하시기 바랍니다.
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.Versions.html#AuroraMySQL.Updates.LTS

3. Aurora MySQL Upgrade Tip

• In-Place 업그레이드 과정에서 자동으로 스냅샷 백업을 수행 하지만, 업그레이드 단계 시작 전 메뉴얼로 백업을 수행 한다.

• mysqlcheck –check-upgrade 명령어를 통해 업그레이드 문제 사전 파악

• 기존 버전에서 사용하는 값과 동일한 업그레이드 버전에 대한 파라미터를 생성하여 업그레이드로 인한 영향을 최소화 시킨다.
다만 성능 테스트 과정에서 일부 수치로 된 파라미터 값은 최적화 할 수 있다.

• Batch Job 을 반드시 확인 하여 업그레이드 진행 과정에서 수행 되지 않도록 한다.

• MySQL 5.6 -> 5.7 에 옵티마이저 변경사항이 많으므로 쿼리 성능 테스트는 매우 중요 애플리케이션 기반 성능 테스트가 어려울 시 Top SQL 의 쿼리 실행계획 변경 여부는 확인 필요

• 업그레이드를 테스트 할 때에는 실제 업무 트랜잭션이 없기 때문에 작업 난이도가 쉽다. 실제 운영 환경을 업그레이드 할 때에는 Active Transaction Session 또는 Long Transaction Session 등 애플리케이션 중지 후 세션 정리가 필요 할 수 있으니
반드시 작업 계획서에 세션 정리 절차 작성

• 업그레이드 완료 후 기존 애플리케이션의 기능 테스트는 반드시 필요 ( 드라이버 호환성 문제로 접속 불가 등)

• 업그레이드 전 정상 운영 상황에서의 DB계정별로 접속한 세션 수를 반드시 기록 할 것 업그레이드 완료 후 애플리케이션 정상 동작 여부 비교 할 때 유용한 자료 가 됨.

• v1 에서 v2로 업그레이드시 클러스터의 엔진 속성값이 aurora 에서 aurora-mysql 로 변경 되므로 AWS CLI 나 API 를 통해 자동화 한 작업 이 있을 시 값을 변경 해준다.
https://docs.aws.amazon.com/ko_kr/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html