Amazon RDS for MySQL 버전 업그레이드

An mihyang
Cloud Villains
Published in
6 min readDec 28, 2023

Amazon RDS의 MySQL 5.7 버전의 경우, 2023년 12월을 끝으로 버전 지원이 종료됩니다(다만 5.7.43과 5.7.44 버전은 2024년 2월까지 지원됩니다).

본 문서에서 지원 종료 시점을 앞두고 있는 MySQL 5.7 사용자들을 위해, 데이터 손실 없이 성공적으로 버전을 업그레이드 하기 위한 상세 절차를 제공하고자 합니다. 구체적으로 MySQL 5.7에서 최신 버전인 8.0으로의 업그레이드 방법에 대해 다루고 있습니다.

Amazon RDS의 MySQL 버전

https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/MySQL.Concepts.VersionMgmt.html

Amazon RDS DB 엔진 버전이 폐지되면 어떻게 될까요?

AWS에서는 자동 업그레이드를 시작하기 전에 폐지 공지 후 3개월의 기간을 제공한다고 안내하고 있습니다. 이 기간이 끝난 이후에도 여전히 해당 버전을 실행하고 있는 모든 인스턴스를 대상으로 자동 업그레이드 일정이 예약되고, 예약된 유지 관리 기간 동안 지원되는 최신 마이너 버전으로 업그레이드됩니다.

Amazon RDS에서 데이터베이스 엔진의 메이저 버전이 폐지되는 경우, AWS에서는 고객이 지원되는 메이저 버전으로 업그레이드할 수 있도록 폐지 공지 후 최소 6개월의 기간을 제공합니다. 이 기간이 끝나면 여전히 폐지된 버전을 실행하고 있는 모든 인스턴스를 대상으로 예약된 유지 관리 기간 동안 다음 메이저 버전으로 자동 업그레이드가 진행됩니다.

지원이 종료된 후에도 해당 버전의 엔진을 사용하고 싶다면?

AWS에서 제공하는 Amazon RDS 추가 지원을 통해 최대 3년까지 사용이 가능합니다. 하지만, 추가 비용이 발생된다는점 참고 부탁드리며, 관련 내용은 하기 링크 참고 바랍니다.

https://aws.amazon.com/ko/blogs/tech/introducing-amazon-rds-extended-support-for-mysql-databases-on-amazon-aurora-and-amazon-rds/

엔진 업그레이드 시 주의 사항

MySQL 5.7 → 8 .0 업그레이드 시 확인해야할 사항 (필수!!)

MySQL 8.0에는 MySQL 5.7과 상당한 비호환성이 포함되어 있습니다. 이러한 비호환성으로 인해 MySQL 5.7에서 MySQL 8.0으로 업그레이드하는 동안 문제가 발생할 수 있습니다. 따라서 업그레이드에 성공하기 위해서는 아래 문서를 확인해보고 비호환성 문제 요소를 가지고 있지 않은지 확인이 필요합니다.

업그레이드 실패 예시

하기 내용과 같이 사전에 characterset 변환 조치를 하지 않아 업그레이드가 실패한 사례가 있습니다.

따라서 본 문서에서는 업그레이드 진행 전 반드시 필요한 사전 점검 사항들을 숙지하고 준비하는 것이 중요함을 강조 드립니다.

참고

  • 업그레이드 중 에러 발생 시 RDS DB → 로그 및 이벤트 → 로그의 로그 파일을 확인해 보시기 바랍니다.
  • 로그 파일명: upgradeFailure.log
  • 에러 메시지 예시
    2023–12–07T12:00:38.058328Z 2 [ERROR] [MY-012418] [Server] Comment for field ‘logdb.itemlog.type’ contains an invalid utf8mb3 character string: ‘\x88\xEB\xB2’.

엔진 업그레이드 방법

  1. 수동으로 엔진 업그레이드
  2. Blue/Green 배포를 이용한 엔진 업그레이드
  3. Read Replica 생성 및 승격을 통한 엔진 업그레이드

정리

지금까지 설명 드린 내용을 간단히 정리 해 보면, 하기와 같습니다.

수동으로 엔진 업그레이드

장점:

  • 간단한 프로세스로 클릭 몇 번만으로 업그레이드를 수행할 수 있습니다.
  • 사용 중인 DB 인스턴스를 수정하므로 엔드포인트가 유지됩니다.

단점:

  • 업그레이드 프로세스 중에 가동 중지 시간 발생합니다.
  • 문제 발생 시 롤백이 어렵습니다.

블루/그린 배포를 이용한 엔진 업그레이드

장점:

  • 프로덕션 환경에 영향을 주지 않고 스테이징 환경에서 테스트를 할 수 있습니다.
  • 대부분 1분 이내에 그린 환경으로 빠르게 전환이 가능합니다. (다운타임은 보통 1분 미만이지만 워크로드에 따라 더 길어질 수 있습니다.)
  • 전환 시 현재 프로덕션 환경의 이름과 엔드포인트가 새로 승격된 프로덕션 환경에 할당되므로 엔드포인트가 유지됩니다.

단점:

  • 리소스 사용량을 두 배로 늘리는 두 가지 환경(블루 + 그린)이 실행되어 전환 기간동안 비용이 2배로 부과됩니다.
  • 롤백 기능을 따로 지원하지 않습니다.

Read Replica 생성 및 승격을 통한 엔진 업그레이드

장점:

  • 먼저 Read Replica를 통해 새로 구성한 환경에서 테스트를 진행할 수 있습니다.
  • 문제가 발생할 경우 기존 DB 환경으로 롤백이 가능합니다.

단점:

  • 상대적으로 비교적 복잡한 프로세스를 통해 업그레이드를 진행합니다.
    → 블루/그린 배포를 통한 업그레이드 방법을 고려해볼 수 있습니다.
  • 전환 기간 동안 두 배 인스턴스 스토리지가 필요하므로 비용 또한 2배가 부과됩니다.
  • 엔드포인트가 변경되어 애플리케이션 단에서 수정이 필요합니다.

마지막으로

본 글을 참고하여 이용 중인 워크로드의 성격, 데이터 규모, 예산 등을 종합적으로 검토한 후, 장단점을 비교하여 본인의 환경에 가장 적합한 업그레이드 방안을 선택하시기 바랍니다.

읽어주셔서 감사합니다.

--

--