AWS에서 “Amazon RDS MySQL 8.0은 2026년 7월 31일에 표준 지원기간이 종료됩니다”라는 메일을 4차례나 보냈다. 반복 알림이 올 정도면 무시할 수 없다.
Table of contents
Open Table of contents
현재 상황
- 대상: Amazon RDS for MySQL 8.0을 사용하는 모든 인스턴스
- 표준 지원 종료일: 2026년 7월 31일
- 이후: Extended Support로 전환 (추가 비용 발생)
Extended Support 비용:
| 기간 | 추가 비용 |
|---|---|
| 1년차 | vCPU당 시간당 $0.11 |
| 2년차 | vCPU당 시간당 $0.22 |
| 3년차 | vCPU당 시간당 $0.33 |
db.r6g.large (2 vCPU) 기준 1년차 월 약 $160 추가다. 무시할 수 없는 금액이다.
마이그레이션 옵션
옵션 1: MySQL 8.4 LTS로 업그레이드
MySQL 8.4는 8.0의 후속 LTS 버전이다:
MySQL 8.0 → MySQL 8.4 (LTS)
- 호환성: 높음 (마이너 업그레이드 수준)
- 작업량: 적음
- 위험도: 낮음
장점: 변경사항 최소, 기존 쿼리/스키마 대부분 호환 단점: MySQL 8.4도 언젠가 EOL
옵션 2: MySQL 9.x로 업그레이드
MySQL 8.0 → MySQL 9.x (Innovation Release)
- 호환성: 중간 (일부 deprecated 기능 제거)
- 작업량: 중간
- 위험도: 중간
옵션 3: Aurora MySQL로 전환
MySQL 8.0 → Aurora MySQL 3.x (MySQL 8.0 호환)
- 호환성: 높음
- 작업량: 중간 (인스턴스 타입/파라미터 변경)
- 위험도: 낮음
- 비용: 인스턴스 비용은 유사, 스토리지 과금 방식 다름
Aurora는 MySQL 호환이므로 코드 변경 없이 전환 가능한 경우가 많다.
사전 호환성 확인
1. deprecated 기능 사용 여부
-- MySQL 8.0에서 deprecated된 기능 확인
-- utf8mb3 → utf8mb4 전환 필요 여부
SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, CHARACTER_SET_NAME
FROM information_schema.COLUMNS
WHERE CHARACTER_SET_NAME = 'utf8'
AND TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys');
-- sql_mode 확인
SELECT @@sql_mode;
2. 파라미터 그룹 확인
커스텀 파라미터 그룹을 사용하고 있다면 대상 버전과의 호환성을 확인한다:
# 현재 파라미터 그룹 내보내기
aws rds describe-db-parameters \
--db-parameter-group-name my-mysql80-params \
--query 'Parameters[?Source==`user`]' \
--output table
3. 애플리케이션 호환성
- ORM의 MySQL 버전 지원 여부 (Sequelize, TypeORM, GORM 등)
- 드라이버 버전 호환성
- 저장 프로시저/함수에서 사용하는 문법
실행 계획
T-6개월 (2026-01) — 대상 인스턴스 목록 작성, 호환성 확인 시작
T-4개월 (2026-03) — 테스트 환경에서 업그레이드 실행, 애플리케이션 테스트
T-2개월 (2026-05) — 스테이징 환경 업그레이드, 성능 비교
T-1개월 (2026-06) — 운영 환경 업그레이드 스케줄 확정, 롤백 계획 수립
T-0 (2026-07) — 운영 환경 업그레이드 실행
업그레이드 실행
RDS 콘솔에서 인플레이스 업그레이드:
aws rds modify-db-instance \
--db-instance-identifier my-instance \
--engine-version 8.4.0 \
--apply-immediately
또는 블루/그린 배포로 무중단 업그레이드:
aws rds create-blue-green-deployment \
--blue-green-deployment-name mysql84-upgrade \
--source arn:aws:rds:ap-northeast-2:123456:db:my-instance \
--target-engine-version 8.4.0
주의사항
- 스냅샷 필수: 업그레이드 전 수동 스냅샷 생성
- 다운타임: 인플레이스 업그레이드는 수 분~수십 분 다운타임 발생
- Multi-AZ: Multi-AZ 인스턴스는 failover를 포함해 더 오래 걸릴 수 있음
- Read Replica: 리플리카도 함께 업그레이드해야 함
정리
RDS MySQL 8.0 EOL은 2026년 7월 31일이다. Extended Support에 추가 비용을 내느니 8.4 LTS로 업그레이드하는 것이 낫다. 지금부터 호환성 확인을 시작하고, 테스트 환경에서 먼저 검증한다.