brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Aug 31. 2023

31탄-1. LG전자 블루/그린 이용한 오로라 RDS

23년 8월 업데이트

목표

RDS 블루/그린 배포 기능을 통한  데이터베이스 업그레이드 사례를 보자.  


블루/그린 배포란?

미리 한 세트를 더 만들고, 한 번에 이전하는 방식이다.

기존 서버군가 별도로 새로운 버전이 배포된 서버군을 구성하고, 로드 밸런서 혹은 서비스 디스커버리 수준에서 참조 대상을 교체하는 방식으로 이뤄지는 배포를 말한다.



롤링 업데이트?

쿠버네티스의 디플로그먼트 리소스는 특별한 설정 없이도 롤링 업데이트가 되지만, 조절해 롤링 업데이트 시 동작을 제어 할 수 있다.

롤링 업데이트 중 동시 삭제할 수 있는 파드의 최대 개수, 지정한  파드 수의 비율을 지정할 수 있다.

기본 값은 리플리카의 25%이다.

리플리카 값이 8이면 그 25%에 해당하는 2개의 파드가 동시 삭제 될 수 있다.




<1> 과거 데이터 베이스 업그레이드 방법

<2> RDS 블루/그린 배포 방법

<3> 동작?

<4> 전환 작업

<5> LG전자의 RDS 블루/그린 배포  



<1> 과거 데이터 베이스 업그레이드 방법 


1

과거 방법 1

In-place 데이터 베이스 업그레이드 = 간단, 하지만 예측할 수 없는 긴 다운 발생 = 실무에서 사용이 어렵디. 


과거 방법 2

복제를 통한 스테이징 구성 - 안정/빠르다 = 신중한 계획과 경험이 많은 인력 필요.  



<2> RDS 블루/그린 배포 방법 


1

1분 내외 전환 가능. 


2

블루에서 그린으로 전환.

블루에서 그린으로 자동 데이터 복제됨. 


3

언제 사용하면 될까요?

메이저/마이너 버전 업그레이드

스키마 변경

인스턴스 스케일링

엔진 파라미터 변경

유지보수 업데이트 


4

지원 버전은?

Amazon Aurora Mysql 5.6  이상

MySQL용 Amazon RDS 버전 5.7 이상

MariaDB용 Amazon RDS 버전 10.2 이상 



<3> 동작? 


1

현재 운영 환경(블루)의 미러링 된 복제본을 그린(미래 환경)으로 생성. 


2

전환 전 그린 환경을 이용한 변경 사항 테스트 


3

전환 기능을 이용한 전환 


4

애플리케이션의 복구 시간 목표에 따라 최소 30초에서 최대 1시간까지의 전환 시간제한을 지정할 수 있다.

이 지정된 시간을 넘게 되면 모든 변경 사항은 취소되고 다시 롤백된다.

장시간의 작업 지연 상태를 방지할 수 있다. 


5

모든 트래픽은 그린으로 사용.

1분~수분이내 작업 된다.

전환 과정 중에 디비 연결은 중지될 수 있다.

DB 클러스터 이름은  그린환경이 블루 환경의 이름을 이어받게 된다. 


6

기존 블루 서버는 다른 이름으로 남아 있다.

전환 후 이상 없다고 확인되면 삭제하자.   




<4> 전환 작업 


1

전환 가드레일

블루 환경 검사 - 외부 복제, 장기 실행 중인 쓰기 작업이 없는지, 장기 실행 중인 DDL 문이 없는지 검사

그린 환경 검사 - 복제 상태, 복제 지연, 쓰기 작업 검사 


2

쓰기 작업 중지 - 블루 / 그린 두 환경 모두 디비 클러스터 쓰기 중지 


3

연결 차단 - 두 환경 모두 DB인스턴스에 대한 연결 끊고 새 연결 허용 안 함 


4

복제 대기 - 그린 환경이 블루와 동기화되도록     






<5> LG전자의 RDS 블루/그린 배포  


1

EOL 발생.  

EOL 일정 확인 


2

테스트 DB, 스테이지 DB,  운영 환경 DB  단계적 업그레이드 


3

1주일 전부터 그린 구성해 준비 


4

시간별 서비스 영향도 확인표 작성 




5

Green의 Event scheduler off  필수, 스케쥴러가 켜져 있을 경우 동기회 에러. 


6

Binlog_format= ON 이 필수.   

오로라는 빈로그 사용하지 않는 경우가 있어 mix나 다른 설정값으로 변경필수

빈로그 온하면 부팅 한번 필요함.

빈로그는 쓰기 성능 저하됨.  모니터링 필수, 스펙업 필요할 수 있음. 

오로라의 인핸스드 빈로그 기능이  2023년 5월 생김. 기능 확인 바람. 


7

오로라 진행 시, 그린의 Event scheduler off  필수

RDS는 Event scheduler 온이라도 무관함. 


8

Blue에 External replocation 설정이 되어 있는 경우, 스위치 오버가 안됨.

Blue에 External replocation 설정 해제 필요.

Reset 명령어?

CALL mysql.rds_reset_eternal_master;  


체크리스트 작성이 필요해 보임.



9

Blue의  External replication 유무 확인법?

확인 1 ) AWS > Blue  클릭 > Connectivity & security > Rplocation > Replication state가 Error이면   External replication 설정 정보가 남아 있는 것.

확인 2 ) Blue  접속 >  show slave stgatus\G  실행 시  동기화 정보가 나오면   External replication 설정 정보가 남아 있는 것.  


10

문제점?

Green  생성 시  IAM Role 이전되지 않는 문제.

Blue에 IAM Role이 있을 경우, Green에  Role Add 작업은 별도 수행 필요.  


11

AWS 기술 블로그 자료 참고

https://aws.amazon.com/ko/blogs/tech/  




다음 자료

https://brunch.co.kr/@topasvga/3421




모아보기~


https://brunch.co.kr/@topasvga/3420



감사합니다.

매거진의 이전글 37탄-2.  AWS- S3 보안 강화
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari