AWS RDS mysql - 다른 리전에 읽기복제본 생성: 버전이슈

그림0

다른 리전에 읽기복제본을 생성해야 될 때가 있다. 대충 추려보면 다음과 같은 경우.

  1. 다른 리전에 데이터를 읽기만 하는 워크로드가 있는 경우
  2. 다른 리전에 DR 용으로 데이터를 보관하는 경우

그럴때 RDS의 읽기복제본 생성 기능은 매우 간편하고 효과적이다. 파라미터 그룹을 만진다든지 하는 설정을 해줄 필요 없이 대상 리전에 서브넷 그룹만 잘 설정 되어 있으면 콘솔에서 클릭 몇번으로 복제본을 생성할 수 있다.

읽기복제본 생성방법

  1. 생성할 지역 RDS에서 DB subnetgroup 생성
  2. 원본 DB에서 Create read replica 클릭 후 설정.

이렇게 해서 읽기 복제본은 한 인스턴스당 5개 까지 만들 수 있다. 그리고 만든 읽기 복제본을 multi-az 구성해 가용성을 높일수도 있다. 꽤 괜찮은 기능인듯?

그런데, 이게 잘 안될 수도 있다

테스트를 해봤다. 현재(2018년 9월 28일)기준 서울리전에서 mysql 5.7의 최신 버전은 5.7.23이다. 이 버전으로 mysql을 생성하고 도쿄리전에 read replica를 생성해 보겠다.

그림1
안된다…!

그럼 다른 리전에는 될까? 싱가폴엔 된다. 버지니아 리전엔 안 된다. (다른 리전엔 거의 되는 듯 했다.) 뭐지 이게…? 도쿄리전과 버지니아 리전에 장애가 있나?

대체 왜그럴까?

일단 에러를 추적해 보자. 에러는 다음과 같다.

Cannot find version 5.7.23 for mysql (Service: AmazonRDS; Status Code: 400; Error Code: InvalidParameterCombination; Request ID: ed9ba771-ee3e-4334-b868-e3b3082a4286)

그니깐 5.7.23 버전을 못찾겠다는 말이다.

대체 무슨 문제일까 찾아보니, 도쿄리전, 버지니아 리전 등에는 mysql 5.7.23이 없다. 마찬가지로 mysql 5.6.41버전도 tokyo 리전엔 없어서 읽기 복제본 생성이 불가능 하다. 즉, 읽기 복제본을 만드려고 하는 mysql 버전이 해당 리전에 존재하지 않기 때문에 복제본을 생성할 수 가 없는 것이다.

아니 대체 왜? 보통 도쿄, 버지니아는 업데이트가 가장 빠른 지역이 아닌가. 그나마 의심해 볼수 있는건 최신버전을 RDS에 적용하는데 문제가 있다거나… 홀수 버전은 취급 안한다든가… 등을 의심해볼 수 있겠지만 무슨 이슈가 있는지 정확하게 파악기는 어렵다. 그냥 지금 상태로는 안되는 것이다. 따라서 마이너 버전 업데이트를 롤백하든지… 도쿄리전 등에 마이너 버전이 업데이트 되길 기다리든지 해야 한다.

여튼 RDS에서 다른리전에 읽기복제본 생성시 주의사항 하나가 추가되었다.

대상 리전에 해당 mysql 버전이 있는지 확인할 것

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×