Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AWS Cloud 환경으로​ DB Migration 전략 수립하기

3,914 views

Published on

BespinGlobal 컨설팅 본부 ​
최정식 위원(js.choi@bespinglobal.com)​
데이터 마이그레이션 세미나 - 데이터로 날자

Helping You Adopt Cloud | 가트너 선정 아시아 No.1 클라우드 MSP, 성공적인 클라우드 도입을 위한 전략, 구축, 운영 및 관리 서비스 제공

Published in: Technology
  • Be the first to comment

AWS Cloud 환경으로​ DB Migration 전략 수립하기

  1. 1. BespinGlobal 컨설팅 본부 최정식 위원(js.choi@bespinglobal.com) AWS Cloud 환경으로 DB Migration 전략 수립하기
  2. 2. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 최근의 DB 에서의 변화들 • 서비스 특성에 맞는 Data Store 고려 • Cloud환경의 PaaS형 DB 서비스 고려 • 비용 절감을 위한 Open source DB 고려
  3. 3. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 목차 • 3 Data element • 7 Data Store type • AWS services and future • Data Architecting process • New Architecting concept on cloud • DB Migration case • AWS RDB PaaS service • Consideration of RDB PaaS ✓ Limitation ✓ Data migration ✓ DB monitoring ✓ DB security • Consideration of Open source RDB • Why AWS PostgreSQL • Process & Tool of Open Source RDB migration RDB DW NoSQL Cache Stream Block Storage Object Storage RDB DW NoSQL RDB Open Source RDB 1. 2. 3. 4.
  4. 4. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com Data related 3 Elements Data Store Data producer Data consumer • Data Store - 7 types of Data Store and each types has a unique their characteristic. - Business requirements are mainly related to Data Store - Some are solution(like RDB, NoSQL) and some are simply File. • Data producer and Data consumer - It could be many kind depending on Data Store - Some are service(like kinesis stream) and some are user application using API/SQL. Oracle SQL TERA CDC ETL MySQL Java App BI App SQL EIS App SQL Sample
  5. 5. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 7 Data store Type Data Store Usage 1 RDB OLTP 2 DW OLAP 3 NoSQL On-line, no consistency 4 Cache In-Memory read cache 5 Stream Near real-time processing 6 Block Storage (File system) File 7 ObjectStorage File AWS Service RDS,Aurora (Oracle, MS-SQL, PostgreSQL, MySQL, Maria) RedShift DynamoDB ElastiCache DynamoDB Accelerator Kinesis DataStreams, Kinesis Data Firehose DynamoDB Streams SQS, ElasticSearch EBS S3 Major Keyword ACID,SQL based,Relational Model, Row Based SQL Based,Columnar, Parallel API,Key-Value Set, Schema-Free,Parallel, eventually consistency API,Key-Value Set, Parallel, memory, volatile API,Key-value, Parallel, volatile OS based AccessibleFile URL based Accessible File
  6. 6. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 참고: Data store - AWS RDS Custom Application Glue QuickSight DMS Producer Consumer Producer & Consumer AWSSDK (API) or Library 이용하여 개발 필요 개발 필요없이 AWSConsole 또는 CLI 등 사용 [표기] [QuickSight] - Fast, easy-to-use business analytics (SPICE : The Super-fast, Parallel, In-memory, Calculation Engine) - RDS, Athena, Aurora, Redshift, Redshift Spectrum 지원 [Glue] - Fully Managed ETL Service - ETL 작업 - Metadata (테이블 정의, 스키마 등) Catalog 생성 : Athena/EMR/Redshift Spectrum 에서 사용 - 스케줄링 제공 : 종속성 확인, 작업 모니터링 및 알림 기능이 탑재 - Apache Spark 환경에서 실행 [Supported File] - JSON, CVS, ORC, Apache Parquet, Avro - gzip, bzip2, lz4 [DMS] - DMS Source : Oracle, MySQL, MS-SQL, MariaDB, PostgreSQL, Aurora for MySQL - Target : Oracle, MySQL, MS-SQL, MariaDB, PostgreSQL, Aurora for MySQL : Redshift, S3
  7. 7. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 참고: Data store - AWS Redshift S3 Apache SPARK Glue DMS EMR DynamoDB Lambda Kinesis Firehose Producer Consumer Producer & Consumer Custom Application EMR Cluster 의 HDFS 안의 파일을 병렬로 Loading 함 AWSSDK (API) or Library 이용하여 개발 필요 개발 필요없이 AWSConsole 또는 CLI 등 사용 [표기] QuickSight [Apache Spark] - In-Memory 기반의 대용량 데이터 고속 처리 엔진, 범용의 분산 클러스터 컴퓨팅 프레임워크 - 정형화된 데이터 처리 (Spark SQL), 실시간 처리 (Spark Streaming), 머신러닝 (Mlib) 등 지원 - Big Data 차세대 구조 (Big Think) : HDFS + YARN+ Spark 구조 [AWS EMR] - Apache Hadoop, Spark 등 빅 데이터 프레임워크 실행을 간소화하는 관리형 클러스터 플랫폼 - Apache Hive 및 Apache Pig와 같은 관련 오픈 소스 프로젝트 지원 (분석, BI 처리) - S3, DynamoDB 등과 양방향으로 데이터 변환 및 이동 처리
  8. 8. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 참고: Data store - AWS DynamoDB AWS CLI … AWS SDK (Application) Apache Hadoop Apache Hive Apache Spark EMR Redshift Redshift Copy DynamoDB Streams DynamoDB 의 Table Activity 로깅을 이용 - Cross-Region Replication Library 사용 (Region 간 복제 구현) - DynamoDB Streams Kinesis Adapter (KCL 과 유사) 사용하여 Stream 데이터 처리 - DynamoDB Streams 의 이벤트를 자동으로 응답하는 Lambda 함수 구현 처리 DAX (DynamoDB Accelerator) 사용자가 API 을 이용하여 Put/Get 구현 DynamoDB 전용 In-Memory Cache 임 DynamoDB API 호환 - App 코드 수정 없이 아래의 작업이 필요함 - Table 관리 작업 (DDL 등) 지원 안함 [작업 순서] 1. DAX Cluster 생성 2. DAX SDK (DynamoDB API 호환) 다운로드 3. DXA Client 사용하도록 App 을 rebuild 4. DAX Cluster End-Point 지정 [Caching Strategies] - Read : Cache 누락 시 DynamoDB 에서 자동 검색 - Write : DynamoDB 에 기록 후 Cache 에 Update (Write-Through Cache) Lambda Notification Producer Consumer Producer & Consumer DynamoDB Streams - DynamoDB 와 DynamoDB Streams 의 End-Point 가 다름 - Logstach Plug-in 을 이용하여 Elastic Search 로 데이터 연동 Apache Hadoop/Hive/Spark 등 에서 AWS EMR Connector 사용 - AWS EMR 환경에서 HiveQL 을 사용하여 데이터 조회 및 저장 가능 AWSSDK (API) or Library 이용하여 개발 필요 개발 필요없이 AWS Console 또는 CLI 등 사용 [표기] [DynamoDB] - Fully Managed NoSQL Database Service - 원활한 확장성으로 예측 가능한 (일관된) 성능 보장 (성능 지연 대신 요청 거부 : Throttling) : RCU/WCU 설정 및 Strongly/Eventually Consistent Read 제공
  9. 9. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 참고: Data store - AWS ElastiCache AWS CLI … AWS SDK (Application) API Java, PHP, Python, Ruby, .NET 용 SDK 존재 언어별 SDK 을 이용하여 API 사용하여 구현 API Producer Consumer Producer & Consumer AWSSDK (API) or Library 이용하여 개발 필요 개발 필요없이 AWSConsole 또는 CLI 등 사용 [표기] [ElastiCache] - Key/Value 기반 In-Memory Cache (Redis, Memcached 엔진 지원) - Cache 선택 시 고려 사항 : 속도 및 비용, 데이터 및 액세스 패턴, 기한 경과 예) Session 정보 유지 및 Sticky Session 처리 시 사용
  10. 10. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 참고: Data store - AWS Kinesis Data Streams Producer Consumer Kinesis–enabled Application Kinesis–enabled Application Log4J Appender Apache Flume Apache Fluentd Kinesis Agent A Kinesis Firehose Lambda EMR Apache Storm Producer & Consumer Apache Log4j Appender 을 Kinesis Log4j Appender 로 변경하여 사용함 Apache Fluentd 에서 Kinesis Data Stream 을 위한 Plugin 사용함 Kinesis Connector Lib (KCL 필요) DynamoDB Redshift S3 ElasticSearch Kinesis Data Analytics 현재 Java, Python, Node.js, .NET 지원 단, Java 설치 필요 독립형 Java 프로그램 (설치,구성 및 시작 필요) Java 만 지원 가능함 Stream 데이터를 표준 SQL 로 처리 및 분석 가능 (실시간 분석 생성, 실시간 대시보드 생성, 실시간 지표 생성) 처리 결과를 다른 Kinesis Streams 에 전달 가능 Kinesis 스트림을 읽고 분석 Hive의 경우 두 개의 다른 Kinesis 스트림을 Join 할 수 있음 AWSSDK (API) or Library 이용하여 개발 필요 개발 필요없이 AWSConsole 또는 CLI 등 사용 [표기] Pulg-in [Fluentd] - 데이터 수집, 소비를 위한 오픈 소스 엔진 - 다양한 로그에 대한 Filter, Buffer, Routing 처리 - 다양한 Plug-in 이 존재 [Apache Storm] - 실시간 분산 클러스터 컴퓨팅 프레임워크 [Apache Flume] - 분산 환경에서 대량의 로그 데이터를 효과적으로 수집, 처리, 전송할 수 있는 프레임워크 - 단순하며 유연한 Streaming Data Flow 아키텍처를 기반
  11. 11. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 참고: Data store - AWS Kinesis Data Firehose Kinesis Agent A독립형 Java 프로그램 (설치,구성 및 시작 필요) Kinesis Data Analytics IoT Redshift S3 ElasticSearch Splunk Lambda Cloud Watch Cloud Watch 의 Log 와 Event 데이터 처리 가능 Producer Consumer Producer & Consumer Kinesis Streams A Kinesis Stream 와 연결된 Firehose 는 Analytics 의 Producer 가 될 수 없음 Firehose Put API 사용 - Java, Node.js, Python, Ruby 용 AWS SDK 이용 Apache Fluentd Apache Fluentd 는 Fluentd Plugin 사용 (Kinesis Firehose API 사용) Output Data 에 대한 Transform처리 Kinesis Firehose AWS SDK (API) or Library 이용하여 개발 필요 개발 필요없이 AWSConsole 또는 CLI 등 사용 [표기]
  12. 12. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 참고: Data store - AWS ElasticSearch Lambda S3Kinesis Streams S3, Kinesis, DynamoDB Streams 의 Event Handler 로 사용 DynamoDB Streams Cloud Watch Cloud Trail kibana 데이터 저장 영역으로 EBS 사용 Kinesis Firehose Logstash ElasticSearch 에 내장됨 ElasticSearch 에 내장됨 Kibana 을 위한 End-Point 가 제공됨 Producer Consumer Producer & Consumer AWSCLI … AWS SDKAPI AWS SDK (API) or Library 이용하여 개발 필요 개발 필요없이 AWS Console 또는 CLI 등 사용 [표기] Apache Fluentd [Logstash] - 실시간 파이프라인 기능을 가진 오픈소스 데이터 수집 엔진 - 서로 다른 소스의 데이터를 탄력적으로 통합, 선택한 목적지로 데이터를 정규화 처리 - 다양한 Plug-in 이 존재 [Kibana] - 강력하고 화려한 오픈 소스 데이터 시각화 플랫폼 - 다양한 시각화 도구를 사용자 지정 대시보드와 결합하여 데이터 통찰력 제공 - 데이터 Discovery/Visualize/Dashboard/Setting 기능 제공 [ElasticSearch] - ElasticSearch 을 쉽게 배포/운영하고 확장 가능한 서비스 - 로그 분석, 전체 텍스트 검색 및 Application 모니터링 기능
  13. 13. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 참고: Data store - AWS EBS AWS CLI … AWSSDK OS Command Create, Delete, Describe, Attach, Detach 등 가능 Producer Consumer Producer & Consumer S3 EC2 Snapshot & Restore 시 사용됨 (현재 Incremental Backup 만 가능함) AWS SDK (API) or Library 이용하여 개발 필요 개발 필요없이 AWS Console 또는 CLI 등 사용 [표기]
  14. 14. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 참고: Data store - AWS S3 DMS Glue EMR S3 Transfer Acceleration Kinesis Firehose Snow ball Edge/Mobile Storage Gatew ay On Premise (Data Center) Athena EBS Redshift Spectrum SNSSQSLambda RedshiftUnload/Copy Redshift AWS CLI … AWS SDK S3 API 사용 - Management, Data Operation 제공 - ls, cp, mv, sync, Upload/Dow nload 기능 제공 S3 Select SDK 사용 - S3 레벨의 데이터 필터링 선 처리 (off-load 검색) - AWS EMR 기반 Presto 이용한 ANSI SQL 쿼리 - Lambda, Java, Python 용 Select SDK 이용 대용량 S3 객체에 대한 빠른 전송 처리 객체의 변경 사항에 대한 이벤트 감지 후 호출 S3 데이터를 Redshift 에 로딩없이 S3 데이터 조회 S3 데이터를 Redshift 데이터와 같이 조회 Interactive Query Service S3 데이터를 표준 SQL 로 조회 Producer Consumer Producer & Consumer QuickSight AWSSDK (API) or Library 이용하여 개발 필요 개발 필요없이 AWSConsole 또는 CLI 등 사용 [표기] Apache Fluentd [Presto] - 짧은 지연 시간의 임시 데이터 분석용 오픈 소스 분산 SQL 쿼리 엔진 - 표준 ANSI SQL 지원 - HDFS 및 S3 데이터 지원 [S3] - AWS 핵심 Service, AWSBig Data 전략의 핵심 Service
  15. 15. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 참고: Data store - AWS Lambda Producer Consumer Producer & Consumer S3 S3 : Lambda 함수를 비동기식으로 호출 DynamoDB : Table 의 Trigger 로 Lambda 함수 호출을 위하여 DynamoDB Streams 을 Pooling 하여 Lambda 호출 : Table 단위의 변경 데이터에 대한 검증, 필터링, 검증 등 Kinesis Streams : 입력 Stream 에 대한 주기적인 (1초) Pooling 후 처리 Redshift DynamoDB S3 DynamoDB Streams Kinesis Streams SNS Cloud Watch 그 외 이벤트 소스 : SNS, SES, Cognito, CloudFormation, Cloud Watch Logs, Cloud Watch Events (Scheduled Event), CodeCommit, Config, Alexa, Lex, API Gatew ay, IoT, CloudFront, Kinesis Firehose, Custom Application SES Cognito CloudFormation IoT API Gatew ay Kinesis Firehose Services (Anything) Custom Applications AWSSDK (API) or Library 이용하여 개발 필요 개발 필요없이 AWSConsole 또는 CLI 등 사용 [표기] [Lambda] - 실시간 데이터 처리, 유연한 백엔드 서비스 구축 시 사용 - Cloud Watch 을 이용한 Cron-job Scheduler 구현 가능 - 제약 사항 : 처리시간 300초 이내, Resue 안됨, Stateless 이므로 상태 저장 필요 - 계정(Who/What)에 대한 권한, VPC 내부/외부 여부에 대한 고려 필요 - VPC 안에서는 IP 개수 및 ENI 할당을 포함한 Free-Warning 고려 필요 - 버전 관리 및 Alias 처리 가능, 버전별 가중치 부여 가능 [Lambda] - Serverless, Event 처리 방식의 Compute Service - 지원 언어 : Java, Node.js, .NET, Python, Go 지원
  16. 16. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com Data Architecting process Business Requirement Decide Data store(s) Decide Data consumer Data producer Data Architecture Step1: From the requirement, firstly we decide data store type. Step2: decide the data store. Step3: By choosing Data Store, decide the data producer and consumer Deep LearningAI/ML DW BigData
  17. 17. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 목차 • 3 Data element • 7 Data Store type • AWS services and future • Data Architecting process • New Architecting concept on cloud • DB Migration case • AWS RDB PaaS service • Consideration of RDB PaaS ✓ Limitation ✓ Data migration ✓ DB monitoring ✓ DB security • Consideration of Open source RDB • Why AWS PostgreSQL • Process & Tool of Open Source RDB migration RDB DW NoSQL Cache Stream Block Storage Object Storage RDB DW NoSQL RDB Open Source RDB 1. 2. 3. 4.
  18. 18. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 온-프레미스 환경을 돌아보면… Difficulty of resource expansion Resource sizing is important Multiple businesses are running on one RDB Various business types are running on RDB Considering the 5-years work- load increase Refer to Tpmc. Resource over-spec sizing Oracle RAC is preferred Infra Cost Efficiency Performance test is important
  19. 19. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com CLOUD 환경에서 달라진 개념 ✓ 프로젝트 초기 단계의 인프라의 용량 산정은 상대적으로 덜 중요 하다. → 그러나, 매월 인프라 비용의 적절성을 매월 확인해야 한다. ✓ 튜닝은 원활한 서비스 제공 측면 외에 직접적인 인프라 비용과 직결된다. ✓ DB 인스턴스는 서비스 단위 별로 철저히 분리 되어야 한다. → 또한, 각 서비스는 비즈니스 요구에 적합한 Data Store를 선택 해야 한다. → 분리된 업무로, 장애 범위가 작아지고, Physical 장비 대비 빠른 fail-over 시간으로 Oracle RAC의 필요성은 상대적으로 줄어 들었다. ✓ 용량 산정을 위한 TMPC 참조는 의미가 적어 졌다. ✓ 성능 테스트의 여러 의미 중 사이징 검증의 의미가 상대적으로 덜 중요해졌다. • 언제든지, 즉시 deploy… ✓ 차세대 프로젝트에서만 가능하던, Re-architecture는 언제든지 가능하다 • Managed, Server-less • 사용한 만큼 지불 • 필요한 만큼 만 sizing… • …..
  20. 20. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com DB Migration Case – Data Store Type 별 RDB DW NoSQL Data Lake RDB DW NoSQL AWS cloudcorporate data center Type Migration Case From To On RDB RDB Same RDB IaaS PaaS New RDB IaaS PaaS DW DW Same DW IaaS New DW PaaS RDB NoSQL NoSQL Same NoSQL IaaS New NoSQL PaaS RDB Example ① Oracle→Oracle ② MySQL→RDS-MySQL ③ Oracle→MySQL ④ Oracle→RDS-PostgreSQL ⑤ TERA→TERA ⑥ TERA→RedShift ⑦ Oracle→RedShift ⑧ MongoDB→MongoDB ⑨ MongoDB→DynamoDB ⑩ Oracle→DynamoDB 1 2 4 3 5 6 8 7 9 10
  21. 21. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com DB Migration Case - RDB to RDB Commercial Open Source Commercial Open Source Commercial Open Source Same RDB New RDB Same RDB PaaS IaaS PaaS IaaS New RDB IaaS PaaS New RDB AWS cloud corporate data center 1 2 4 3 2 1
  22. 22. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com DB Migration Case - Modification Modification range/difficulty Business RDB DW NoSQL Migration From RDB DW RDB NoSQL RDB To Same RDB New RDB Same DW New DW Same NoSQL New NoSQL On IaaS PaaS IaaS PaaS IaaS PaaS IaaS PaaS Application code same same same same same same update same same update Data model same same same same same update update same transform new SQL/DML same same update update same same transform same new new Data same same update update same transform transform same new new DB Object same same update update same new new same new new DBMS configuration update update new new update new new update new new DBMS same same new new same new new same new new HA/DR new - new - new - - new - - Backup new - new - new - - new - - OS/Hypervisor - - - - - - - - - - H/W - - - - - - - - - - 1 2 4 Amazon DynamoDB Amazon Redshift Amazon PostgreSQL Amazon RDS, Aurora 6 87 10 same Update Transform New Cloud provider Managed
  23. 23. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 목차 • 3 Data element • 7 Data Store type • AWS services and future • Data Architecting process • New Architecting concept on cloud • DB Migration case • AWS RDB PaaS service • Consideration of RDB PaaS ✓ Limitation ✓ Data migration ✓ DB monitoring ✓ DB security • Consideration of Open source RDB • Why AWS PostgreSQL • Process & Tool of Open Source RDB migration RDB DW NoSQL Cache Stream Block Storage Object Storage RDB DW NoSQL RDB Open Source RDB 1. 2. 3. 4.
  24. 24. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com AWS PaaS RDB - Managed Service AWS managedCustom managed Easy and fast DBA works - DBMS install/patch - Backup/Recovery - DR/HA with Multi-AZ - Scale-out with Read Replica - Storage IOPS and expansion
  25. 25. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com AWS PaaS RDB - HA/DR, Scale-out What For RDS Aurora Multi-AZ HA/DR Data is real-time copied by storage based sync-mode replication. Infra disaster is auto detected and fail-over to multi-AZ(availability zone) that have replicated data. Read Replica Read traffic distribution (scale-out) Data is logically replicated to another instances by CDC based Async-mode replication. Data is replicated to another instances by shared Multi-AZ storage. It means read only traffic always read same data as master node. Availability Zone A Sync mode Block based Replication Primary Standby Application Read Only Availability Zone B Auto Fail-over Read/Write Read Only Async mode CDC based Replication Availability Zone C RDS Availability Zone A Primary Standby / Read Only Application Availability Zone B Auto Fail-over Read/Write Read Only Standby / Read Only Standby / Read Only Standby / Read Only Standby / Read Only Availability Zone C Shared Multi-AZ storage Aurora
  26. 26. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com AWS PaaS RDB - Backup/Recovery Amazon S3 Back-up - Backup concept is Snapshot - Backup modified block only - Automatically only required blocks are retained by backup policy - Backup is stored on Amazon S3 - Manual, auto-backup (Backup time, schedule, retention) SnapshotBackup Recovery - Easy point-in-time recovery within backup retention period. → Snapshot backup restore + DB Log apply - From Snapshot backup, easy provisioning to new instance. → Suitable for provisioning to QA/Test DB Pointin-time recovery Point in time RecoverySnapshot 7 Restore Log Apply
  27. 27. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com TIP. Snapshot Backup의 활용 What is most important for successful project and stable system management? What makes Test/QA difficult? Cost Effort Timelydata and schema of specific time-stamp … … … … Test/QA Database ! … … … … Test/QA Environment ! … … … … …Test/QA ! What is most difficult for Test/QA environment ? Why Database environment for Test/QA is difficult?
  28. 28. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com AWS RDB PaaS 사용시 고려사항 PaaS 특성상 DB 접근(예:SQL*Plus 로그인)만 가능하다. 이로 인해, DB의 제반 인프라를AWS이 관리해주는 장점이 있는 반면, telnet, ssh, ftp 등으로의 DB서버로의 접근이 제한된다. 1. Limitations 2. DataMigration 3. Monitoring 4. Security
  29. 29. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com AWS PaaS RDB 지원범위 RDB HA/DR Backup/ Recovery Read Replica DB Security DB Monitoring Data Migration IaaS Commercial any Open Source any PaaS Commercial RDS •Oracle •MS-SQL AWS AWS AWS (File Encryption) AWS (Performance Insight, Cloud Watch) AWS Open Source •MySQL •Maria •PostgreSQL AWS Aurora •MySQL comp •PostgreSQL comp
  30. 30. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com AWS RDB PaaS 고려사항 - 제약 사항들 ➢ 아래의 제약 조건들은 항목별로 서로 관련이 있으므로, 충분한 검토가 필요하다. ➢ 추가적으로, 지원 가능한 최소 버전, Option group, Parameter group, Character set 등도 검토가 되어야 한다. RDB Engine Newest Version Maximum Specification vCPU M/M Storage IOPS N/W Commercial RDS Oracle 12.1.0.2.v11 11.2.0.4.v15 64 488G 16TB 40,000 20G MS-SQL 2017 14.00.3015.40.v1 Open Source PostgreSQL 9.6.6-R1 MySQL 5.7.19 32,000 Maria 10.2.11 Aurora MySQL 10.2.11 64TB (auto -expand Managed PostgreSQL 9.6.6-R1 (2018.3)
  31. 31. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com AWS RDB PaaS 고려사항 - Data Migration Dump Data Step2: Direct data transfer Data full Unload Data Full Load Step1: Stop Service Step2: Indirect data transfer Step1: Stop Service Change Data Capture SQL Apply Step1: Initial full data transfer Step3: Stop Service DB LogLog transfer Step1: Full data file copy Step3: Stop Service Step2: Change Data apply Log Apply Step2: DB Log apply Step3: Service open Step3: Service open Step4: Wait for complete Step4: Wait for complete Offline-Direct Offline-Indirect Online-CDC Online-DB Log Source DB Target DB Source DB Target DB Source DB Target DB Source DB Target DB
  32. 32. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com AWS RDB PaaS 고려사항 - Data Migration Migration Test Source DB Freezing Start Migration Service Open Service Downtime Service Downtime Service Downtime Data Transfer Wait for last data applied Wait for complete Log apply Changed data apply Log apply Data Check Data Migration Performance test • Supplemental logging • Force Logging or NoLogging/Direct work Freezing Solution Setup DDL Freezing Schema Check Offline Online - CDC Online - DB Log
  33. 33. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com AWS RDB PaaS 고려사항 - Data Migration Offline Online - CDC Online - DB Log Advantage Simple and safe Minimized service down-time Minimized service down-time Disadvantage Service downtime is long Additional milestones and solution cost Impossible in PaaS Restriction To different RDB? △ O X To different OS? O O X Work Manual/script O X O Tools O O O Key decision point In case of meet service downtime requirement, most preferred method This is last choice to consider In case of no restriction, most preferred method for big size DB. 1. Service downtime 요구 사항, 2. Data migration 작업의 단순성, 3. 데이터 정합성 보장 정도, 4. Data migration 비용을 고려하여 선택
  34. 34. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com AWS RDB PaaS 고려사항 - Monitoring Type Purpose Key Success Point AWS provided Alert Notify Automated and immediate situation detectionand propagation Integrity, Immediacyand Appropriate thresholds setting Performance Insight (Coming end of 2017) Dash Board The overall situation control fornon- experts Expertise of monitored IT component In-depth Analysis Data collectionfor post-problem analysis of experts The adequacy of data for post-issue troubleshooting Amazon CloudWatch CloudWatch만으로는 전문적인 성능 문제를 분석하고 튜닝하는 데에는 한계가 있다. 한국의 대부분의 상용 모니터링 툴은 DMA(direct memory access)방식이어서, PaaS Type RDB에서는 사용할 수 없다. → SQL base 모니터링 툴 필요
  35. 35. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com AWS RDB PaaS 고려사항 - Security 1. Access Control / 2. Audit Log 3. Column Encryption Agent Gateway Sniffing Plug-in API IaaS Oracle O O X O O Non-Oracle O O X △ O PaaS X O X X O Access G/W Audit Log Encryption Key Step1: Request data encryption Step2: Store encrypted data Step2: Request data decryption Step1: Read encrypted data Access deny Access deny APIGateway RDB RDB RDB 접근제어, 감사 로그는 Gateway방식만 가능 컬럼 암호화는API방식만 가능 즉, Application의 수정 필요
  36. 36. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 참고 – Spicy Ware
  37. 37. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 목차 • 3 Data element • 7 Data Store type • AWS services and future • Data Architecting process • New Architecting concept on cloud • DB Migration case • AWS RDB PaaS service • Consideration of RDB PaaS ✓ Limitation ✓ Data migration ✓ DB monitoring ✓ DB security • Consideration of Open source RDB • Why AWS PostgreSQL • Process & Tool of Open Source RDB migration RDB DW NoSQL Cache Stream Block Storage Object Storage RDB DW NoSQL RDB Open Source RDB 1. 2. 3. 4.
  38. 38. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com Open Source RDB 고려 사항 → 고객의 걱정 Requirement Functional • Supporting Object • Supporting SQL • Supporting Function and … Non-Functional • Stability from failure • Performance • HA/DR, Backup/Recovery and ✓ 상용 DB(Oracle)를 Open Source RDB로 migration 하는 가장 큰 동기는 이다. ✓ 즉, Open Source RDB 선택의 판단 기준은 형 를 추천 합니다. Risk Migration • Easy to convert Objects • Easy to convert SQL • How to data migration Management • Who support RDB • Bug fix ownership • Number of DB expert
  39. 39. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com Why PostgreSQL - MySQL vs. PostgreSQL https://db-engines.com/en/ranking/relational+dbms RDS- MySQL Maria RDS- PostgreSQL Open Source RDB의 가격 비교 10 10.6 RDS- MySQL Maria RDS- Oracle RDS- PostgreSQL Oracle과의 Open Source RDB 종합 평점 10 ? ?
  40. 40. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com Why PostgreSQL > Avoidance of RISK https://db-engines.com/en/ranking/relational+dbms Require ment Stability from failure Reference, Reputation Performance Performance Test Supporting Object and SQL Supporting matrix HA/DR, Backup/Recovery, … AWS Risk Easy to convert Objects AWS SCT Easy to convert SQL AWS SCT BespinGlobal How to data migration AWS DMS RDB Support AWS BespinGlobal Bug fix ownership RDS Community EnterpriseDB Aurora AWS Number of DB expert Small AWS PostgreSQL 평가 http://www.sql-workbench.net/dbms_comparison.html 베스핀 성능 비교 TEST 결과 참조
  41. 41. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 참고: DB 성능 테스트 결과
  42. 42. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 참고: DB 기능 비교 Last updated: 2017-11-12 This comparison focuses on SQL features that can be used in SQL statements or self-contained SQL scripts that don't require additional software (e.g. a compiler) to be usable. Features for database administration or deployment are also not the focus of this comparison. http://www.sql- workbench.net/dbms_comp arison.html
  43. 43. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com Why PostgreSQL > Avoidance of RISK RDB Support Bug fix ownership IaaS Commercial BYOL AWS or MSP DB vendor Open Source Community PaaS RDS Commercial Included AWS BYOL DB vendor Open Source Community Aurora AWS EPAS on EC2 RDS / Aurora License Subscription X Oracle SQL Compatibility High Medium Meritof PaaS X O RDB 지원 EPAS와 비교 • 일반적인 DB에 대한 지원과 문제 상황에 대한 지원은 AWS 혹은 MSP 업체가 진행합니다. • 단, 문제에 대한 최종 결론이 RDB의 Bug fix일 경우, Open source의 특성상, ownership은 달라집니다. • 가급적, Bug Fix ownership 관점에서는 Included License나 Aurora 사용이 유리 합니다. 기존 시스템 마이그레이션 시, EPAS대비 PostgreSQL 단점인 Oracle SQL과의 호환성 차이는 → BespinGlobal은 process, tool 그리고 Know-how를 통해 지원합니다.
  44. 44. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com Migration to PostgreSQL - Process & Tool ObjectMigration PL/SQLMigration Schema Check XML SQL Migration XML SQL Check Function Check Manual SQL rewrite Data Migration Data Check AWS SCT AWS DMS Establish alternative SCT Summary report Start End AWS SCT BespinGlobal Script BespinGlobal XMT BespinGlobal QCT BespinGlobal QCT SQL rewrite Guide
  45. 45. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com AWS SCT Summary Report (Sample)
  46. 46. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com Conversion Guide > SQL rewrite guide (Issue Type 별)
  47. 47. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com BespinGlobal QCT ( Query Check Tool ) yes Load Target Info (XML, Function) 시작 PostgreSQL XML Files Parse Target extract Info 1. XML Query 2. XML / Function Param Info parameter setting need param change ? save data 1. default param info Run Query Test no save data 1. test log 2. (if success then) successed param info 3. (if new param then) default param info Monitor (session, lock) Log View session monitor 1. kill session 2. add except from run list lock monitor 1. kill waiting session log view 1. brief view 2. detail view Step0. 옵션 설정 1. xml, procedure, 접속정보 등 옵션 설정 Step1. XML 파싱 / 함수 정보 로드 xml 파싱 / 함수 정보 로드 1. xml 파싱 쿼리 추출 / 객체 정보 조회 함수 정보 로드 Step2. Parameter Setting 파라미터 정보 셋팅 1. 파라미터 정보 추출 및 부재시 기본 파라미터 입력 2. 기본 파라미터 수정 가능 3. 성공 파라미터 제거 가능 Step3. XML 쿼리 / 함수 콜 테스트 수행 1. 선택된 대상 xml sql / 함수 수행 2. 성공 파라미터 우선 사용 3. 파라미터 치환 후 문장 수행 4. 결과 및 성공 파라미터 셋 저장 Step4. Result 1. 현재 수행 결과 확인 2. 누적 수행 결과 확인
  48. 48. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com BespinGlobal XMT ( XML Migration tool ) • 개발 환경 : Electron (Node.JS, Chromium 기반 크로스 데스크 탑 앱) • 지원 OS : Windows, Linux, Mac 시작 XML Parsing Build Create Stmt Oracle SCT Target Xml Parsing SCT Conversion Xml Parsing Xml BuildTransList.json Create Procedure XML Save Project Target.xml SCT 시작 SCT 종료 Convert XML종료 readread read write write create write Create Procedure Build XML AWS Schema Conversion Tool loop per xml files loop per xml files Extract Stmt & Param Extract Stmt & Param Create XML File Converted Stmt list write read Step2. execute AWS SCT Step1. Create Procedure XML SQL로 Oracle에 Procedure를 Oracle에 생성 read Step3. Build XML 이기종 DB로 Converting된 Function의 SQL을 XML로 생성 SCT를 이용해 Oracle의 Function을 이기종 DB로 migration
  49. 49. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com Migration to PostgreSQL – Milestone 예 2nd. Migration (Object+ Data) 1st. Migration (Object+ Data) Objectand Data verification SQL Conversion Guide DeveloperSeminar Dev DB Setup Start Objectversion management PL/SQLconversion SQL conversion Last Migration (Data only) CDC Start AS-IS Schema freezing Service cut-off QA DB Setup Service Open Final check (Objectand SQL)
  50. 50. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 참고: DevOps S/W Landscape https://xebialabs.com/periodic-table-of-devops-tools/ Database Mgmt
  51. 51. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com 참고: Database solution for DevOps Solutions They said Key feature (I think) Dbmaestro (http://www.dbmaestro.com/) Agile development and Continuous Integration and Delivery for the Database. and enforcing change policy practices. • Enforce Database change management and manage database object version • Easy database deployment by comparing schema and revision concept • Combine with software change management for a functional requirement LIQUIBASE (http://www.liquibase.org/) tracking, managing and applying database schema changes, especially in an agile software development environment. RedGate (http://www.red-gate.com/) SQL Server development and deployment. Datical (http://www.datical.com/) struggling with a divergence between the velocity of the application release process and the velocity with which the supporting database changes can be made. Idera - DB Change Manager (https://www.idera.com/) Track and Manage Complex Database Schema Changes Delphix (https://www.delphix.com/) simplifying the building, testing, and upgrading of applications built on relational databases. Easy and fast database environment setup with specified time version.
  52. 52. Copyright © 2018 BESPIN GLOBAL Co., Ltd. All rights reserved | Confidential http://www.bespinglobal.com BespinGlobal CDP (Cloud Data Platform) 팀 소개 https://www.youtube.com/watch?v=0GBdUXlhsdI 클라우드 세상에서 IT 관리자로 살아남기 We are hiring ➢ On-premise → AWSMigration ➢ Oracle → AWS PostgreSQL ➢ RDB을 넘어, AWS 환경에서의 DataArchitect를지향 ➢ 국내 최대(大) Data관련 전문가 보유
  53. 53. 감사합니다.

×