aurora-mysql 3.x 블루/그린 배포를 이용해 업그레이드하기

U_U0_0·2023년 2월 22일
0

우리는 mysql 5.7을 이용 중인데 새로운 기능을 달면서 이 상태로는 힘들겠다 싶어 이번 기회에 mysql 8.0으로 업그레이드 하기로 결정했다.

때문에 오로라도 mysql 8.0을 지원하는 버전으로 업그레이드가 필요했다.

다운타임을 최소화하고 안전하게 업그레이드 하기 위해 블루/그린 배포를 사용하기로 했다.

진행 순서는 이런 식으로 했다.
1. aurora 업그레이드 관련 aws 문서 읽기

  1. mysql 5.7 vs. mysql 8.0 차이점
  1. AWS RDS > mysql 8.0 db 파라미터 생성

  2. AWS RDS > db 블루/그린 배포 생성 (dev 먼저 시행)

일단 처음부터 블루/그린으로 업그레이드하려고 했었는데, 찾아보는 과정에서 버그를 많이 목격했다.. 아직 베타 버전은 많이 불안정해보였다.
그래도 dev라 시험 삼아 생성해보려고 했는데, 경고 문구가 뜨고 생성이 안되길래 역시 불안정하니 그냥 수정하는 방식으로 해보자고 얘기를 나눴다.
그렇게 수정하려고 했는데.. 이런 경고창을 만났다.

RDS does not support creating a DB instance with the following combination:
DBInstanceClass=db.t2.small, Engine=aurora-mysql, EngineVersion=8.0.mysqL_aurora.3.02.2, LicenseModel=general-public-license. For supported combinations of instance class and ₽ base engine version, see the documentation.

dev db는 인스턴스 클래스를 db.t2.small로 사용하고 있었다. db 엔진이 지원하는 db 인스턴스 클래스를 확인하는 것이 선행되어야 했다.
aws-cli을 사용해 확인했다.(aws-cli을 사용하기 위해 개인 계정에 iam 액세스 키와 필요한 rds 권한을 추가함)(회사에선 아직 받지 못했기 때문이다..)

aws rds describe-orderable-db-instance-options --engine aurora-mysql --engine-version 8.0.mysql_aurora.3.02.2 \
    --query "OrderableDBInstanceOptions[].{DBInstanceClass:DBInstanceClass,SupportedEngineModes:SupportedEngineModes[0]}" \
    --output table \
    --region ap-northeast-2

결과값엔 역시나 db.t2.small이 없었고 결국 dev의 인스턴스 클래스를 지원 목록에 포함된 db.t4g.medium으로 변경하기로 했다.(이건 그냥 바로 수정했다.)

그렇게 변경하고나니 처음 블루/그린을 생성할 때 경고 문구도 인스턴스 클래스 관련인게 생각났다. 혹시나 하고 시도해봤더니 생성에 성공했다..

그리고 왜인지 모르겠지만 블루그린 생성할때마다 파라미터가 pending reboot 떠서 재부팅을 꼭 해줘야했음

  1. 블루(5.7) vs. 그린 비교(8.0) 및 수정
  • 그린 엔드포인트로 접속 및 연결해봤다. 버전 체크도 해봤음
select aurora_version();
select version();
  • 다른 파라미터들은 기본값을 사용하고 있어서 크게 문제될 건 없어보였으나 예약어가 걸리는게 있었다. 기존 컬럼값으로 사용하고 있던 rank가 8부터 예약어로 추가되었기 때문이다.
    그래서 사용되는 api들에서 모든 rank 구문에 백틱을 추가로 감싸줬다. (애초에 ide(워크벤치 사용 중)에 쿼리를 붙여보니 아예 rank에 빨간 줄로 에러 표시가 났다.)

  • 제일 중요한 타임존.. (확인을 놓쳐서 나중에 파라미터 수정 후 재부팅했다.... 다음엔 그러지말자) 원래 Asia/Seoul 사용 중인데 업그레이드 하면서 기본값 UTC로 설정됐다. 다시 변경해주자..

  • 파라미터그룹 콘솔에서 파라미터들 체크 해서 비교가 가능하다. 해봤는데 문제될건 아직 없어보임... 몇가지 아리송한건 서치해봤는데 거의 aws가 자체로 안정성을 위해 추가한 것들이었다.

  1. 전환하기, old 삭제

우와
전환 얼마 안걸림. 제한시간도 입력 가능(기본 5분)

profile
u0u0u0

0개의 댓글

관련 채용 정보