SlideShare a Scribd company logo
1 of 40
Download to read offline
RDS to Aurora PostgreSQL
Migration
변규현 / 개발자, 당근마켓
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
발표자 소개
• 당근마켓 채팅플랫폼 개발자
• AWS Serverless Hero
• Go언어를 주로 사용함
• 개발을 잘하고 싶어함
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
RDS를 쓰고 계시나요?
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
그럼 RDS를 왜 쓰시나요?
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
RDS의 특징
• 데이터 베이스 설치에 대한 부담이 없음
• 데이터 베이스 업그레이드, Backup 및 확장에 대해서 부담이 없음
(Maintenance, Scalability, Replication)
• Multi AZ를 통한 고가용성
• IOPS에 따른 스토리지 선택 가능
(Magnetic, SSD, Provisioned IOPS Storage)
• Security Group을 통한 접근 제어
• IAM을 통한 사용자 제어 가능
• MySQL, MariaDB, PostgreSQL, Oracle, MSSQL Server 지원
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
RDS PostgreSQL에서 겪었던 어려움
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
RDS PostgreSQL에서 겪었던 어려움
• Replica를 직접 설정하고 관리
(Replica 생성 > Rout53 가중치 기반 레코드 설정)
-> 인스턴스 추가할 때 마다 Route53 에서 설정 필요
• Replica instance가 5대로 제한
• 저장공간을 직접 늘려주어야 함
(Storage autoscaling 기능을 사용할 수 있음)
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
처음에는 운영상 어려움은 없었어요
서비스가 크지 않다면
RDS PostgreSQL로 충분해요
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
그런데, 우리는 빠르게 성장하고 있었어요
DB 부하는 매주 높아지고 있었고,
이를 더욱 잘 대응하기 위한 준비가 필요했어요.
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
Migration 이전 RDS PostgreSQL의 CPU
2019.07.10 ~ 2019.07.15
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
Aurora PostgreSQL은 해답이 될 수 있을까
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
Amazon Aurora의 특징
• MySQL 데이터 베이스보다 최대 5배 많은 처리량 지원
• 표준 PostgreSQL 보다 3배 많은 처리량 지원
• 1/10 비용으로 상용 데이터베이스의 보안, 가용성 및 안정성 제공
• RDS의 기본 기능 모두 사용 가능
• 분산 스토리지 시스템으로, 인스턴스당 최대 128TB까지 자동 확장
• Replica 15개 사용 가능
• 3개의 AZ에 걸친 복제
• 손쉬운 Custom Endpoint 설정
• 빠른 마스터 복원
• IOPS 사용량에 따른 과금
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
가장 와닿은 내용들
- 처리량
- 스토리지
- Replica 15개
- 빠른 마스터 복원
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
Migration을 준비하기로 결정했어요.
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
근데, Migration은 어떻게 준비하나요?
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
Migration할 인스턴스에 대해서
Aurora PostgreSQL을 Read Replica로 생성
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
준비는 이게 전부에요.
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
그리고 Migration은 신중해야하니
연습을 했어요
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
Migration 연습
• 연습환경 만들기
• 백업 AMI로 RDS 복구
• 네트워크 설정 확인
(Security Group, Subnet Group, VPC)
• Aurora PostgreSQL로 복제본 생성
• Migration Simulation
• 트래픽 완전 차단(Webserver, Security Group)
• 웹서버 DB Endpoint 수정
• Aurora PostgreSQL을 Master로 승격
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
각 스테이지 별 적용 및 테스트 완료!
Production Migration Simulation 5회
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
연습한 대로 Migration을 시작했어요
Aurora PostgreSQL을 Master로 승격시키고
모니터링을 했어요.
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
문제는 없었을까요?
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
DB가 3번 재시작했어요
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
RDS Performance Insight와 PGHero 를 통해
특정 쿼리가 해결되지 않고
계속 남아있는 것을 발견했어요.
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
SELECT pg_terminate_backend(PID);
이걸로도 죽지 않는 쿼리가 있었어요.
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
전체 트래픽을 차단하고
워커도 전부 중지시켰다고 생각했는데,
Migration 시점에 워커 하나가 동작하고 있었어요
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
Hanging Query가 있었고,
그 쿼리들은 워커에서 사용한 테이블들과 연관이 있었어요.
더 살펴보니, 이 테이블들의 인덱스를
사용하는 쿼리들만 문제가 있었어요
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
관련된 테이블들의 Index에 대해서
REINDEX를 진행하고,
다시 모니터링을 시작했어요.
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
이후의 Aurora PostgreSQL CPU
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
REINDEX 명령어를 통해
깨졌던 인덱스가 복구되고,
문제가 되었던 Index 범위의 쿼리들도
정상적으로 처리되기 시작했어요! 😊
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
복구를 성공적으로 완료했어요 🎉
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
Aurora로 전환하고
어떤 점이 개선되었을까요?
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
1년 운영 후기
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
1년 간 느낀점
• 대규모 이벤트 진행 또는 급작스런 트래픽 증가에 대해
Read replica를 사용한 유연한 대응이 용이함
• Custom Endpoint를 활용한 서비스별 커넥션 관리 가능
• 용량 확장 및 IOPS에 대한 고민 사라짐
• 빠른 Master DB 복구
(AZ 장애 발생 시 알람과 동시에 복구됨)
• Performance Insight를 통한 Slow Query 대응
• 빠르고 유연한 확장이 가능하기 때문에 DB인스턴스 CPU 및 Memory를 피크 시간
기준 50% 이상 사용
• 테이블 삭제시 1초도 안돼서 명령이 종료됨
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
현재 운영중인 Aurora PostgreSQL CPU
• Writer 1대
• Reader for webserver
7대
• 데이터 분석용 1대
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
운영을 하는 부담이 많이 줄었네요!
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
Aurora를 도입해보는 건 어떨까요?
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
마지막으로...
2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현
에서
함께할 분을 찾고 있어요 😊
dngn.kr/join-us-dev
감사합니다!
Email: novemberde1@gmail.com
Blog: novemberde.github.io
Github: github.com/novemberde

More Related Content

What's hot

Project TIMAT - infrastructure as code
Project TIMAT - infrastructure as codeProject TIMAT - infrastructure as code
Project TIMAT - infrastructure as codeJesang Yoon
 
AWS 서버리스 신규 서비스 총정리 - 트랙2, Community Day 2018 re:Invent 특집
AWS 서버리스 신규 서비스 총정리 - 트랙2, Community Day 2018 re:Invent 특집AWS 서버리스 신규 서비스 총정리 - 트랙2, Community Day 2018 re:Invent 특집
AWS 서버리스 신규 서비스 총정리 - 트랙2, Community Day 2018 re:Invent 특집AWSKRUG - AWS한국사용자모임
 
스타트업과 개발자를 위한 AWS 클라우드 태권 세미나 : VCNC 사례 발표
스타트업과 개발자를 위한 AWS 클라우드 태권 세미나 : VCNC 사례 발표스타트업과 개발자를 위한 AWS 클라우드 태권 세미나 : VCNC 사례 발표
스타트업과 개발자를 위한 AWS 클라우드 태권 세미나 : VCNC 사례 발표Amazon Web Services Korea
 
HB Smith에서는 AWS 이렇게 사용한다
HB Smith에서는 AWS 이렇게 사용한다HB Smith에서는 AWS 이렇게 사용한다
HB Smith에서는 AWS 이렇게 사용한다Jongwon Han
 
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들Woong Seok Kang
 
[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기
[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기
[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기SungChanHwang
 
당근마켓 고언어 도입기, 그리고 활용법
당근마켓 고언어 도입기, 그리고 활용법당근마켓 고언어 도입기, 그리고 활용법
당근마켓 고언어 도입기, 그리고 활용법Kyuhyun Byun
 
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)AWSKRUG - AWS한국사용자모임
 
[Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드
[Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드[Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드
[Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드Amazon Web Services Korea
 
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기Youngjae Kim
 
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈Amazon Web Services Korea
 
글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs
글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs
글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobsYoungjae Kim
 
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기Jongwon Han
 
AWS Lambdas with a Static Outgoing IP
AWS Lambdas with a Static Outgoing IPAWS Lambdas with a Static Outgoing IP
AWS Lambdas with a Static Outgoing IPJongwon Han
 
Google Cloud Next 2017 Seoul Extended 1st Session.
Google Cloud Next 2017 Seoul Extended 1st Session.Google Cloud Next 2017 Seoul Extended 1st Session.
Google Cloud Next 2017 Seoul Extended 1st Session.Harrison Jung
 

What's hot (20)

Redis on AWS
Redis on AWSRedis on AWS
Redis on AWS
 
Project TIMAT - infrastructure as code
Project TIMAT - infrastructure as codeProject TIMAT - infrastructure as code
Project TIMAT - infrastructure as code
 
AWS 서버리스 신규 서비스 총정리 - 트랙2, Community Day 2018 re:Invent 특집
AWS 서버리스 신규 서비스 총정리 - 트랙2, Community Day 2018 re:Invent 특집AWS 서버리스 신규 서비스 총정리 - 트랙2, Community Day 2018 re:Invent 특집
AWS 서버리스 신규 서비스 총정리 - 트랙2, Community Day 2018 re:Invent 특집
 
Aws로 ci하기 안기욱
Aws로 ci하기 안기욱Aws로 ci하기 안기욱
Aws로 ci하기 안기욱
 
스타트업과 개발자를 위한 AWS 클라우드 태권 세미나 : VCNC 사례 발표
스타트업과 개발자를 위한 AWS 클라우드 태권 세미나 : VCNC 사례 발표스타트업과 개발자를 위한 AWS 클라우드 태권 세미나 : VCNC 사례 발표
스타트업과 개발자를 위한 AWS 클라우드 태권 세미나 : VCNC 사례 발표
 
HB Smith에서는 AWS 이렇게 사용한다
HB Smith에서는 AWS 이렇게 사용한다HB Smith에서는 AWS 이렇게 사용한다
HB Smith에서는 AWS 이렇게 사용한다
 
Serverless Architecture - 김현민
Serverless Architecture - 김현민Serverless Architecture - 김현민
Serverless Architecture - 김현민
 
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
 
Dynamodb 삽질기
Dynamodb 삽질기Dynamodb 삽질기
Dynamodb 삽질기
 
[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기
[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기
[AWS Community Day 2021] AWS와 함께하는 무중단 배포 파이프라인 개선기
 
당근마켓 고언어 도입기, 그리고 활용법
당근마켓 고언어 도입기, 그리고 활용법당근마켓 고언어 도입기, 그리고 활용법
당근마켓 고언어 도입기, 그리고 활용법
 
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
DynamoDB를 이용한 PHP와 Django간 세션 공유 - 강대성 (피플펀드컴퍼니)
 
[Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드
[Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드[Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드
[Gaming on AWS] AWS 위에서의 Dev & Test, 그리고 비용 - 위메이드
 
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
[Azure bootcamp2017] Azure App Service로 서비스 탄탄하게 관리하기
 
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
 
글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs
글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs
글로벌 웹사이트 구축을 꿈꾸는 당신에게: Azure WebSites and WebJobs
 
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
Daily Continuous Deployment를 위한 Custom CLI 개발 및
 AWS Elastic Beanstalk에 적용하기
 
Ansible과 CloudFormation을 이용한 배포 자동화
Ansible과 CloudFormation을 이용한 배포 자동화Ansible과 CloudFormation을 이용한 배포 자동화
Ansible과 CloudFormation을 이용한 배포 자동화
 
AWS Lambdas with a Static Outgoing IP
AWS Lambdas with a Static Outgoing IPAWS Lambdas with a Static Outgoing IP
AWS Lambdas with a Static Outgoing IP
 
Google Cloud Next 2017 Seoul Extended 1st Session.
Google Cloud Next 2017 Seoul Extended 1st Session.Google Cloud Next 2017 Seoul Extended 1st Session.
Google Cloud Next 2017 Seoul Extended 1st Session.
 

Similar to RDS에서 Aurora PostgreSQL Migration한 후기

AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017Amazon Web Services Korea
 
AWS 9월 웨비나 | AWS 데이터베이스 마이그레이션 서비스 활용하기
AWS 9월 웨비나 | AWS 데이터베이스 마이그레이션 서비스 활용하기AWS 9월 웨비나 | AWS 데이터베이스 마이그레이션 서비스 활용하기
AWS 9월 웨비나 | AWS 데이터베이스 마이그레이션 서비스 활용하기Amazon Web Services Korea
 
Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018
Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018
Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018Amazon Web Services Korea
 
Photon게임서버 네트워크엔진과 GBaaS를 통한 AWS DB 서비스 구성 방법 소개 - AWS Summit Seoul 2017
Photon게임서버 네트워크엔진과 GBaaS를 통한 AWS DB 서비스 구성 방법 소개 - AWS Summit Seoul 2017Photon게임서버 네트워크엔진과 GBaaS를 통한 AWS DB 서비스 구성 방법 소개 - AWS Summit Seoul 2017
Photon게임서버 네트워크엔진과 GBaaS를 통한 AWS DB 서비스 구성 방법 소개 - AWS Summit Seoul 2017Amazon Web Services Korea
 
DB Migration to Azure Database for PostgreSQL
DB Migration to Azure Database for PostgreSQLDB Migration to Azure Database for PostgreSQL
DB Migration to Azure Database for PostgreSQLrockplace
 
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트::  AWS Summit Online Korea 2020천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트::  AWS Summit Online Korea 2020
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020Amazon Web Services Korea
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)Brian Hong
 
Cloud Taekwon 2015 - AWS를 활용한 로그 분석
Cloud Taekwon 2015 - AWS를 활용한 로그 분석Cloud Taekwon 2015 - AWS를 활용한 로그 분석
Cloud Taekwon 2015 - AWS를 활용한 로그 분석Amazon Web Services Korea
 
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017Amazon Web Services Korea
 
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016Amazon Web Services Korea
 
AWS Partner ConneXions Online – New Year Edition - AWS re:Invent 2020 Tech Re...
AWS Partner ConneXions Online – New Year Edition - AWS re:Invent 2020 Tech Re...AWS Partner ConneXions Online – New Year Edition - AWS re:Invent 2020 Tech Re...
AWS Partner ConneXions Online – New Year Edition - AWS re:Invent 2020 Tech Re...Amazon Web Services Korea
 
레코벨의 추천 서비스 고군 분투기 - AWS Summit Seoul 2017
레코벨의 추천 서비스 고군 분투기 - AWS Summit Seoul 2017레코벨의 추천 서비스 고군 분투기 - AWS Summit Seoul 2017
레코벨의 추천 서비스 고군 분투기 - AWS Summit Seoul 2017Amazon Web Services Korea
 
1711 azure-live
1711 azure-live1711 azure-live
1711 azure-live세준 김
 
클라우드 환경으로 데이터베이스 이전하기 - 강민석, AWS SR. Database SA
클라우드 환경으로 데이터베이스 이전하기 - 강민석, AWS SR. Database SA클라우드 환경으로 데이터베이스 이전하기 - 강민석, AWS SR. Database SA
클라우드 환경으로 데이터베이스 이전하기 - 강민석, AWS SR. Database SAAmazon Web Services Korea
 
Amazon Aurora Deep Dive (김기완) - AWS DB Day
Amazon Aurora Deep Dive (김기완) - AWS DB DayAmazon Aurora Deep Dive (김기완) - AWS DB Day
Amazon Aurora Deep Dive (김기완) - AWS DB DayAmazon Web Services Korea
 
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...Amazon Web Services Korea
 
AWS 9월 웨비나 | Amazon Aurora Deep Dive
AWS 9월 웨비나 | Amazon Aurora Deep DiveAWS 9월 웨비나 | Amazon Aurora Deep Dive
AWS 9월 웨비나 | Amazon Aurora Deep DiveAmazon Web Services Korea
 

Similar to RDS에서 Aurora PostgreSQL Migration한 후기 (20)

AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
 
AWS 9월 웨비나 | AWS 데이터베이스 마이그레이션 서비스 활용하기
AWS 9월 웨비나 | AWS 데이터베이스 마이그레이션 서비스 활용하기AWS 9월 웨비나 | AWS 데이터베이스 마이그레이션 서비스 활용하기
AWS 9월 웨비나 | AWS 데이터베이스 마이그레이션 서비스 활용하기
 
Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018
Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018
Amazon Aurora 신규 서비스 알아보기::최유정::AWS Summit Seoul 2018
 
Photon게임서버 네트워크엔진과 GBaaS를 통한 AWS DB 서비스 구성 방법 소개 - AWS Summit Seoul 2017
Photon게임서버 네트워크엔진과 GBaaS를 통한 AWS DB 서비스 구성 방법 소개 - AWS Summit Seoul 2017Photon게임서버 네트워크엔진과 GBaaS를 통한 AWS DB 서비스 구성 방법 소개 - AWS Summit Seoul 2017
Photon게임서버 네트워크엔진과 GBaaS를 통한 AWS DB 서비스 구성 방법 소개 - AWS Summit Seoul 2017
 
DB Migration to Azure Database for PostgreSQL
DB Migration to Azure Database for PostgreSQLDB Migration to Azure Database for PostgreSQL
DB Migration to Azure Database for PostgreSQL
 
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트::  AWS Summit Online Korea 2020천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트::  AWS Summit Online Korea 2020
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020
 
AWS RDS, DYNAMO
AWS RDS, DYNAMOAWS RDS, DYNAMO
AWS RDS, DYNAMO
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
 
Cloud Taekwon 2015 - AWS를 활용한 로그 분석
Cloud Taekwon 2015 - AWS를 활용한 로그 분석Cloud Taekwon 2015 - AWS를 활용한 로그 분석
Cloud Taekwon 2015 - AWS를 활용한 로그 분석
 
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
AWS를 통한 빅데이터 기반 비지니스 인텔리전스 구축- AWS Summit Seoul 2017
 
Amazon Aurora 100% 활용하기
Amazon Aurora 100% 활용하기Amazon Aurora 100% 활용하기
Amazon Aurora 100% 활용하기
 
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
 
AWS Partner ConneXions Online – New Year Edition - AWS re:Invent 2020 Tech Re...
AWS Partner ConneXions Online – New Year Edition - AWS re:Invent 2020 Tech Re...AWS Partner ConneXions Online – New Year Edition - AWS re:Invent 2020 Tech Re...
AWS Partner ConneXions Online – New Year Edition - AWS re:Invent 2020 Tech Re...
 
레코벨의 추천 서비스 고군 분투기 - AWS Summit Seoul 2017
레코벨의 추천 서비스 고군 분투기 - AWS Summit Seoul 2017레코벨의 추천 서비스 고군 분투기 - AWS Summit Seoul 2017
레코벨의 추천 서비스 고군 분투기 - AWS Summit Seoul 2017
 
1711 azure-live
1711 azure-live1711 azure-live
1711 azure-live
 
클라우드 환경으로 데이터베이스 이전하기 - 강민석, AWS SR. Database SA
클라우드 환경으로 데이터베이스 이전하기 - 강민석, AWS SR. Database SA클라우드 환경으로 데이터베이스 이전하기 - 강민석, AWS SR. Database SA
클라우드 환경으로 데이터베이스 이전하기 - 강민석, AWS SR. Database SA
 
KGC 2013 DevSisters
KGC 2013 DevSistersKGC 2013 DevSisters
KGC 2013 DevSisters
 
Amazon Aurora Deep Dive (김기완) - AWS DB Day
Amazon Aurora Deep Dive (김기완) - AWS DB DayAmazon Aurora Deep Dive (김기완) - AWS DB Day
Amazon Aurora Deep Dive (김기완) - AWS DB Day
 
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
 
AWS 9월 웨비나 | Amazon Aurora Deep Dive
AWS 9월 웨비나 | Amazon Aurora Deep DiveAWS 9월 웨비나 | Amazon Aurora Deep Dive
AWS 9월 웨비나 | Amazon Aurora Deep Dive
 

More from Kyuhyun Byun

Go 도입 후 4년 간 기록
Go 도입 후 4년 간 기록Go 도입 후 4년 간 기록
Go 도입 후 4년 간 기록Kyuhyun Byun
 
성장하는 엔지니어가 되는 법- 주니어편.pptx
성장하는 엔지니어가 되는 법- 주니어편.pptx성장하는 엔지니어가 되는 법- 주니어편.pptx
성장하는 엔지니어가 되는 법- 주니어편.pptxKyuhyun Byun
 
성장하는 서버 개발자 되기 - Wanted Livetalk
성장하는 서버 개발자 되기 - Wanted Livetalk성장하는 서버 개발자 되기 - Wanted Livetalk
성장하는 서버 개발자 되기 - Wanted LivetalkKyuhyun Byun
 
Start Serverless with Golang!
Start Serverless with Golang!Start Serverless with Golang!
Start Serverless with Golang!Kyuhyun Byun
 
Serverless websocket 톺아보기
Serverless websocket 톺아보기Serverless websocket 톺아보기
Serverless websocket 톺아보기Kyuhyun Byun
 
Native addon을 포함하여 Node.js + Typescript + Serverless 빌드 및 배포하기
Native addon을 포함하여 Node.js + Typescript + Serverless 빌드 및 배포하기Native addon을 포함하여 Node.js + Typescript + Serverless 빌드 및 배포하기
Native addon을 포함하여 Node.js + Typescript + Serverless 빌드 및 배포하기Kyuhyun Byun
 
포털 검색어 순위 수집 및 분석 후기
포털 검색어 순위 수집 및 분석 후기포털 검색어 순위 수집 및 분석 후기
포털 검색어 순위 수집 및 분석 후기Kyuhyun Byun
 
Serverless framework와 CircleCI를 통한 NoOps 맛보기
Serverless framework와 CircleCI를 통한 NoOps 맛보기Serverless framework와 CircleCI를 통한 NoOps 맛보기
Serverless framework와 CircleCI를 통한 NoOps 맛보기Kyuhyun Byun
 
Ec2 docker docker-compose
Ec2 docker docker-composeEc2 docker docker-compose
Ec2 docker docker-composeKyuhyun Byun
 

More from Kyuhyun Byun (9)

Go 도입 후 4년 간 기록
Go 도입 후 4년 간 기록Go 도입 후 4년 간 기록
Go 도입 후 4년 간 기록
 
성장하는 엔지니어가 되는 법- 주니어편.pptx
성장하는 엔지니어가 되는 법- 주니어편.pptx성장하는 엔지니어가 되는 법- 주니어편.pptx
성장하는 엔지니어가 되는 법- 주니어편.pptx
 
성장하는 서버 개발자 되기 - Wanted Livetalk
성장하는 서버 개발자 되기 - Wanted Livetalk성장하는 서버 개발자 되기 - Wanted Livetalk
성장하는 서버 개발자 되기 - Wanted Livetalk
 
Start Serverless with Golang!
Start Serverless with Golang!Start Serverless with Golang!
Start Serverless with Golang!
 
Serverless websocket 톺아보기
Serverless websocket 톺아보기Serverless websocket 톺아보기
Serverless websocket 톺아보기
 
Native addon을 포함하여 Node.js + Typescript + Serverless 빌드 및 배포하기
Native addon을 포함하여 Node.js + Typescript + Serverless 빌드 및 배포하기Native addon을 포함하여 Node.js + Typescript + Serverless 빌드 및 배포하기
Native addon을 포함하여 Node.js + Typescript + Serverless 빌드 및 배포하기
 
포털 검색어 순위 수집 및 분석 후기
포털 검색어 순위 수집 및 분석 후기포털 검색어 순위 수집 및 분석 후기
포털 검색어 순위 수집 및 분석 후기
 
Serverless framework와 CircleCI를 통한 NoOps 맛보기
Serverless framework와 CircleCI를 통한 NoOps 맛보기Serverless framework와 CircleCI를 통한 NoOps 맛보기
Serverless framework와 CircleCI를 통한 NoOps 맛보기
 
Ec2 docker docker-compose
Ec2 docker docker-composeEc2 docker docker-compose
Ec2 docker docker-compose
 

RDS에서 Aurora PostgreSQL Migration한 후기

  • 1. RDS to Aurora PostgreSQL Migration 변규현 / 개발자, 당근마켓
  • 2. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 발표자 소개 • 당근마켓 채팅플랫폼 개발자 • AWS Serverless Hero • Go언어를 주로 사용함 • 개발을 잘하고 싶어함
  • 3. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 RDS를 쓰고 계시나요?
  • 4. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 그럼 RDS를 왜 쓰시나요?
  • 5. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 RDS의 특징 • 데이터 베이스 설치에 대한 부담이 없음 • 데이터 베이스 업그레이드, Backup 및 확장에 대해서 부담이 없음 (Maintenance, Scalability, Replication) • Multi AZ를 통한 고가용성 • IOPS에 따른 스토리지 선택 가능 (Magnetic, SSD, Provisioned IOPS Storage) • Security Group을 통한 접근 제어 • IAM을 통한 사용자 제어 가능 • MySQL, MariaDB, PostgreSQL, Oracle, MSSQL Server 지원
  • 6. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 RDS PostgreSQL에서 겪었던 어려움
  • 7. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 RDS PostgreSQL에서 겪었던 어려움 • Replica를 직접 설정하고 관리 (Replica 생성 > Rout53 가중치 기반 레코드 설정) -> 인스턴스 추가할 때 마다 Route53 에서 설정 필요 • Replica instance가 5대로 제한 • 저장공간을 직접 늘려주어야 함 (Storage autoscaling 기능을 사용할 수 있음)
  • 8. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 처음에는 운영상 어려움은 없었어요 서비스가 크지 않다면 RDS PostgreSQL로 충분해요
  • 9. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 그런데, 우리는 빠르게 성장하고 있었어요 DB 부하는 매주 높아지고 있었고, 이를 더욱 잘 대응하기 위한 준비가 필요했어요.
  • 10. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 Migration 이전 RDS PostgreSQL의 CPU 2019.07.10 ~ 2019.07.15
  • 11. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 Aurora PostgreSQL은 해답이 될 수 있을까
  • 12. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 Amazon Aurora의 특징 • MySQL 데이터 베이스보다 최대 5배 많은 처리량 지원 • 표준 PostgreSQL 보다 3배 많은 처리량 지원 • 1/10 비용으로 상용 데이터베이스의 보안, 가용성 및 안정성 제공 • RDS의 기본 기능 모두 사용 가능 • 분산 스토리지 시스템으로, 인스턴스당 최대 128TB까지 자동 확장 • Replica 15개 사용 가능 • 3개의 AZ에 걸친 복제 • 손쉬운 Custom Endpoint 설정 • 빠른 마스터 복원 • IOPS 사용량에 따른 과금
  • 13. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 가장 와닿은 내용들 - 처리량 - 스토리지 - Replica 15개 - 빠른 마스터 복원
  • 14. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 Migration을 준비하기로 결정했어요.
  • 15. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 근데, Migration은 어떻게 준비하나요?
  • 16. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 Migration할 인스턴스에 대해서 Aurora PostgreSQL을 Read Replica로 생성
  • 17. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 준비는 이게 전부에요.
  • 18. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 그리고 Migration은 신중해야하니 연습을 했어요
  • 19. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 Migration 연습 • 연습환경 만들기 • 백업 AMI로 RDS 복구 • 네트워크 설정 확인 (Security Group, Subnet Group, VPC) • Aurora PostgreSQL로 복제본 생성 • Migration Simulation • 트래픽 완전 차단(Webserver, Security Group) • 웹서버 DB Endpoint 수정 • Aurora PostgreSQL을 Master로 승격
  • 20. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 각 스테이지 별 적용 및 테스트 완료! Production Migration Simulation 5회
  • 21. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 연습한 대로 Migration을 시작했어요 Aurora PostgreSQL을 Master로 승격시키고 모니터링을 했어요.
  • 22. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 문제는 없었을까요?
  • 23. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 DB가 3번 재시작했어요
  • 24. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 RDS Performance Insight와 PGHero 를 통해 특정 쿼리가 해결되지 않고 계속 남아있는 것을 발견했어요.
  • 25. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 SELECT pg_terminate_backend(PID); 이걸로도 죽지 않는 쿼리가 있었어요.
  • 26. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 전체 트래픽을 차단하고 워커도 전부 중지시켰다고 생각했는데, Migration 시점에 워커 하나가 동작하고 있었어요
  • 27. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 Hanging Query가 있었고, 그 쿼리들은 워커에서 사용한 테이블들과 연관이 있었어요. 더 살펴보니, 이 테이블들의 인덱스를 사용하는 쿼리들만 문제가 있었어요
  • 28. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 관련된 테이블들의 Index에 대해서 REINDEX를 진행하고, 다시 모니터링을 시작했어요.
  • 29. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 이후의 Aurora PostgreSQL CPU
  • 30. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 REINDEX 명령어를 통해 깨졌던 인덱스가 복구되고, 문제가 되었던 Index 범위의 쿼리들도 정상적으로 처리되기 시작했어요! 😊
  • 31. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 복구를 성공적으로 완료했어요 🎉
  • 32. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 Aurora로 전환하고 어떤 점이 개선되었을까요?
  • 33. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 1년 운영 후기
  • 34. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 1년 간 느낀점 • 대규모 이벤트 진행 또는 급작스런 트래픽 증가에 대해 Read replica를 사용한 유연한 대응이 용이함 • Custom Endpoint를 활용한 서비스별 커넥션 관리 가능 • 용량 확장 및 IOPS에 대한 고민 사라짐 • 빠른 Master DB 복구 (AZ 장애 발생 시 알람과 동시에 복구됨) • Performance Insight를 통한 Slow Query 대응 • 빠르고 유연한 확장이 가능하기 때문에 DB인스턴스 CPU 및 Memory를 피크 시간 기준 50% 이상 사용 • 테이블 삭제시 1초도 안돼서 명령이 종료됨
  • 35. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 현재 운영중인 Aurora PostgreSQL CPU • Writer 1대 • Reader for webserver 7대 • 데이터 분석용 1대
  • 36. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 운영을 하는 부담이 많이 줄었네요!
  • 37. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 Aurora를 도입해보는 건 어떨까요?
  • 38. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 마지막으로...
  • 39. 2020.10.17 | AWS Community Day Online | Aurora Postgres | 변규현 에서 함께할 분을 찾고 있어요 😊 dngn.kr/join-us-dev