7. Route53을 통한 트래픽 분배
Amazon Route53
최종 사용자
www.example.com
na.example.com
sa.example.com
eu.example.com
ap.example.com
지연 시간 기반
또는 지역 DNS
8. Route53의 라우팅 정책
§ 단순(Simple) 라우팅 – 하나의 DNS 요청에 대해 하나의 자원. 예 : 1대의 웹서버
§ 가중치 기반 라운드 로빈(WRR) - 하나의 DNS 요청에 대해 지정한 가중치에 따른
빈도로 다수의 자원 응답. 예 : 다수의 웹서버에 m:n 비율
§ 지연 시간 기반(LBR) - 최종 사용자를 지연 시간이 가장 낮은 AWS 지역으로 라우
팅. 예 : 복수 지역의 웹서버 배포
§ 페일오버 (Failover) – Active-Passive 형태로 이중화 구현하여 라우팅. 예 : 재해 복
구 웹서버
§ 지역 DNS (Geo DNS) – 최종 사용자의 위치에 따라 특정 AWS 지역으로 라우팅.
예 : 복수 지역의 웹서버 배포
9. 지연 시간 기반(LBR)
§ 최종 사용자를 지연 시간이 가장 낮은
AWS 지역으로 라우팅
Record name Type Policy Values
www.example.com CNAME Latency
(us-west-1)
na.example.com
www.example.com CNAME Latency
(sa-east-1)
sa.example.com
www.example.com CNAME Latency
(eu-west-1)
eu.example.com
www.example.com CNAME Latency
(ap-northeast-1)
ap.example.com
10. 지역 DNS (Geo DNS)
§ 최종 사용자의 위치에 따라 특정 AWS 지
역으로 라우팅
Record name Type Policy Values
www.example.com CNAME Geolocation
(us-west-1)
na.example.com
www.example.com CNAME Geolocation
(sa-east-1)
sa.example.com
www.example.com CNAME Geolocation
(eu-west-1)
eu.example.com
www.example.com CNAME Geolocation
(ap-northeast-1)
ap.example.com
11. 글로벌 배포 전략 2 – 단일 지역+CDN 배포
sa.example.com
example.com
정적 또는
동적 콘텐츠
최종 사용자
최종 사용자
최종 사용자
최종 사용자
최종 사용자
최종 사용자
12. Amazon CloudFront 통한 전체 사이트 가속
Elastic Load
Balancing
동적 콘텐츠
Amazon
EC2
정적 콘텐츠
Amazon
S3
* (default)
/error/*
/assets/*
Amazon CloudFront
example.com
사용자에서 CloudFront
지연 시간 기반 라우팅
지속적인 연결
정적 콘텐츠 캐싱
CloudFront에서 오리진
정적 동적 콘텐츠 분리
각 오리진에 대한 지속적인 연결
성능을 위한 네트워크 경로 모니터링
13. 지역 선택 시 고려 사항
§ 응답 속도 - 서비스 대상 최종 사용자에 낮은 응답속도를 제공할 수 있는
지역 선택
§ 가용 서비스 – 대부분 AWS 서비스는 지역 단위로 제공. 특정 서비스는 모
든 지역에서 가용하지 않음.
§ 컴플라이언스 – 고객 데이터가 한 곳에서 다른 곳으로 이동 시, 각 국가별
보안 및 컴플라이언스 규정 존재
§ 비용 – 지역마다 다름
16. 웹 어플리케이션 아키텍처 예
Auto Scaling group
Availability Zone
www.example.com
security group
security group
EBS volumes
media.example.com
Elastic Load
Balancing
Amazon S3
bucket
CloudFront
distribution
EC2 instance
web app
server
RDS instance
virtual private cloud
컴퓨팅 및 네트워크
스토리지 및
콘텐츠 전송
네트워크
데이터베이스
Elastic IP
AMI
RDS Snapshot
EBS Snapshot
17. 지역 간 복제 기능 제공 서비스 및 방법
Amazon DynamoDB
대상 지역원본 지역
AWS Data Pipeline
AMI
Amazon EBS
AMI
Copy
Copy
Copy
RDS SnapshotRDS Snapshot
Amazon EBS
EBS SnapshotEBS Snapshot
Snapshot Restore
Amazon EC2 Amazon EC2
RestoreCreate
Snapshot Restore
Import
Amazon RDS
Amazon DynamoDB
Export
18. 컴퓨팅 및 네트워크 이전
자원 지역 이전 방법 고려 사항
AMI 및 인스턴스 지역 간 복제 • AMI ID는 지역 별 고유
EBS
볼륨 및 스냅샷 지역 간 복제 • 스냅샷 복제 중 볼륨 변경 데이터는 복제되지 않음
키 쌍 사용자 관리 • 오토스케일링 배포 구성 및 CloudFormation 템플릿 내 키 쌍 이
름 변경
로드 밸런서 신규 생성 • ELB는 지역 간 복제되지 않음
• SSL 인증서 및 헬스체크 구성 업데이트 필요
Elas.c
IP 신규 생성 • EIP는 지역 단위 풀에서 할당으로 지역 간 동일 IP 사용 불가
• EIP를 가리키는 DNS의 TTL을 줄이도록 업데이트
VPC
신규 생성 • VPC는 지역 간 복제되지 않음
• 동일 사설 IP
대역 사용 가능
보안 그룹 신규 생성 (구성 복제) • 인스턴스 배포 전 구성
배포 구성 및
오토스케일링 그룹
신규 생성 (구성 복제) • 신규 AMI
ID,
보안 그룹, 키 쌍 변경 필요
19. 컴퓨팅 및 네트워크 이전 – 보안 그룹
§ AWS CLI를 통한 보안그룹 구성 정보 수집
§ $ aws ec2 describe-security-groups --region
<sourceregionname> >> sg.txt
20. 컴퓨팅 및 네트워크 이전 – AMI 및 인스턴스
1. Source 지역에서 AMI 복사
2. Target 지역에서 복사되는 AMI 확인
3. 복사된 AMI를 통하여 새로운 인스턴스 배포
21. 컴퓨팅 및 네트워크 이전 – 볼륨 및 스냅샷
1. Source 지역에서 EBS 스냅샷 생성 후 복사
2. Target 지역에서 복사되는 스냅샷 확인
3. 복사된 Snapshot을 통하여 새로운 볼륨 생성
22. 변경 필요 :
• AMI ID
• SSH 키 쌍
• 보안 그룹
컴퓨팅 및 네트워크 이전 – ASG 및 배포그룹
§ AWS CLI를 통한 오토 스케일링 관련 구성 정보 수집
§ $ aws autoscaling describe-auto-scaling-groups >>
asgroup.txt
§ $ aws autoscaling describe-launch-configurations >>
launch.txt
23. 스토리지 및 콘텐츠 전송 네트워크 이전
자원 지역 이전 방법 고려 사항
S3 버킷 사용자가 복제 • 콘솔의 copy/cut 및 paste 활용
• S3 CLI 활용
• s3distcp 툴 활용
CloudFront 배포 글로벌 단위 • 기존 배포의 오리진을 신규 지역의 오리진으로
변경
• 또는 신규 배포 생성하여 기존의 배포와 DNS
로드밸런싱
24. 스토리지 및 콘텐츠 전송 네트워크 이전 – S3
§ S3 버킷의 개체들을 다른 지역으로 옮기는 방법
§ 예 :
§ Source 버킷 : distcptest, 지역: Tokyo, 크기: 9GB, 갯수: 90
§ Target 버킷 : distcptestsydney, 지역 : Sydney
25. 스토리지 및 콘텐츠 전송 네트워크 이전 – S3
§ AWS CLI를 이용한 디렉토리 및 s3 prefixes 동기화. 지역간 복제를 위한
간단한 방법
§ $aws s3 sync s3://distcptest/moveiclip s3://
distcptestsydney/movieclip
§ 총 소요 시간 : 14분
26. 스토리지 및 콘텐츠 전송 네트워크 이전 – S3
§ s3distcp 작업를 이용한 분산 복제. 성능 최적화를 위한 지역 간 복제 방법
27. 스토리지 및 콘텐츠 전송 네트워크 이전 – S3
§ 인스턴스 크기 및 수량을 선택하여 EMR 클러스터 생성
§ s3distcp 작업을 클러스터에 실행
(s3DistCp is an extension of DistCp that is optimized to work with AWS)
$
aws
emr
add-‐steps
-‐-‐cluster-‐id
j-‐XXXXXXXXXX
-‐-‐steps
Type=CUSTOM_JAR,Name="S3DistCp
step",Jar=
/home/hadoop/lib/emr-‐s3distcp-‐1.0.jar,
Args=["-‐-‐src,s3://distcptest/moveiclip
","-‐-‐dest,s3://distcptestsydney/movieclip”]
28. § 작업 수행 결과
총 소요 시간 : 3.5분
(CLI : 14분)
클러스터 크기에 따라 복제 시간 단
축
스토리지 및 콘텐츠 전송 네트워크 이전 – S3
29. 스토리지 및 콘텐츠 전송 네트워크 이전 – S3
§ 클러스터의 크기를 6코어 노드로 변경 및 테스트
§ 총 소요 시간 : 1.5분
30. 데이터베이스 이전
자원 지역 이전 방법 고려 사항
RDS 인스턴스
및 스냅샷
지역 간 복제 • 스냅샷 생성 및 지역 간 복제
RDS 파라미터
그룹
신규 생성 (구
성 복제)
• 지역 간 복제는 현재 지원되지 않고 있음
31. 데이터베이스 이전 – RDS
Primary
Secondary
Secondary
모든 DB엔진에 대하여 RDS
스냅샷
수동 /
자동 스냅샷
DB스냅샷을 다른 AWS
Region으로 복제
다른 AWS
지역으로
마이그레이션 용도로 사용
33. 데이터베이스 이전 – RDS
§ AWS CLI를 사용하여 파라미터 그룹 복사
§ $
aws
rds
copy-‐db-‐parameter-‐group
-‐-‐region
us-‐east-‐1
-‐-‐source-‐db-‐
parameter-‐group-‐iden.fier
arn:aws:rds:ap-‐
northeast-‐1:389941452291:pg:src-‐parameter
-‐-‐target-‐db-‐parameter-‐
group-‐iden.fier
dest-‐test-‐params
-‐-‐target-‐db-‐parameter-‐group-‐
descrip.on
TEST
A
client
error
(DBParameterGroupNotFound)
occurred
when
calling
the
CopyDBParameterGroup
opera.on:
DB
ParameterGroup
not
found,
not
allowed
to
do
cross
region
copy.
* 지역간 복제는 현재 지원되지 않음
34. $ python copy_db_parameter_group.py --src=src-test --src_regio
n=ap-northeast-1 --dest=desttestparam --dest_region=ap-southea
st-1!
!
데이터베이스 이전 – RDS
§ AWS CLI를 사용한 리전간 DB 파라미터 그룹 복사하기
§ AWS 한국 블로그 -
https://aws.amazon.com/ko/blogs/korea/copy-db-parameters-
between-regions-using-aws-cli/
§ Python, boto3 library, deepdiff library required
36. 데이터베이스 마이그레이션을 손쉽게 시작
마이그레이션 중 어플리케이션 서비스 유지
Amazon EC2 또는 RDS를 원본 또는 대상으로 복제
동일 또는 이기종 데이터베이스간 복제
평가판 - http://aws.amazon.com/ko/dms/
AWS
Database Migration
Service
AWS Database Migration Service 개요
37. AWS DMS 구성 – step1. 시작하기
https://console.aws.amazon.com/dms 접속하기
38. AWS DMS 구성 – step2. 복제 인스턴스 생성
복제 인스턴스 타입 및 VPC 선택
39. AWS DMS 구성 – step3. DB 접속 구성
원본 DB 접속 구성 대상 DB 접속 구성
40. AWS DMS 구성 – step4. 복제 태스크 생성
복제 방식 선택 : 스냅샷 및 변경사항 복제
복제 대상 선택 : 전체 테이블 및 선택
42. 고객 온-프레
미스
어플리케이션 사용자
AWS
인터넷
VPN
데이터베이스 마이그레이션 다운타임 최소화
§ 복제 인스턴스 시작
§ 원본 및 대상 데이터베이스에 접속
§ 테이블, 스키마, 데이터베이스 선택
AWS Database Migration Service 가
테이블 생성, 데이터 로드 및 변경 사
항 적용
적절한 시점에 대상 데이터베이스로
어플리케이션 전환
AWS
Database Migration Servi
ce
43. 마이그레이션 후 데이터 복제 및 통합에 사용
§ 온-프레미스 데이터베이스 내 데이터를 AWS로 복제
§ OLTP 데이터를 Amazon Redshift로 복제
§ 3rd 파티 소프트웨어의 테이블을 리포팅 또는 코어 OLTP 시
스템에 통합
§ 하이브리드 구성을 통한 AWS 마이그레이션
46. Passive
Amazon
Route 53
마이그레이션 – 복제 구성
대상 지역
원본 지역
web app
server
RDS instance
EC2 instance
web app
server
RDS instance
EC2 instance
데이터 복제 구성
AMI 및 Snapshot 복제
47. Amazon
Route 53
대상 지역
원본 지역
web app
server
RDS instance
EC2 instance
web app
server
RDS instance
EC2 instance
100% 0%
실시간 데이터 복제
마이그레이션 – Route53 WRR을 통한 부하분산
48. Passive
Amazon
Route 53
마이그레이션 – Route53 WRR을 통한 부하분산
대상 지역
원본 지역
web app
server
RDS instance
EC2 instance
web app
server
RDS instance
EC2 instance
실시간 데이터 복제
90% 10%
49. Passive
Amazon
Route 53
마이그레이션 – Route53 WRR을 통한 부하분산
대상 지역
원본 지역
web app
server
RDS instance
EC2 instance
web app
server
RDS instance
EC2 instance
실시간 데이터 복제
50% 50%
50. Passive
Amazon
Route 53
마이그레이션 – Route53 WRR을 통한 부하분산
대상 지역
원본 지역
web app
server
RDS instance
EC2 instance
web app
server
RDS instance
EC2 instance
실시간 데이터 복제
10% 90%
51. Passive
Amazon
Route 53
마이그레이션 – DB 소스 전환
대상 지역
원본 지역
web app
server
RDS instance
EC2 instance
web app
server
RDS instance
EC2 instance
실시간 데이터 복제
데이터베이스 소스 전환
10% 90%
52. Passive
Amazon
Route 53
대상 지역
원본 지역
web app
server
RDS instance
EC2 instance
web app
server
RDS instance
EC2 instance
마이그레이션 – DB 소스 전환
데이터 복제 구성
10% 90%
53. Passive
Amazon
Route 53
마이그레이션 – Route53 WRR을 통한 부하분산
대상 지역
원본 지역
web app
server
RDS instance
EC2 instance
web app
server
RDS instance
EC2 instance
실시간 데이터 복제
0% 100%
54. Passive
Amazon
Route 53
마이그레이션 – Route53 WRR을 통한 부하분산
대상 지역
원본 지역
RDS instance
web app
server
RDS instance
EC2 instance
실시간 데이터 복제