AWS/AWS_Service

[AWS] RDS Blue/Green 배포를 통한 무중단 업그레이드

달콤한달팽이 2023. 11. 3. 14:34
반응형

안녕하세요, 달콤한달팽이입니다.🐌😁


오늘은 RDS를 Blue/Green 방식을 사용하여 무중단 업그레이드를 진행하는 방법에 대해 알아보겠습니다.


Blue/Green 배포란?

Blue/Green 배포란 무중단 배포 기법 중 하나로, 이전 버전(Blue 환경)과 새 버전(Green 환경)을 구성한 상태에서 Green이 성공적으로 배포가 완료된 것을 확인한 후 Blue에서 Green으로 완전히 트래픽을 이전시키는 방식을 의미합니다.

 

RDS Blue/Green 배포의 특징

RDS를 Blue/Green 형식으로 배포했을 경우 몇가지 장단점이 존재합니다.

 

[장점]

 1) 버전간 호환으로 인한 문제 미발생

 2) 무중단 배포 가능

 3) 손쉽게 롤백 가능

 4) 엔드포인트 유지

 

[단점]

 1) Blue, Green 배포 동안 추가 비용 발생

 

때문에 이러한 장단점을 잘 고려하며 사용하는 것이 중요합니다.

 

이제 실제로 RDS Blue/Green 배포를 통해 버전 업그레이드를 진행해보겠습니다.


1) 테스트용 RDS 생성

우선 RDS Blue/Green 배포를 테스트하기 위해 테스트용 RDS를 하나 생성해두었습니다.

(타 설정은 무관하나, 자동 백업 기능이 켜져있고 보존 기간이 1일 이상으로 설정되어 있어야합니다!)

 

2) Blue/Green 배포 

앞서 생성한 RDS의 작업 탭에서 블루/그린 배포 생성을 선택합니다.

 

이후 Green 버전에서 사용될 엔진 버전과 파라미터 그룹을 선택합니다.

다만, 아래와 같은 특이사항도 있으므로 주의가 필요합니다!

 1. RDS의 메이저 버전 업그레이드 시, Default 파라미터 그룹만 선택 가능

 2. 옵션 그룹은 설정 불가

 

이후 Optimized Writes 기능을 통해 쓰기 속도를 향상시킬 수 있지만, 지원되는 타입이 별도 존재합니다.

이번 실습에서는 비활성화 하도록 하겠습니다.

** Optimizaed Writes: 비용추가 없이 쓰기 기능 및 트랜잭션 처리량 향상

 

이후 기존 Blue RDS를 비롯해 Deployment RDS, Green RDS가 추가 생성됩니다.

Green RDS는 " 생성 중 → 수정 중 → 업그레이드 중 → 사용 가능"으로 변경됩니다.

 

이때의 Blue RDS는 기존과 동일하며, Green RDS는 green이라는 설명이 붙게 됩니다.

이를 통해 아직까지의 트래픽은 Blue RDS로 전달되는 중이란 것을 알 수 있습니다.

 

Green RDS 생성이 완료되면, 추가적으로 변경할 작업을 진행합니다.

실습에서는 아래와 같은 사항들을 수정했습니다.

 

3) Deployment 전환 

이제 Deployment RDS에서 전환을 수행함으로써 Green RDS를 실사용하도록 변경해주어야 합니다.

 

이후 시간이 흐르면 Deployment RDS의 상태가 "전환 완료"로 변경되고, RDS들의 식별자가 변경됩니다.

(Green RDS 식별자 > 기존 Blue RDS 식별자 & Blue RDS > 기존 Blue RDS 식별자-old)

 

이후 Deployment를 통해 각 RDS의 설정값을 확인할 수 있으며, 이때 전환 작업 이전과는 엔드포인트가 변경되었음을 확인할 수 있습니다.

 

4) RDS 정리 

이후 필요하지 않은 RDS(Blue RDS, Deployment RDS)를 삭제하여 과금을 멈추도록 합니다.

(이때 기존 이름과 헷갈려 Green RDS를 삭제하는 일이 없도록 주의해주세요!)

 


지금까지 무중단으로 RDS를 업그레이드 하는 RDS Blue/Green 배포 방법에 대하여 알아보았습니다!

감사합니다!  

반응형