top of page

RDS 패치 - 다운 타임을 0에 가깝게

AWS Hands-on Lab #4 : RDS 패치 - 다운타임을 0에 가깝게

AWS Hands-on Lab #4 : RDS 패치 - 다운타임을 0에 가깝게

Written by Minhyeok Cha


Amazon RDS를 사용할 때 간혹 버전 이슈나 파라미터 설정에 대한 이슈가 들어옵니다.


그리고 올해 db.m4, db.r4, db.t2 rds 인스턴스를 사용하는 고객은 해당 타입의 지원을 2024년 4월까지 폐기할 계획이니 그 전에 인스턴스 타입을 업그레이드하라는 메일을 받았습니다.


물론 AWS가 안내한 내용처럼 타입 폐지 이후 일정 시간이 지나면 자동으로 업데이트(예로 db.t2 → db.t3)가 되지만, 수동 혹은 자동 업데이트 모두 다운 타임이 존재하기 마련입니다.


추가로 몇몇 고객은 타입 변경뿐만 아니라 DB 엔진 업데이트까지 요구하는 분들도 있었습니다.


해당 이슈를 확인하였고 이참에 다운 타임 없이 버전 업데이트하는 방법을 찾아 보기로 했습니다.



RDS Aurora Blue/Green 배포

찾아보니 서버 배포뿐만 아니라 AWS가 만든 RDS의 배포 기능이 있었습니다.

RDS Aurora Blue/Green 배포

blue/green 배포를 사용하기 위해서는 파라미터 그룹에서 “binlog_format”의 값을 변경할 필요가 있습니다.

blue/green 배포를 사용하기 위해서는 파라미터 그룹에서 “binlog_format”의 값을 변경할 필요가 있습니다.

그러나 AWS Aurora는 각 인스턴스가 공유 스토리지 레이어에 직접 쓰기를 수행하여 binlog 수집이 별도로 필요하지 않습니다.


물론 AWS Aurora에서도 위 사진처럼 binlog를 활성화가 가능하지만 인스턴스 메모리에서 데이터 변경이 발생한 후 스토리지 레이어에 기록되기 전에 임시로 더티 페이지와 유사한 사태가 발생하여 기존 방식과 겹치게 되어 이 프로세스 사이에 딜레이가 걸립니다.


즉 성능이 낮아진다는 소리...


그러나 이 부분도 binlog I/O 캐시 기능을 도입해 Aurora 2.10.x 이상의 버전에서 binlog를 활성화하여도 성능 이슈가 크게 없는 것이 발표되어 마음 편히 사용해도 될 것 같습니다.


간단히 살펴보는 워크 플로우

RDS 블루 그린 워크플로우는 배포 - 전환으로 이루어집니다.

RDS 블루 그린 워크플로우
  1. 기존 RDS를 복제하여 배포합니다.

  2. 배포된 환경을 테스트하고 기존 환경에서 배포된 환경으로 전환합니다.

  3. 전환 작업이 완료되었으면 이전 리소스는 삭제합니다.


데모 세션

RDS Aurora 블루/그린 배포에서 설명했듯이 파라미터 수정만 해주면 준비는 끝납니다.


원하는 DB 선택 - 작업 - 블루/그린 배포 생성을 클릭하여 식별자 명을 지정 후 생성합니다.

데모 세션: 원하는 DB 선택 - 작업 - 블루/그린 배포 생성을 클릭하여 식별자 명을 지정 후 생성

배포 시작

배포 시작

배포가 끝나게 되면 다음과 같이 블루(기존의 RDS)와 그린(프로비저닝된 RDS)을 확인할 수 있습니다.


전환

전환

블루/그린의 상태를 확인한 후 전환(스위치 오버)을 시작합니다.


이때 타임아웃을 설정할 수 있는데 30초에서 최대 한 달까지 가능합니다.

단, 타임아웃을 너무 짧게 할 경우 전환 시간 부족으로 자동 롤백되니 참고하시면 좋을 것 같습니다.


최종 결과

최종 결과

전환 완료와 함께 기존의 블루 RDS는 이름에 old가 붙어있는 것을 확인하고 삭제하면 끝납니다.


💡실전에서 사용 중인 DB의 경우, 최근 정상적으로 작동하는지 검증한 뒤 삭제해야 합니다.

마무리

해당 기능에 대해 주의할 점 및 참고 사항이 있습니다.


지원 버전
  • Amazon Aurora MySQL Compatibility 5.6 이상

  • Amazon RDS for MySQL major version 5.6 이상

  • Amazon RDS for mariaDB 10.2 이상

참고 사항
  • 암호화되지 않은 DB 클러스터를 암호화된 DB클러스터로 변경 불가

  • 암호화된 DB 클러스터를 암호화되지 않은 DB 클러스터로 변경 불가

  • 블루 환경 DB 클러스터를 해당하는 그린 환경 DB 클러스터 보다 높은 엔진 버전으로 변경 불가

뿐만 아니라 해당 블루/그린은 공유 데이터가 아니기 때문에 하나의 계정에서만 사용됩니다.


마지막으로 주의할 점인데 해당 기능을 찾은 이유는 먼저 타입 변경 및 버전 업그레이드를 포커스하고 있었으나 RDS 블루/그린 배포는 롤백 기능이 없기 때문에 리스크를 갖고 해야 할지는 의문입니다.


간단한 스키마나 파라미터 등 크게 부담이 없는 변경 사항인 경우엔 사용해도 될 것 같습니다.

조회수 397회댓글 0개

관련 게시물

전체 보기

Comentarios


bottom of page