SlideShare a Scribd company logo
서비스 무중단 마이그레이션
KT에서 Amazon으로
애드투페이퍼 방신우
작성자 소개
방신우 Sin-Woo Bang
이메일 : sinwoobang@add2paper.com
Github : https://github.com/sinwoobang/
사이트 : http://sinwoobang.me/
내용 소개
- 중규모 아키텍처(1)
이전 경험을 공유합니다.
- 서비스 무중단 이전 경험을 공유합니다.
- 백엔드 어플리케이션, DB, 캐시, DNS 작업 등이 있습니다.
- 인력 한계로 AWS SaaS(ex. RDS, ElastiCache)를 일부 사용하지 않았습니다.
(1) 대규모까진 아니라 편의로 붙인 이름입니다. 동시 접속자 4,000명 미만을 기준 잡았습니다.
애드투페이퍼
- 대학생 대상 무료 출력 제공
- 누적 회원 70만명
- 전국 132개 대학교 사용
- 약 5,000곳 PC 클라이언트 설치
- 학생 : 모바일 앱 / 모바일 웹 / PC 웹 / PC
클라이언트
- 광고주 : PC 웹
- 현장 관리자 : PC 웹
- 사내 관리자 : PC 웹
플랫폼
기존 서버 스택(~2017.8)
- 2013년 글에서 큰 틀에서 동일
- KT 유클라우드 약 5년 이용
- 핵심
- AP 서버(Python/Django)
- 캐시 서버(Memcached)
- 비동기 워커 서버(Redis)
- 크론 서버(Crontab, Python/Django)
- DB 서버(MySQL 5.5, Master-Slave)
- Amazon Web Services(AWS)
- AP 서버(EC2)
- 캐시 서버(EC2)
- 비동기 워커 서버(EC2)
- 크론 서버(EC2)
- DB 서버(EC2, Master-Slave)
이외에도 DB 프록시 서버 등이 있지만 주제에 집중하기 위해 적지 않았습니다.
현재 스택
1. AWS에 서비스를 띄운다.
2. 유클라우드에 연결된 도메인을 AWS로 연결한다.
검토 : 무엇을 해야하는가
1. AWS에 서비스를 띄운다.
a. 무중단으로 이전하려면
b. 유클라우드와 동일하게 서비스를 띄워야한다.
검토 : 무엇을 해야하는가
1. AWS에 서비스를 띄운다.
a. 무중단으로 이전하려면
b. 유클라우드와 동일하게 서비스를 띄워야한다.
c. 동일하게 띄우려면
i. AP를 띄워야한다.
검토 : 무엇을 해야하는가
1. AWS에 서비스를 띄운다.
a. 무중단으로 이전하려면
b. 유클라우드와 동일하게 서비스를 띄워야한다.
c. 동일하게 띄우려면
i. AP를 띄워야한다.
ii. AP를 띄우려면
1. DB
2. 캐시
3. 비동기 워커
4. 크론
검토 : 무엇을 해야하는가
AWS에 서비스를 띄운다 : 1차 전략
유클라우드 AWS
AP
DB
비동기 워커
AP
캐시
크론
비동기 워커
크론
AWS에 서비스를 띄운다 : 1차 전략
1. DB : 유클라우드 연결
2. 캐시 : 이전 완료까지 제거
a. 고려했던 것들
i. AWS에 새로운 캐시 서버 생성
1. 새로운 값은 새로운 캐시 서버에 SET
2. 한계 : 완벽 이전까지 며칠을 기다려야 하는 문제
3. 서비스가 캐시 의존적이지도 않았다.
ii. repcached : 공식 홈페이지 다수 링크가 404. 신뢰 불가.
b. 캐시 제외했을때 100ms 지연 발생. 잠깐이면 감당할만하다고 판단.
c. 캐시값이 없으면 DB를 바라보도록 의존성 제거.
3. 비동기 워커는 유클라우드, AWS 동시 운영해도 무관
4. 크론도 스케쥴 분리하여 유클라우드, AWS 동시 운영
AWS에 서비스를 띄운다 : 1차 전략
1. DB : 유클라우드 연결
a. 기존에 내부 IP로 통신
b. AWS와 유클라우드 간 외부 통신 필요
c. 유클라우드 MySQL Master 방화벽 설정 변경
i. 기존 : 외부 IP 통신 불허
ii. 변경 : AWS AP IP만 통신 허용
d. 유클라우드 MySQL Master - AWS AP 통신 : SSH 터널링 구성
i. 고려했던 것들
1. 도메인 기반 SSL 사용
a. 편리
b. 한계 : 인증서가 서비스 단일 도메인만 존재
AWS에 서비스를 띄운다 : 1차 전략 완료
1. 1차 전략 완료
2. ELB IP로 직접 연결하여 테스트
3. AWS에서도 서비스 정상 작동(환호)
AWS에 서비스를 띄운다 : 2차 전략
유클라우드 AWS
AP
DB
비동기 워커
AP
캐시
크론
비동기 워커
크론
DB
AWS에 서비스를 띄운다 : 2차 전략
1. DB 이전 큰 그림
a. 유클라우드 MySQL Master - AWS MySQL Slave 구성
b. AWS MySQL Slave를 Master로 승격
2. 큰 그림만 마치면 이전 95% 완료
그런데 말입니다
최초 검토사항 수정 필요
1. AWS에 서비스를 띄운다.
2. 유클라우드에 연결된 도메인을 AWS로 연결한다.
최초 검토사항 수정 필요
1. AWS에 유클라우드 의존적인(ex. DB) 서비스를 띄운다.
2. 유클라우드에 연결된 도메인을 AWS로 연결한다.
3. AWS에서 유클라우드 의존성을 걷어낸다.
최초 검토사항 수정 필요
1. (1차 전략) AWS에 유클라우드 의존적인(ex. DB) 서비스를 띄운다.
2. 유클라우드에 연결된 도메인을 AWS로 연결한다.
3. (2차 전략) AWS에서 유클라우드 의존성을 걷어낸다.
최초 검토사항 수정 필요
1. (1차 전략) AWS에 유클라우드 의존적인(ex. DB) 서비스를 띄운다.
2. 유클라우드에 연결된 도메인을 AWS로 연결한다.
a. 2차 전략을 위해서 선행 필요
3. (2차 전략) AWS에서 유클라우드 의존성을 걷어낸다.
1. DNS TTL : 0으로 설정
2. 유클라우드 LB IP에서 AWS ELB로 설정
3. AWS CloudWatch : 유저 유입 확인
도메인 연결 : Route 53
2차 전략으로 돌아가서
AWS에 서비스를 띄운다 : 2차 전략
유클라우드 AWS
AP
DB
비동기 워커
AP
캐시
크론
비동기 워커
크론
DB
AWS에 서비스를 띄운다 : 2차 전략
1. DB 이전 큰 그림
a. 유클라우드 MySQL Master - AWS MySQL Slave 구성
b. AWS MySQL Slave를 Master로 승격
2. 큰 그림만 마치면 이전 95% 완료
AWS에 서비스를 띄운다 : 2차 전략
1. DB 이전 큰 그림
a. 유클라우드 MySQL Master - AWS MySQL Slave 구성
i. SSH 터널링 구성
ii. Slave 무중단 생성 : Percona XtraBackup https://goo.gl/6hB1mn
b. 유클라우드 AP - AWS MySQL Slave간 SSH 터널링 구성
c. AWS MySQL Slave를 Master로 승격
i. Slave) STOP SLAVE
d. AP DB IP를 Slave IP로 변경 후 배포
AWS에 서비스를 띄운다 : 2차 전략
1. DB 이전 큰 그림
a. 유클라우드 MySQL Master - AWS MySQL Slave 구성
i. SSH 터널링 구성
ii. Slave 무중단 생성 : Percona XtraBackup https://goo.gl/6hB1mn
b. 유클라우드 AP - AWS MySQL Slave간 SSH 터널링 구성
c. AWS MySQL Slave를 Master로 승격
i. Slave) STOP SLAVE
d. AP DB IP를 Slave IP로 변경 후 배포
2. 서비스 정상 작동 확인
1. 비동기 워커
a. KT, AWS 동시 운영 후 KT AP 트래픽이 사라지자 비동기 워커도 자동 소멸
2. 크론
a. KT, AWS 동시 운영 후 스케쥴별로 점진 이전
3. HTTPS 트래픽
a. 유클라우드 사용 시절 HTTP, HTTPS 로드밸런서를 따로 운영
i. 유클라우드 서비스 초기 HTTPS 로드밸런서 미지원
ii. HTTP 트래픽을 먼저 옮기고 HTTPS는 차후 이전하였음.
4. 고정 IP 대응
a. 일부 클라이언트(학교) 방화벽 정책 : IP 화이트리스트
b. 고정 IP는 구입 불가
c. 해당 IP에서 운영중인 서버를 프록시 서버로 전환
d. 프록시 서버는 AWS 서버 HTTP 호출
ETC
Q&A
1. 왜 AWS RDS, DMS를 사용하지 않았나요?
a. MySQL 5.5 GTID 미지원
b. MySQL 5.5 binlog_format=STATEMENT 상태
c. Percona XtraBackup은 디렉토리 직접 접근 필요하나 RDS는 SSH 접속 미지원
감사합니다
내용이 많아 PPT에 못 담은 내용이 많습니다.
문의 : sinwoobang@add2paper.com

More Related Content

PDF
AWS와 함께 하는 클라우드 컴퓨팅 - 홍민우 AWS 매니저
PDF
Amazon EMR과 SageMaker를 이용하여 데이터를 준비하고 머신러닝 모델 개발 하기
PDF
AWS Summit Seoul 2023 | Amazon Redshift Serverless를 활용한 LG 이노텍의 데이터 분석 플랫폼 혁신 과정
PDF
금융 X 하이브리드 클라우드 플랫폼 - 한화생명 디지털 트랜스포메이션 전략 - 김나영 AWS 금융부문 사업개발 담당 / 박인규 AWS 금융...
PDF
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
PDF
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
PDF
20190122 AWS Black Belt Online Seminar Amazon Redshift Update
PDF
Aurora MySQL Backtrack을 이용한 빠른 복구 방법 - 진교선 :: AWS Database Modernization Day 온라인
AWS와 함께 하는 클라우드 컴퓨팅 - 홍민우 AWS 매니저
Amazon EMR과 SageMaker를 이용하여 데이터를 준비하고 머신러닝 모델 개발 하기
AWS Summit Seoul 2023 | Amazon Redshift Serverless를 활용한 LG 이노텍의 데이터 분석 플랫폼 혁신 과정
금융 X 하이브리드 클라우드 플랫폼 - 한화생명 디지털 트랜스포메이션 전략 - 김나영 AWS 금융부문 사업개발 담당 / 박인규 AWS 금융...
AWS 고객이 주로 겪는 운영 이슈에 대한 해법-AWS Summit Seoul 2017
Amazon RDS Proxy 집중 탐구 - 윤석찬 :: AWS Unboxing 온라인 세미나
20190122 AWS Black Belt Online Seminar Amazon Redshift Update
Aurora MySQL Backtrack을 이용한 빠른 복구 방법 - 진교선 :: AWS Database Modernization Day 온라인

What's hot (20)

PDF
AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스 - 정영준 솔루션즈 아키텍트, AWS / 유현성 수석,...
PDF
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
PPTX
いまさら、AWSのネットワーク設計
PDF
はじめてのDynamoDBスキーマ設計
PDF
Aws glue를 통한 손쉬운 데이터 전처리 작업하기
PDF
AWS Lambda를 기반으로한 실시간 빅테이터 처리하기
PDF
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
PPT
Red Hat Ansible 적용 사례
PDF
데이터베이스 운영, 서버리스로 걱정 끝! - 윤석찬, AWS 테크에반젤리스트 - AWS Builders Online Series
PDF
Amazon Aurora Deep Dive (김기완) - AWS DB Day
PDF
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
PDF
[AKIBA.AWS] NLBとPrivateLinkの仕様に立ち向かう
PDF
AWS Summit Seoul 2023 | SOCAR는 어떻게 2만대의 차량을 운영할까?: IoT Data의 수집부터 분석까지
PDF
浸透するサーバーレス 実際に見るユースケースと実装パターン
PDF
AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016
PDF
AWS Aurora 운영사례 (by 배은미)
PDF
AWS Black Belt Online Seminar 2017 Amazon ElastiCache
PDF
20200714 AWS Black Belt Online Seminar Amazon Neptune
PDF
日本のお客様におけるAmazon Auroraへの移行・検証事例と技術ポイント
PPTX
AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017
AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스 - 정영준 솔루션즈 아키텍트, AWS / 유현성 수석,...
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
いまさら、AWSのネットワーク設計
はじめてのDynamoDBスキーマ設計
Aws glue를 통한 손쉬운 데이터 전처리 작업하기
AWS Lambda를 기반으로한 실시간 빅테이터 처리하기
Apache kafka 모니터링을 위한 Metrics 이해 및 최적화 방안
Red Hat Ansible 적용 사례
데이터베이스 운영, 서버리스로 걱정 끝! - 윤석찬, AWS 테크에반젤리스트 - AWS Builders Online Series
Amazon Aurora Deep Dive (김기완) - AWS DB Day
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
[AKIBA.AWS] NLBとPrivateLinkの仕様に立ち向かう
AWS Summit Seoul 2023 | SOCAR는 어떻게 2만대의 차량을 운영할까?: IoT Data의 수집부터 분석까지
浸透するサーバーレス 実際に見るユースケースと実装パターン
AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016
AWS Aurora 운영사례 (by 배은미)
AWS Black Belt Online Seminar 2017 Amazon ElastiCache
20200714 AWS Black Belt Online Seminar Amazon Neptune
日本のお客様におけるAmazon Auroraへの移行・検証事例と技術ポイント
AWS 기반 대규모 트래픽 견디기 - 장준엽 (구로디지털 모임) :: AWS Community Day 2017
Ad

Similar to 서비스 무중단 마이그레이션 : KT에서 Amazon으로 (20)

PPTX
01. 클라우드 기업 도입 사례
PDF
AWS Certified Cloud Practitioner
PDF
[2017 AWS Startup Day] 인프라 관점에서 접근하는 리디스토리 개발기
PDF
Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021
PDF
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
PDF
KGC 2013 DevSisters
PDF
[AWS Media Symposium 2019] 고객사례 | SBS Web Service Cloud Migration Process - 김...
PDF
클라우드 춘추전국시대 서버 개발자 생존기
PDF
찾아가는 AWS 세미나(구로,가산,판교) - AWS 클라우드로 서비스 무한대로 확장하기 (박철수 솔루션즈 아키텍트)
PDF
AWS 클라우드 데이터 이전을 위한 6가지 전략 (윤석찬) :: AWS 8월 월간 웨비나
PDF
스푼라디오 일본에서 한국으로 이전하기 - 최상기 (마이쿤) :: AWS Community Day 2020
PDF
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
PDF
AWS를 활용한 리테일,이커머스 워크로드와 온라인 서비스 이관 사례::이동열, 임혁용:: AWS Summit Seoul 2018
PDF
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
PDF
AWS와 함께하는 스타트업의 성장곡선 (윤석찬)- 클라우드 태권 2015
PDF
Aws개념 EC2로 API서버 구축
PDF
Aws발표자료 final
PDF
[2018] 고객 사례를 통해 본 클라우드 전환 전략
PDF
AWS 클라우드의 다양한 업무 활용 사례 (정민정) - AWS 웨비나 시리즈 2015
PDF
[Partner TechShift 2017] 클라우드 시대 기존 Legacy에서 벗어나는 방법
01. 클라우드 기업 도입 사례
AWS Certified Cloud Practitioner
[2017 AWS Startup Day] 인프라 관점에서 접근하는 리디스토리 개발기
Oracle DB를 AWS로 이관하는 방법들 - 서호석 클라우드 사업부/컨설팅팀 이사, 영우디지탈 :: AWS Summit Seoul 2021
SK Telecom - 망관리 프로젝트 TANGO의 오픈소스 데이터베이스 전환 여정 - 발표자 : 박승전, Project Manager, ...
KGC 2013 DevSisters
[AWS Media Symposium 2019] 고객사례 | SBS Web Service Cloud Migration Process - 김...
클라우드 춘추전국시대 서버 개발자 생존기
찾아가는 AWS 세미나(구로,가산,판교) - AWS 클라우드로 서비스 무한대로 확장하기 (박철수 솔루션즈 아키텍트)
AWS 클라우드 데이터 이전을 위한 6가지 전략 (윤석찬) :: AWS 8월 월간 웨비나
스푼라디오 일본에서 한국으로 이전하기 - 최상기 (마이쿤) :: AWS Community Day 2020
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
AWS를 활용한 리테일,이커머스 워크로드와 온라인 서비스 이관 사례::이동열, 임혁용:: AWS Summit Seoul 2018
AWS Summit Seoul 2015 - AWS 이용사례 - SM 엔터테인먼트 및 셰이커미디어 사례를 중심으로
AWS와 함께하는 스타트업의 성장곡선 (윤석찬)- 클라우드 태권 2015
Aws개념 EC2로 API서버 구축
Aws발표자료 final
[2018] 고객 사례를 통해 본 클라우드 전환 전략
AWS 클라우드의 다양한 업무 활용 사례 (정민정) - AWS 웨비나 시리즈 2015
[Partner TechShift 2017] 클라우드 시대 기존 Legacy에서 벗어나는 방법
Ad

서비스 무중단 마이그레이션 : KT에서 Amazon으로

  • 1. 서비스 무중단 마이그레이션 KT에서 Amazon으로 애드투페이퍼 방신우
  • 2. 작성자 소개 방신우 Sin-Woo Bang 이메일 : sinwoobang@add2paper.com Github : https://github.com/sinwoobang/ 사이트 : http://sinwoobang.me/
  • 3. 내용 소개 - 중규모 아키텍처(1) 이전 경험을 공유합니다. - 서비스 무중단 이전 경험을 공유합니다. - 백엔드 어플리케이션, DB, 캐시, DNS 작업 등이 있습니다. - 인력 한계로 AWS SaaS(ex. RDS, ElastiCache)를 일부 사용하지 않았습니다. (1) 대규모까진 아니라 편의로 붙인 이름입니다. 동시 접속자 4,000명 미만을 기준 잡았습니다.
  • 4. 애드투페이퍼 - 대학생 대상 무료 출력 제공 - 누적 회원 70만명 - 전국 132개 대학교 사용 - 약 5,000곳 PC 클라이언트 설치
  • 5. - 학생 : 모바일 앱 / 모바일 웹 / PC 웹 / PC 클라이언트 - 광고주 : PC 웹 - 현장 관리자 : PC 웹 - 사내 관리자 : PC 웹 플랫폼
  • 6. 기존 서버 스택(~2017.8) - 2013년 글에서 큰 틀에서 동일 - KT 유클라우드 약 5년 이용 - 핵심 - AP 서버(Python/Django) - 캐시 서버(Memcached) - 비동기 워커 서버(Redis) - 크론 서버(Crontab, Python/Django) - DB 서버(MySQL 5.5, Master-Slave)
  • 7. - Amazon Web Services(AWS) - AP 서버(EC2) - 캐시 서버(EC2) - 비동기 워커 서버(EC2) - 크론 서버(EC2) - DB 서버(EC2, Master-Slave) 이외에도 DB 프록시 서버 등이 있지만 주제에 집중하기 위해 적지 않았습니다. 현재 스택
  • 8. 1. AWS에 서비스를 띄운다. 2. 유클라우드에 연결된 도메인을 AWS로 연결한다. 검토 : 무엇을 해야하는가
  • 9. 1. AWS에 서비스를 띄운다. a. 무중단으로 이전하려면 b. 유클라우드와 동일하게 서비스를 띄워야한다. 검토 : 무엇을 해야하는가
  • 10. 1. AWS에 서비스를 띄운다. a. 무중단으로 이전하려면 b. 유클라우드와 동일하게 서비스를 띄워야한다. c. 동일하게 띄우려면 i. AP를 띄워야한다. 검토 : 무엇을 해야하는가
  • 11. 1. AWS에 서비스를 띄운다. a. 무중단으로 이전하려면 b. 유클라우드와 동일하게 서비스를 띄워야한다. c. 동일하게 띄우려면 i. AP를 띄워야한다. ii. AP를 띄우려면 1. DB 2. 캐시 3. 비동기 워커 4. 크론 검토 : 무엇을 해야하는가
  • 12. AWS에 서비스를 띄운다 : 1차 전략 유클라우드 AWS AP DB 비동기 워커 AP 캐시 크론 비동기 워커 크론
  • 13. AWS에 서비스를 띄운다 : 1차 전략 1. DB : 유클라우드 연결 2. 캐시 : 이전 완료까지 제거 a. 고려했던 것들 i. AWS에 새로운 캐시 서버 생성 1. 새로운 값은 새로운 캐시 서버에 SET 2. 한계 : 완벽 이전까지 며칠을 기다려야 하는 문제 3. 서비스가 캐시 의존적이지도 않았다. ii. repcached : 공식 홈페이지 다수 링크가 404. 신뢰 불가. b. 캐시 제외했을때 100ms 지연 발생. 잠깐이면 감당할만하다고 판단. c. 캐시값이 없으면 DB를 바라보도록 의존성 제거. 3. 비동기 워커는 유클라우드, AWS 동시 운영해도 무관 4. 크론도 스케쥴 분리하여 유클라우드, AWS 동시 운영
  • 14. AWS에 서비스를 띄운다 : 1차 전략 1. DB : 유클라우드 연결 a. 기존에 내부 IP로 통신 b. AWS와 유클라우드 간 외부 통신 필요 c. 유클라우드 MySQL Master 방화벽 설정 변경 i. 기존 : 외부 IP 통신 불허 ii. 변경 : AWS AP IP만 통신 허용 d. 유클라우드 MySQL Master - AWS AP 통신 : SSH 터널링 구성 i. 고려했던 것들 1. 도메인 기반 SSL 사용 a. 편리 b. 한계 : 인증서가 서비스 단일 도메인만 존재
  • 15. AWS에 서비스를 띄운다 : 1차 전략 완료 1. 1차 전략 완료 2. ELB IP로 직접 연결하여 테스트 3. AWS에서도 서비스 정상 작동(환호)
  • 16. AWS에 서비스를 띄운다 : 2차 전략 유클라우드 AWS AP DB 비동기 워커 AP 캐시 크론 비동기 워커 크론 DB
  • 17. AWS에 서비스를 띄운다 : 2차 전략 1. DB 이전 큰 그림 a. 유클라우드 MySQL Master - AWS MySQL Slave 구성 b. AWS MySQL Slave를 Master로 승격 2. 큰 그림만 마치면 이전 95% 완료
  • 19. 최초 검토사항 수정 필요 1. AWS에 서비스를 띄운다. 2. 유클라우드에 연결된 도메인을 AWS로 연결한다.
  • 20. 최초 검토사항 수정 필요 1. AWS에 유클라우드 의존적인(ex. DB) 서비스를 띄운다. 2. 유클라우드에 연결된 도메인을 AWS로 연결한다. 3. AWS에서 유클라우드 의존성을 걷어낸다.
  • 21. 최초 검토사항 수정 필요 1. (1차 전략) AWS에 유클라우드 의존적인(ex. DB) 서비스를 띄운다. 2. 유클라우드에 연결된 도메인을 AWS로 연결한다. 3. (2차 전략) AWS에서 유클라우드 의존성을 걷어낸다.
  • 22. 최초 검토사항 수정 필요 1. (1차 전략) AWS에 유클라우드 의존적인(ex. DB) 서비스를 띄운다. 2. 유클라우드에 연결된 도메인을 AWS로 연결한다. a. 2차 전략을 위해서 선행 필요 3. (2차 전략) AWS에서 유클라우드 의존성을 걷어낸다.
  • 23. 1. DNS TTL : 0으로 설정 2. 유클라우드 LB IP에서 AWS ELB로 설정 3. AWS CloudWatch : 유저 유입 확인 도메인 연결 : Route 53
  • 25. AWS에 서비스를 띄운다 : 2차 전략 유클라우드 AWS AP DB 비동기 워커 AP 캐시 크론 비동기 워커 크론 DB
  • 26. AWS에 서비스를 띄운다 : 2차 전략 1. DB 이전 큰 그림 a. 유클라우드 MySQL Master - AWS MySQL Slave 구성 b. AWS MySQL Slave를 Master로 승격 2. 큰 그림만 마치면 이전 95% 완료
  • 27. AWS에 서비스를 띄운다 : 2차 전략 1. DB 이전 큰 그림 a. 유클라우드 MySQL Master - AWS MySQL Slave 구성 i. SSH 터널링 구성 ii. Slave 무중단 생성 : Percona XtraBackup https://goo.gl/6hB1mn b. 유클라우드 AP - AWS MySQL Slave간 SSH 터널링 구성 c. AWS MySQL Slave를 Master로 승격 i. Slave) STOP SLAVE d. AP DB IP를 Slave IP로 변경 후 배포
  • 28. AWS에 서비스를 띄운다 : 2차 전략 1. DB 이전 큰 그림 a. 유클라우드 MySQL Master - AWS MySQL Slave 구성 i. SSH 터널링 구성 ii. Slave 무중단 생성 : Percona XtraBackup https://goo.gl/6hB1mn b. 유클라우드 AP - AWS MySQL Slave간 SSH 터널링 구성 c. AWS MySQL Slave를 Master로 승격 i. Slave) STOP SLAVE d. AP DB IP를 Slave IP로 변경 후 배포 2. 서비스 정상 작동 확인
  • 29. 1. 비동기 워커 a. KT, AWS 동시 운영 후 KT AP 트래픽이 사라지자 비동기 워커도 자동 소멸 2. 크론 a. KT, AWS 동시 운영 후 스케쥴별로 점진 이전 3. HTTPS 트래픽 a. 유클라우드 사용 시절 HTTP, HTTPS 로드밸런서를 따로 운영 i. 유클라우드 서비스 초기 HTTPS 로드밸런서 미지원 ii. HTTP 트래픽을 먼저 옮기고 HTTPS는 차후 이전하였음. 4. 고정 IP 대응 a. 일부 클라이언트(학교) 방화벽 정책 : IP 화이트리스트 b. 고정 IP는 구입 불가 c. 해당 IP에서 운영중인 서버를 프록시 서버로 전환 d. 프록시 서버는 AWS 서버 HTTP 호출 ETC
  • 30. Q&A 1. 왜 AWS RDS, DMS를 사용하지 않았나요? a. MySQL 5.5 GTID 미지원 b. MySQL 5.5 binlog_format=STATEMENT 상태 c. Percona XtraBackup은 디렉토리 직접 접근 필요하나 RDS는 SSH 접속 미지원
  • 31. 감사합니다 내용이 많아 PPT에 못 담은 내용이 많습니다. 문의 : sinwoobang@add2paper.com