2023년 04월 테스트
RDS 블루/그린 배포로 데이터 베이스 업그레이드 하기
목표
최소 다운 타임으로 데이터 베이스 업그레이드 하기
test db 생성
https://brunch.co.kr/@topasvga/3102
1
mysql 5.7 -> mysql 8.0
스위칭은 1분 이내?
다운 타임 체크는 어떻게?
blue
aurora mysql 5.7 생성
reader 1
writer 1
green
2
참고
DB서버 사양이 T3 Small은 지원을 안한다.
T3 medium부터 지원을 한다.
처음부터 사양을 T3로 하거나, 사양을 T3 medium으로 업그레이드후 진행해야 한다.
3
클러스터 파라미터 그룹을 미리 생성하고, binlog format을 mixed로 변경하여 바이너리 로그 활성화가 필요하다.
디비 생성시 지정하여 사용하면 나중에 따로 부팅 안해도 된다.
디폴트 클러스터 파라미터 그룹은 수정을 할수 없다.
4
DB Cluster Parameter Group 생성법 ?
amazon RDS > 파라미터 그룹 > 파라미터 그룹 생성 > 유형 변경 : DB Cluster Parameter Group으로 변경하여 생성하자.
그룹 이름, 설명 모두 입력해야 한다.
binlog format을 mixed로 변경하고 저장하자.
디비 생성시 , 생성한 DB Cluster Parameter Group을 지정하고 생성하자.
5
Blue-Green 업그레이드시는 binlog format을 mixed로 변경하여 바이너리 로그 활성화가 필요하다.
데이터 동기화를 binlog로 사용하기 때문이다.
나중에 따로 적용하려면 부팅이 필요하다.
2분 정도 다운 발생.
디비 생성 시 binlog 디폴트 활성화 하고 사용하자.
성능이 떨어진다는데?
온프라미스도 디폴트로 Mixed 이다. 성능은 문제가 되지 않는다.
6
업그레이드 작업 전
클러스터 파라미터 그룹 생성 및 파라미터 설정
파라미터 설정은 타임존, 캐릭터 셋 등을 설정한다.
7
업그레이드 버전의 옵션 그룹도 생성한다.
8
데이터베이스 클러스터 선택
오른쪽 상단 - action > create blue / green 배포 생성
9
파라미터 설정
8.0으로 선택
미리 생성한 클러스터 파라미터 그룹 선택
참고로, 블루와 동일한 버전으로 배포 후, 업그레이드해도 된다.
10
그린 스테이징이 생긴다.
걸린 시간은?
50기가는 1시간 소요.
데이터가 많으면 하루 전에 작업?
그냥 데이터 없이 그린 스테이징 만드는데도 50분은 걸린다.
11
업그레이드 실행
그린인스턴스에서 싱크로 표시 되지만, 적용 안 되는 경우가 있다.
그린에 접속해 파라미터 적용 안 된 경우 인스턴스 재시작하면 파라미터 적용 된다.
12
서비스에 문제없으면 , 블로 그린을 스위치 오버 한다.
액션 - 스위치 오버 한다.
타임 아웃 시간을 30초~ 1달 가능.
타임 아웃 시간이 짧을 경우 스위치 오버가 안될 수 있다.
전환 가드레일이 진행 된 후 실제 스위치 오버가 수행된다.
1
기본 데이터 없어도 50분 걸린다.
2
블루 그린 환경에서 프라이머리 쓰기를 중단하고, 새 데이터 베이스 연결 허용 안 함.
3
그린 데이터 베이스가 블루 데이터 베이스의 데이터 동기화를 따라잡을 때까지 기다린다.
4
그린의 이름은 블루로 변경된다.
그린 엔드포인트가 기존 블루의 엔드포인트로 변경된다.
블루 클러스터와 인스턴스 이름은 기존 -> old - 숫자로 변경된다.
5
2개 데이터 베이스의 연결을 허용하고, 그린은 새로운 트랙잭션을 허용한다.
블루는 재부팅되기 전까지 읽기만 허용한다.
6
완료 후 8.0 전환 확인
애플리케이션에서는 커넥션 풀과 dns ttl 확인으로 새로운 데이터 베이스로 접속 확인하라.
7
블루 삭제
기존 5.7은 검증 후 삭제
Amazon Aurora msql 호환 5.6 이상
Amazon RDS for mysql major 5.6 이상
Amazon RDS for MariaDB 10.2 이상
Amazon RDS Proxies
리전 간 읽기 복제본
Aurora Serverless v1 DB 클러스터
Aurora 글로벌 데이터 베이스의 일부인 DB클러스터
AWS Cloudformation
1
디 비클러스터 암호화는 기존 그대로 가는것만 지원된다.
암호화되지 않는 디비 클러스터는 암호화된 디비 클러스터로 변경 불가
암호화된 디비 클러스터는 암호화된 지 않은 디비 클러스터로 변경 불가
2
블루 환경과 그린 환경의 리소스는 동일한 aws 계정에 존재해야 함.
rds 업그레이드
스키마 변경 작업
인스턴스 변경 가능
디비 파라미터 변경 작업 - 인스턴스 재부팅이 필요한 경우
유지 관리 업데이트에 활용
1
RDS 테스트후 반드시 삭제하자.
비용이 많이 나온다.
2
스냅셧도 별도로 삭제하자.
삭제시 그냥 삭제하면 스냅셧을 만든다.
삭제시 스냅셧 만들지 않음으로 했으면 스냇셧은 없다. 하지만 그냥 삭제하면 스넷셧이 별도로 생기니 반드시 삭제하여 비용이 나오지 않도록 하자.
1
다운타임 제로가 아님
2
클러스터 파라미터 활성화 1회 부팅 - 이 부분은 사전에 클러스터 파라미터 그룹을 만들고, MIXED로 만들어 사용하면 클러스터 파라미터 활성화로 인한 부팅 필요 없음.
3
블루 그린 전환시간 다운 필요.
4
블루 그린 동시 유지시 비용 추가 발생함.
5
DB 생성시 ?
1) DB생성 전에 클러스터 파라미터 그룹을 만들고, bin포맷을 MIXED로 만들어 사용하자.
2) 기 생성된 DB는 새 클러스터 파라미터 그룹을 만들고, 해당 클러스터 파라미터 그룹으로 변경하고, 디비 부팅하여 적용하자.
1
유튜브
메가존 클라우드
Aurora mysql 5.7 -> 8.0
https://www.youtube.com/watch?v=j0Ezx4M1pm8
2
블로그
Aurora mysql 5.7 -> 8.0
3
lg전자
4
5
DB 자료
https://brunch.co.kr/@topasvga/1768
감사합니다.