공부, 기록

[RDS SQL Server] 인스턴스 타입 변경 본문

공부/DATABASE

[RDS SQL Server] 인스턴스 타입 변경

무는빼주세요 2024. 5. 21. 16:34

이슈

R4,M4 타입 중단으로 인한 인스턴스 타입 변경 필요.

 

대상

인스턴스타입

  AS-IS TO-BE
DB1 r4.2xlarge  r6i.2xlarge 
DB2 r4.xlarge r6i.xlarge
DB3 m4.4xlarge m6i.4xlarge
DB4 m4.xlarge m6i .xlarge
DB5 r4.2xlarge r6i .2xlarge
DB6 r4.xlarge r6i .xlarge
DB7 r5.2xlarge r6i .2xlarge



작업 영향

MultiAZ 인스턴스 1회 다운(1분 이내)

SINGLE 인스턴스 1회 다운 (30분 이내)

 

테스트

DB1 r4.2xlarge → r6.2xlarege 

DB3 m4.4xlarge → m6.4xlarge

 

 

타입 변경 차시 작업 시작 시간 fail over 시작 시간
aws 콘솔 로그(작업 시작 후 시간)
fail over 상세 시간 db 로그 전체 작업 완료 시간
r4 → r6 1 09:52 10:10 - 10:10 (18분) SECONDARY_NORMAL TO NOT_AVAILABLE : 10:00:57
NOT_AVAILABLE TO SECONDARY_NORMAL : 10:08:20
RESOLVING_NORMAL TO PRIMARY_PENDING : 10:10:18
PRIMARY_PENDING TO PRIMARY_NORMAL : 10:10:19
10:27 (35분)
r4 → r6 2 11:17 11:34 - 11:35 (17분) SECONDARY_NORMAL TO NOT_AVAILABLE : 11:25:21
NOT_AVAILABLE TO SECONDARY_NORMAL : 11:32:36
RESOLVING_NORMAL TO PRIMARY_PENDING : 11:34:32
PRIMARY_PENDING TO PRIMARY_NORMAL : 11:34:33
11:51 (34분)
r4 → r6 3 13:17 13:42 - 13:43 (25분) SECONDARY_NORMAL TO NOT_AVAILABLE : 13:32:16
NOT_AVAILABLE TO SECONDARY_NORMAL : 13:40:33
RESOLVING_NORMAL TO PRIMARY_PENDING : 13:42:35
PRIMARY_PENDING TO PRIMARY_NORMAL : 13:42:36
14:00 (33분)
m4 → m6 1 09:52 10:09 - 10:09 (17분) Mirroring active 
10:07:02 ~ 10:07:24
The mirrored database is changeing role MIRROR TO PRINCIPAL
10:08:47 ~ 10:08:49
10:24 (32분)
m4 → m6 2 11:06 11:24 - 11:24 (18분) Mirroring active
11:22:05~11:22:50
The mirrored database is changeing role MIRROR TO PRINCIPAL
11:23:50 ~ 11:23:51
11:39 (33분)
m4 → m6 3 13:23 13:43 - 13:43 (20분) Mirroring active
13:41:19 ~ 13:43:18
The mirrored database is changeing role MIRROR TO PRINCIPAL
13:43:18 ~ 13:43:19 
14:01 (38분)

 

LIVE 작업 히스토리

DB3 m4.4xlarge → m6.4xlarge

 

TPS 테스트

READ, INSERT 단건 테스트 SP 진행

Batch Request/s 200 TPS 100 기준

DB1 에러 건수 3100건 DB3 에러 건수 9100건

점검 6시 기준 실제 인입 Batch Requests/s 예상 에러 건수 125 ~ 370

부하로 인한 페일오버 지연 확인 안됨.

 

LIVE DB의 경우 과거 EBS로 PERF에 비해 처리량 등의 성능이 떨어짐

또한 live db의 경우 MultiAZ 미러링 PERF는 AG 구성 이에 따른 변화 발생 가능

Perf 테스트로는 위에 사항까지 검증 가능.

 

로그 및 확인 사항

ENT.

SECONDARY_NORMAL TO NOT_AVAILABLE : 세컨더리 서버 인스턴스 타입 변경을 위한 DOWN

NOT_AVAILABLE TO SECONDARY_NORMAL : 세컨더리 서버 인스턴스 타입 변경 완료로 AG 투입

RESOLVING_NORMAL TO PRIMARY_PENDING : 프라이머리 서버 인스턴스 타입 변경을 위한 페일오버

PRIMARY_PENDING TO PRIMARY_NORMAL : 페일오버 완료 

 

 

STD.

Mirroring active : 세컨더리 서버 인스턴스 타입 변경 완료 이후 미러링 시작

The mirrored database is changeing role MIRROR TO PRINCIPAL : 프라이머리 서버 인스턴스 타입 변경을 위한 역할 전환

 

RDS MS-SQL 인스턴스 클래스 변경건

Active-Standby(always-on) 으로 구성된 RDS MS-SQL의 인스턴스 클래스를 변경하면-

  1. Standby 서버의 인스턴스 클래스를 변경하고,
  2. failover 하여 변경된 Standby 서버를 Active 상태로 만들고,
  3. 이 후에 Standby 서버가 된 기존의 Active 서버를 변경하고 완료하게 됩니다.

하여 서비스가 중단되는 시간은 failover 가 일어나는 시간인데, 보통은 수십초내에 완료되고 최대로 걸려도 수분내에 완료됩니다.

전체 프로세스가 걸리는 시간은30분정도 소요되는데, 점검시간은 30분~1시간 정도로 잡으시면 여유롭게 완료할 수 있을 듯 합니다.

아래는 저의 테스트 계정에서 진행해본 로그입니다. 전체 소요시간은 30분정도 걸렸고, failover (서비스 중단) 시간은 1분내에 완료되었습니다.

 

 

최종 작업

예상한 시간과 동일하게 처리됨

페일오버 : 작업 시작 15분 이후 

작업완료 : 작업 시작 30분 이후

 

작업간 이슈

  1. agent 동기화 작업을 미리 진행해야함

  2. 백그라운드 트레이스, xevent 세션 등을 재설정 필요함