본문 바로가기
[AWS]

클라우드 환경으로 데이터베이스 마이그레이션

by SAMSUNG CLOUD-OKY 2020. 9. 4.
반응형

https://www.youtube.com/watch?v=V6g1SE4DkK4&list=PLORxAVAC5fUWg_jFcq8hNJEMzELtAD6kc&index=4

 

클라우드 환경으로 데이터베이스 이전하기 - 강민석, AWS SR. Database SA

 

 

 

 

 

Database Migration 방법론의 이해

- Lift & Shift (DB on EC2)

- Managed Service (RDS)

- Modernization (Database Freedom)

 

 

 

 

 

 

 

AWS에서 제공하는 데이터베이스 서비스

- 관계형DB : 기존 어플리케이션, ERP, CRM, 전자상거래

- Key-Value : 높은 트래픽 처리를 위한 전자상거래 시스템, 게임

- 인메모리 : 캐싱, 세션관리, 게임 순위표 어플리케이션

- 문서(DocumentDB) : 콘텐츠 관리, 카탈로그, 사용자 프로필

- 와이드 컬럼 : 장비관리를 위한 대규모 산업용 앱

- 그래프(Neptune) : 부정 탐지, 소셜 네트워킹, 추천 엔진

- 시계열(Timestream) : IoT 어플리케이션, DevOps, 산업용 텔레메트리

- 원장(QLDB) : 레코드 시스템, 공급망, 등록, 은행거래

 

 

 

 

 

Database Freedom 정의

- 상업용 데이터베이스로부터 Cloud Native Database로 변경

 

 

 

Database 마이그레이션 절자 : 각 단계별 AWS 전문가 및 컨설팅 권장

- Migration

- Move to Managed

- Modernize

 

 

On-premise 환경 vs Cloud 환경 DB운영의 차이

 

 

On-Premises에서 데이터베이스 운용

 

 

Amazon EC2에서 데이터베이스 운영

 

 

 

Amazon RDS (고객은 자신의 비즈니스에 더 집중)

- App Optimization

  : 스키마 디자인

  : 쿼리 구성

  : 쿼리 최적화

 

 

 

 

 

DataBase 올바른 의사결정을 위한 추천

- Amazon RDS

  : 관리형 서비스인 Amazon RDS를 권장

  : 고객의 비지니스에 집중

  : 어플리케이션의 최적화에 집중

  : 사내에 전문 데이터베이스 인력 부족

 

- DBMS on Amazon EC2

  : DB인스턴스에 대한 Full 권한을 가짐

  : 백업, 복제, 클러스터링

  : Amazon RDS에서 제약되는 기능 및 옵션 사용

  : RDS의 범위를 넘어서는 용량 및 성능 필요

 

 

 

 

Oracle 마이그레이션 전략

 

 

 

 

Oracle Release and EOS

- 오라클 11g 는 2020년 12월에 EOS 예정으로, 업그레이드 필요

 

 

 

RDS Oracle on AWS

- 오라클 RDS는 4가지 종류가 있음 (SE1, SE, SE2, EE)

- 이중 12g 이상 사용가능은 SE2 와 EE.

- 라이센스 별 / 오라클 서포트 문의 방법

 

 

오라클에서의 고가용성(HA) : 총 4가지 있음

- Stand Alone : 한 박스로 구성, 이중화 없음

- 클러스터링 : 다수의 노드로 구성, 스토리지는 하나로 장애 가능성

- HA(DR) : Oracle Data Guard 솔루션으로 DR센터로 복제                   

 

 

오라클에서의 고가용성(HA) : 총 4가지 있음

- RAC (Real Application Cluster) 란?

  : 2개 이상의 노드를 붙일 수 있음, 확장하여 성능을 향상할 수 있음.

  : 단점 - 비용 및 스토리지는 SPOF

 

 

AWS로의 Migration - RDS 오라클

- 장점

  : 오라클과 같은 엔진을 사용하기 때문에 변경 작업 필요없음.

  : AWS - HW, Setup, Patch, Backup

  : Customer - Application Optimization

 

- 단점 : RAC 지원하지 않음, DBA 권한 제한

  : Oracle Database Engine에서의 DBA Role 은 모든 관리 권한을 갖음

  : Limited DBA role (제한된 DBA 권한)

    _ Alter database

    _ Alter system

    _ Create any directory

    _ Drop and directory

    _ Grant any privilege

    _ Grant any role

 

 

 

 

 

 

 

AWS로의 Migration - 오라클 RAC

1. RAC on EC2 - FlashGrid Node for Oracle RAC

   - FlashGrid 3rd 툴을 사용

   - EBS를 Active-Active 구조로 변경

 

2. Oracle RAC on VMware Cloud on AWS

 

3. 현재 AWS 자체적으로 RAC 기능 개발중....

 

 

 

 

마이그레이션 - Database Freedom

- 오라클 to Aurora

   : Aurora postgresql and Aurora mysql

   : DMS - DATA 이전시 도움

   : SCT - 소스 컨버전시 도움 (대부분 시간 소요)

- DMGD (AWS DB이관 전문팀)

 

 

 

MS SQL 서버 마이그레이션 전략

 

 

 

 

 

 

MS SQL서버 버전 and EOS

- SQL 서버 2000 (엔터프라이즈 기업 사용 시작) ~ 2019 까지 제공

- SQL 서버 2008 / 2008R2 까지 EOS로 사용 못함

- 사용시 : SQL서버 2016 이상 사용 권장함.

 

 

 

 

MS SQL서버가 제공하는 고가용성 기능

- Log Shipping

- Mirroring

- Replication

- Failover Cluster

- AlwaysOn

 

 

 

 

 

 

 

MS SQL서버 고가용성 구성 - Mirroring (DB복제 방법)

- 변경된 Data 복제 방법

 

1. 동기식 - 하나의 트랜잭션으로 수행시간 길어짐, DATA 정합성 보장

 

2. 비동기식 - Commit 수행 (성능 영향없음), 수동 Failover 지원

 

 

 

 

MS SQL서버 고가용성 구성 - 클러스터링

- Active/Passive Failover Cluster

  : Virtual IP 사용

  : SAN 소유권 이동

 

- AWS 클라우드에서는 SAN 미지원 : 크러스터링 서비스 사용 불가

 

 

 

 

 

 

 

 

MS SQL서버 고가용성 구성 - AlwaysOn

- AlwaysOn 은 클러스터링 대안 (표준 아키텍처로 자리잡음) : SAN 스토리지 미사용

- 리소스만 등록 : 로컬 디스크 사용

 

 

 

 

 

 

 

MS SQL서버 AlwaysON on AWS(EC2)

- 스토리지 

   : NVMe - 로컬 인스턴스 스토리지 (데이터 유실 가능성 - 관리자 EC2 리부팅시)

   : EBS - 데이터 보존 (엔터프라이즈 APP 사용 적합)

 

 

 

 

 

 

 

 

 

마이그레이션 전략 - MS SQL서버

1. RDS SQL서버 (백업&복구 방법 3가지)

   - Full백업 & Restore

   - Differential 백업 & Restore

   - Transaction Log 백업 & Restore : 다운타임을 최소화하기 위해서는 지속적으로 Transaction Log 백업 후,

                                                  RDS에 Restore

   - DMS솔루션으로 CDC로 온라인 Transaction 을 RDS SQL서버로 이전하고, 특정시간에 서비스 Takeover 하는 방법

 

2. SQL서버 on EC2

 

3. Aurora

   - DMS (데이터 이전) / SCT (소스컨버전) : Function에 대한 베스트프랙티스 참고 (Playbook)

 

 

 

 

차세대 DB운영환경

 

 

 

 

Connection 관리 - Aurora (총 4개)

- Cluster endpoint : Read/Write 가능한 Master

- Reader endpoint : Read Only connection

 

 

 

 

 

 

Failover시 Application 영향 - Aurora

- 이슈 : Aurora는 20초 이내에 Failover 되었지만 App에서 2분동안 접속되지 않음

- 원인 : 데이터베이스가 Failover 됐음에도 WAS에서 관리되고 있는 Connection Pool 의 Timeout 또는

           Client의 DNS Cache로 인한 문제

- 해결 방법

   : RDS Proxy

   : APP에서 Connection 모니터링 및 관리

   : APP DNS 캐시관리 (ex. JVM 기본 60초 -> 5초 변경)

 

 

 

 

 

Aurora Multi-Master - mysql5.6 (RAC와 비슷한 기능)

- Write 분산

   : Connection 관리는 APP에서 진행

- Write 장애시

   : APP 에서 Connoction 재분배

- APP 역할

   : Connection 관리

   : 동시에 같은 Page에 Write시 후순위 Transaction 실패

   : Write Operation에 대해서 Retry Logic 추가 필요

 

 

 

 

 

 

 

Aurora Global Database - Internal Architecture

- 글로벌게임사 아키텍처

- 스토리지에서 Data복제, APP 변화없이 DB 사용 가능

 

 

 

 

 

 

Aurora Global Database

- 최대 5개의 Secondary 리전 추가 가능

- 15개의 Read Replica 추가 가능

- 초당 20만건 처리량

- 리전간 복제 1초 이내

- 마스터 리전 이전시 1분 이내 (DR센터 역할)

 

 

 

 

Connection Pooling with RDS Proxy

- 일반적으로 APP은 Connection Pool을 사용

- RDS Proxy는 Connection Pool을 관리하고 연계 역할을 함.

 

 

 

 

 

 

 

 

Minimize Failover Disruption with RDS Proxy

- RDS Proxy를 사용하면 66% 속도 개선

 

 

 

 

 

AWS Migration Playbooks

 

 

 

 

 

 

 

 

 

반응형

댓글