© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
최정욱 / 솔루션 아키텍트
아마존 웹서비스 코리아
AWS 를 활용한
SQL Server 최적 활용 방안
AWS 상의 SQL Server 서비스
AWS 상에서 SQL Server 운영 혜택
 광범위한 글로벌 인프라 제공
 높은 가용성 및 유연성 제공
 다양한 버전 및 에디션 제공
 지속적인 가격 하락 및 라이선스 최적화를
통한 비용 절감
 친숙한 기존 관리 도구 사용
전 리전에 SQL Server 이중화 구성 제공
16개 리전
(Region)
44개 가용 영역
(Availability Zones)
버지니아 북부
오하이오오레곤
캘리포니아 북부
상파울루
아일랜드
런던
프랑크푸르트
미국 정부
캐나다
뭄바이
싱가포
르
시드니
도쿄
서울
베이징
스웨덴
프랑스
닝샤
홍콩
미국 정부
신규 리전 (추가 예정)
리전 (괄호는 가용영역 수)
가용성 - SQL Server 미러링
Availability Zone 1
Primary
Replica
Availability Zone 2
Secondary
Replica
Automatic Failover
Witness
Server
Availability Zone 3
Availability Zone 1
Private Subnet
EC2
Primary
Replica
Primary: 10.0.2.100
WSFC: 10.0.2.101
AG Listener: 10.0.2.102
AWS Region A
Availability Zone 2
Private Subnet
EC2
Secondary
Replica
Primary: 10.0.3.100
WSFC: 10.0.3.101
AG Listener: 10.0.3.102
Availability Zone 1
Private Subnet
EC2
Secondary
Replica
Primary: 10.1.2.100
WSFC: 10.1.2.101
AG Listener: 10.1.2.102
Synchronous Commit
Automatic Failover
AWS Region B
Asynchronous Commit
Manual Failover
Elastic IP Elastic IP
VPN
가용성 - SQL AlwaysOn AG
다양한 버전 및 에디션 제공
Amazon에서 게시한 Microsoft 윈도우 및 SQL 서버 AMI
Windows Server 2016
Windows Server 2012 및 2012 R2
Windows Server 2008 및 2008 R2
Windows Server 2003 R2
SQL Server 2017
SQL Server 2016
SQL Server 2012
SQL Server 2008
SQL Server 2005
http://aws.amazon.com/windows/resources/amis/
SQL Server 라이선스 포함 옵션
AWS를 통해 라이선스 구매
 AWS에서 라이선스 정책 관리
 최신 버전 및 이전 버전 지원
 Windows Server Client Access
라이센스 (CALs) 불필요
SQL Server 기존 라이선스 활용 옵션
기존 라이선스 활용 (BYOL)
 기존 라이선스 구매 패턴을 유지하면서
클라우드의 장점을 효율적으로 사용
 추가 하드웨어 구매 비용 없이 라이선스
투자 수명 주기 연장
 가상환경에서 클라우드로 신속한 이전
Deployment
Deployment라이선스 수량 최적화
Data Center /
Region
HA Disaster
Asynch
Miles Apart
Data Center /
Region
On Premise
Region
Availability
Zone
Availability
Zone
Synch
Miles Apart
AWS (SQL on EC2 or RDS)
Low Latency
아키텍처 해택:
• 적은 수의 Microsoft SQL Server 인스턴스 사용
• RDS 적용시 백업, 패치등 관리 업무 비용 절감
• 다중 가용영역을 통한 간편한 이중화 및 재해복구
구현
• 자동 Fail-Over를 통한 거의 0값에 가까운 RTO
• 동기화 복제를 통한 0 RPO
비용 해택:
• SA 미계약시 Microsoft SQL Server 라이선스 수량이
3개에서 2개로
• 33% 라이선스 비용 절감
• SA 계약시 Microsoft SQL Server 라이선스 수량이
1개로
• 50% 라이선스 비용 절감
High Latency
Deployment
Deployment
Data Center /
Region
HA Disaster
Asynch
Miles Apart
Data Center /
Region
On Premise / Azure AWS (SQL on EC2)
아키텍처 혜택:
• 적은 수의 Microsoft SQL Server 인스턴스
• Standard Edition을 통한 다중가용영역 SQL Server
클러스터 제공
• NAS/SAN 관리 부담 없음
• 이중화 및 재해복구 인프라 제공
비용 해택:
• 라이선스 개수 최적화
• Microsoft SQL Server Enterprise 라이선스대신
Standard 라이선스 사용
• Standard 라이선스는 $3,717.00, Enterprise
라이선스는 $14,256.00 (SQL Server 2016 기준).
High Latency
라이선스 타입 최적화
Region
Availability
Zone
Availability
Zone
Clustering
Miles Apart
Low Latency
Synch
Volumes
원격데스크탑관리매니저 사용
Failover Cluster 관리자 사용
SQL Server Management Studio 사용
AWS 에서 비즈니스 요구사항에 맞는
SQL Server 솔루션 선택
백업 및 복구
performance tuning
25%40%
5% 5%
scripting & coding
보안 기획
설치, 업그레이드,
패치 및 이관
문서 작성,
라이센싱 및 교육
일상적인 데이터 베이스 운영 업무
AWS에서 제공하는 SQL Server 솔루션
Amazon RDS for SQL
Server
Power, HVAC, net
Rack and stack
Server maintenance
OS patches
DB software patches
Database backups
High availability
DB software installs
OS installation
Scaling
App optimization
Power, HVAC, net
Rack and stack
Server maintenance
OS patches
DB software patches
Database backups
High availability
DB software installs
OS installation
Scaling
App optimization
SQL Server on Amazon
EC2
Multiple optionsCustomer managed AWS managed
운영 환경에 맞는 적절한 솔루션 선택
• AWS상에서는 RDS를 우선 고려
• 아래 사항에 중점:
• 비즈니스 가치 창조 업무
• 높은 수준의 튜닝 업무
• 스키마 최적화
• 데이터베이스 운영 경험 불필요
Amazon RDS for SQL
Server
SQL Server on Amazon EC2
• 아래 사항에 완전한 통제 제공:
DB instance
• 데이터베이스 인스턴스
• 백업, 복제
• 이중화
• RDS에서 제공되지 않는 옵션
RDS와 EC2상의 SQL Server 비교
EC2 RDS
라이선스 제공  
고객사 라이선스 사용-BYOL(Bring Your Own
License)
 
인스턴스에 대한 완전한 제어 
자동 백업 
고객 관리형 AlwaysOn Availability Groups 
AWS 관리형 Multi-AZ 배포 
RDS가 제공하는 관리 기능
• 자동 백업 및 복구
최대 35일, 즉시 복구 기능 제공, 일반적으로 5분 이내
• Push-button DB 인스턴스 사양 변경
• 장애 호스트 자동 교체
• 자동 마이너 업그레이드
• 최적화된 설정값 및 옵션 제공
• 유지 보수 시간 설정 지원
- 백업 시간 : 최소 일 30분
- 유지 보수 시간 : 최소 주 30분
RDS SQL Server 도구 지원
• 일반적인 도구 사용 : SQL Server Management Studio등
• 데이터 이관 도구:
Amazon RDS Migration Tool
Microsoft SQL Server Database Publishing Wizard
• RDS 인스턴스 당 최대 30개의 데이터베이스 지원
• SSAS, SSIS 및 SSRS를 위한 데이터소스로 사용(설치불가)
• 미지원 도구 :
Maintenance Plans, Database Mail
Linked Servers, MS-DTC
RDS SQL Server 도입이 힘든 상황
• 제한된 운영체제 접근 권한. sysadmin 권한 없음
• 관리형 서비스인 관계로, 시스템 안정성을 위해 sysadmin 권한을 제공하지 않음.
• SQL Service 사용을 위해서 sysadmin이 필요하지 않음
• SQL Server Reporting Services (SSRS), Integration Services (SSIS), Analysis
Services (SSAS) 사용이 제한됨
• 데이터 소스로서 사용 가능. 상기 서비스는 외부의 EC2에서 운영될 수 있음.
• 최대 30개의 데이터베이스 제공
• 단일 대형 DB나 tlog파일 그룹이 급증하는 환경에 적합하지 않음
• Database Mail 기능 제공하지 않음.
• leverage Amazon SES 사용 권장
AWS 상에서 SQL Server 고가용성 구현
EC2 상의 SQL Server 고가용성
SQL Server에서 제공하는 기능 사용
• Log Shipping: 재해 복구용이나 가용성 증대를 위해 사용
• Database Mirroring: 대기 서버에 미러링 기능 제공
• AlwaysOn Availability Groups: 데이터베이스 그룹에 대한
장애 복구 기능 제공
• Failover Cluster Instance : 추가 3rd 소프트웨어 필요
Availability Zone 1
Private Subnet
EC2
Primary
Replica
Primary: 10.0.2.100
WSFC: 10.0.2.101
AG Listener: 10.0.2.102
AWS Region A
Availability Zone 2
Private Subnet
EC2
Secondary
Replica
Primary: 10.0.3.100
WSFC: 10.0.3.101
AG Listener: 10.0.3.102
Availability Zone 1
Private Subnet
EC2
Secondary
Replica
Primary: 10.1.2.100
WSFC: 10.1.2.101
AG Listener: 10.1.2.102
Synchronous Commit
Automatic Failover
AWS Region B / On-Premise
Asynchronous Commit
Manual Failover
Elastic IP Elastic IP
VPN
다중리전 SQL Server AlwaysOn AG
다중가용영역 SQL Server 미러링
Availability Zone 1
Primary
Replica
Availability Zone 2
Secondary
Replica
Automatic Failover
Witness
Server
Availability Zone 3
Amazon EBS Amazon EBS
Availability Zone 1
Private Subnet
EC2
Primary
Replica
Availability Zone 2
Private Subnet
EC2
Secondary
Replica
AWS Region
Data Replication
Windows Server Failover Clustering
Third-party 소프트웨어 필요
 SIOS DataKeeper
 SoftNAS Cloud for AWS
RDS for SQL Server 고가용성
다중 가용 영역(Multi-AZ) 모드로 구축 권장
• Primary DB 노드 및 secondary DB 노드는 서로 다른
가용 영역(AZ)에서 운영
• SQL Server Mirroring 기술 중 synchronous 방식 사용
• 자동 장애 복구 (일반적으로 1–2 분 소요), 호스트 교체 지원
Mirroring
stopped
Address
apply debt
Promote to
master
Change DNS
endpoint
Provision
new
secondary
AWS 상에서 SQL Server 성능 및 최적화
비즈니스 및 업무 패턴 확인
데이터베이스 작업 부하 패턴?
• 안정적이고 일정한 패턴
• 변동이 있으나 예측 가능하고 일정한 패턴
• 지속적으로 증가하나 예측가능한 패턴
• 변동이 있으며 예측 불가능한 스파이크 패턴
데이터베이스 쿼리 패턴?
• OLTP성 쿼리
• OLAP성 쿼리
성능에 영향을 주는 작업 패턴
연산 성능
vCPUs
메모리 자원
GB of RAM
네트워크 성능
MB/s
(Throughput)
스토리지 성능
I/O Throughput
EC2 Instance Type/RDS DB Instance Class
Amazon Elastic
Block Store (EBS)/
RDS Storage Type
연산자원 – 스케일링 및 성능
RDS DB 인스턴스 용량
최소 1 vCPU 와 1 GB 램
최대 40 vCPUs와 160GB 램
인스턴스 패밀리
일반 목적
메모리 최적화
버스팅 목적 등
인스턴스 클래스
변경을 통해
스케일링 업 및
다운
R3
인스턴스 타입 변경
Console
인스턴스 타입 변경 – 단일 가용 영역
단일 가용 영역의 경우 데이터베이스 서비스의 중단 발생
dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006
인스턴스 타입 변경 – 다중 가용 영역
다중 가용 영역의 경우 대기 인스턴스가 먼저 업그레이드 됨
dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006
인스턴스 타입 변경 - 자동화
AWS CLI
Scheduled CLI—cron
aws rds modify-db-instance --db-instance-identifier sg-cli-test --db-instance-class db.m4.large --apply-
immediately
#Scale down at 8:00 PM on Friday
0 20 * * 5 /home/ec2-user/scripts/scale_down_rds.sh
#Scale up at 4:00 AM on Monday
0 4 * * 1 /home/ec2-user/scripts/scale_up_rds.sh
인스턴스 타입 변경 - 자동화
AWS Lambda 서비스를 통한 자동화 제공
스케줄 관리 및 CLI 사용을 위한 서버 없이 자동화 제공
import boto3
client=boto3.client('rds')
def lambda_handler(event, context):
response=client.modify_db_instance(DBInstanceIdentifier='sg-cli-test',
DBInstanceClass='db.m4.xlarge',
ApplyImmediately=True)
print response
인스턴스 타입 변경 - 자동화
성능 카운터 기반의 인스턴스 타입 변경
• Amazon CloudWatch 및 AWS Lambda 이용
인스턴스 타입 변경 - 자동화
import boto3
import json
client=boto3.client('rds')
def lambda_handler(event, context):
message = event['Records'][0]['Sns']['Message']
parsed_message=json.loads(message)
db_instance=parsed_message['Trigger']['Dimensions'][0]['value']
print 'DB Instance: ' + db_instance
response=client.modify_db_instance(DBInstanceIdentifier=db_instance,
DBInstanceClass='db.m4.large',
ApplyImmediately=True)
print response
스토리지 시스템 I/O 성능
Amazon RDS Amazon EC2
타입 크기 성능 크기 성능 버스팅 기능 비용 모델
Magnetic
Storage
20 GiB–1 TiB ~100 IOPS 1 GiB–1 TiB ~ 100 IOPS 지원, 수백
IOPS
프로비저닝
용량
General
Purpose
(SSD)
20 GiB–4 TiB
(최소 100 GiB
권장)
3 IOPS/GiB 1 GiB–16 TiB 1TiB 미만의
경우 3
IOPS/GiB
1TiB 이상의
경우 최대
10,000 IOPS
1TiB 이하의
단일 볼륨 당
3000
IOPS까지
지원
프로비저닝
용량
Provisioned
IOPS
(SSD)
100 GiB–4
TiB
(Standard
edition의 경우
최소 200 GiB)
10 IOPS/GiB,
최대 20,000
IOPS
4 GiB–16 TiB 최대 20,000
IOPS; GiB당
3에서 30
IOPS
No, fixed
allocation
프로비저닝
용량 및
프로비전된
IOPS
Instance
Storage
사용 불가 4 GiB–48 TiB
*인스턴스
타입마다 상이
직접 연결 방식 지원 하지 않음 인스턴스에
포함
SQL Server I/O 성능을 위한 계획 수립
Amazon RDS의 최대 채널 대역폭
: 1000 Mbps full duplex
= ~210MiB/s for a 50% read/50% write workload
Amazon EBS 최대 볼륨 처리량
: 320 MiB/s
= ~1,250 IOPS @ 256KiB block size,
= ~20,000 IOPS @ 16KiB block size
IOPS 프로비져닝: I/O operation
최대값은 256 KiB = 1 IOPS
1
2
3
Average queue depth
: I/O requests 대기열
4
추가적인 I/O 성능 고려사항
• Small General Purpose SSD
30Gb 이하의 작은 볼륨의 경우 낮은 I/O 처리량을 제공
• Instance storage (직접 연결)
높은 성능을 요구하는 데이터베이스에 적합
하드웨어 장애 발생시 복구 불가능한 관계로, 강력한 백업 정책이 필요함
• Amazon EC2
여러 EBS 볼륨으로 스트라이핑을 고려
• Amazon RDS
한번 배포되면 스토리지 확장이 불가능.
AWS 상에서 SQL Server 모니터링
SQL Server 성능 모니터링
비정상 상태에 대한 알람(Alarm) 및
알림(Notification)
Amazon EC2 & Amazon RDS 에 대한 기본
측정값 제공
Amazon EC2의 경우 사용자 설정 측정값
추가 가능
Amazon CloudWatch 를 통한 성능 모니터링
RDS 표준 성능 모니터링
 CPU 사용량
 스토리지
 메모리
 Swap 사용량
 DB connections
 I/O (읽기 및 쓰기)
 Latency (읽기 및 쓰기)
 Throughput (읽기 및 쓰기)
 Replica lag
등등
RDS 확장 성능 모니터링
개요 :
• OS 레벨의 모니터링 지표 – 26가지 시스템 지표 및 프로세스 별 지표
• 지표들은 CloudWatch Logs로 전달
• 최소 1초 단위 모니터링 제공
• t1.micro 및 m1.small 인스턴스는 지원하지 않음
CloudWatch 지표와 비교 :
• Agent 기반의 지표
• 지표 수집 기반의 차이(Hypervisor vs Agent)로 인해 모니터링 결과값의
차이가 있을 수 있음 (ex. CPU)
RDS 확장 성능 모니터링 지표
지표 그룹(Metrics Groups):
• 일반 : uptime, instance, version
• CPU 사용량 : idle, kernel, user
• 디스크 : utilization, read & write bytes and operations
• 네트워크 : interface, read & write bytes
• 메모리 : physical, kernel, commit charge, system cache, SQL Server
• 시스템 : handles, processes, threads
• 프로세스 리스트 : grouped by OS processes, RDS processes (management,
monitoring, diagnostics agents), RDS child processes (SQL Server)
RDS 확장 성능 모니터링 지표
이벤트 알림
• Amazon Simple Notification Service
(Amazon SNS)를 사용하여 이벤트
발생시 고객에게 해당 이벤트를
제공.
• 17가지 이벤트 카테고리 제공
(가용성, 백업, 구성 변경 등)
AWS 상의 SQL Server 라이선스 최적화
비즈니스 케이스 (라이선스 비용 최적화)
큰 규모의 SQL Server:
• 요구사항
• 큰 규모의 데이터베이스 서버
• 500 GB RAM
• 32 Cores
• AWS 상의 인스턴스
• “r4.16xlarge” 인스턴스
• 488 GB RAM
• 64 vCPU
• 문제점
• 32vCPU를 위한 SQL Server 추가
라이선스 구매 필요
많은 수의 SQL Server:
• 요구사항
• 8 Database servers – 각각
• 104 GB RAM
• 16 Cores
• AWS 상의 인스턴스
• “r4.4xlarge” 인스턴스
• 122 GB RAM
• 16 vCPU
• Problem
• 8개의 16vCPU를 위한 SQL Server
추가 라이선스 추가 필요
비즈니스 케이스 (해결책)
큰규모의 SQL Server :
• 문제점: r4.16xlarge (488 GB
RAM, 64 vCPU) 인스턴스용
SQL Server 라이선스 비용
• $ 444K
• 해결책: r4 전용 서버 호스트
선택 (36 코어, 1대의
r4.16xlarge 인스턴스 운영)
• $ 249K
• 44% 비용 절감 효과
많은 수의 SQL Server :
• 문제점 : 추가되는 8 x
16vCPU에 대한 SQL 라이선스
비용
• $ 887K
• 해결책 : 2대의 r4 전용 서버
호스트 사용 (36*2 코어, 8대의
r4.4xlarge 인스턴스 운영)
• $ 523K
• 41% 비용 절감 효과
참고자료
Partners
MS Competency https://aws.amazon.com/partners/competencies/microsoft
Find a Partner http://www.aws-partner-directory.com
Videos
All Windows https://aws.amazon.com/windows/resources/#videos
Windows Events and Webinars https://aws.amazon.com/windows/events
All AWS https://www.youtube.com/AmazonWebServices
AWS Webinars https://www.youtube.com/AWSwebinars
Discussion Forums
EC2 https://forums.aws.amazon.com/forum.jspa?forumID=30
.NET https://forums.aws.amazon.com/forum.jspa?forumID=61
More
Windows on AWS Homepage https://aws.amazon.com/windows
FAQs https://aws.amazon.com/windows/faq
MS Licensing https://aws.amazon.com/windows/resources/licensing
SQL Server https://aws.amazon.com/windows/products/sql
SharePoint https://aws.amazon.com/windows/products/sharepoint
Exchange https://aws.amazon.com/windows/products/exchange
System Center https://aws.amazon.com/windows/products/system-center
Contact Us https://aws.amazon.com/windows/contact-us
Windows Resources https://aws.amazon.com/windows/resources
Support https://aws.amazon.com/premiumsupport
Software Marketplace https://aws.amazon.com/marketplace
Documentation
http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide
Quick Starts
https://aws.amazon.com/quickstart
Whitepapers
Windows https://aws.amazon.com/windows/resources/whitepapers
All AWS https://aws.amazon.com/whitepapers
Tools
.NET SDK https://aws.amazon.com/net
Visual Studio Plugin https://aws.amazon.com/visualstudio
PowerShell Tools https://aws.amazon.com/powershell
AWS Developer Tools https://aws.amazon.com/tools
DevOps https://aws.amazon.com/devops/windows
Training & Certification
Virtual Labs https://aws.amazon.com/windows/resources/training
Webinars https://aws.amazon.com/windows/events/hands-on-labs
Training https://aws.amazon.com/training
Certification https://aws.amazon.com/certification
Getting Started
https://aws.amazon.com/windows/getting-started
Pricing & Calculators
EC2 https://aws.amazon.com/ec2/pricing
AWS https://aws.amazon.com/pricing
감사합니다

[2017 Windows on AWS] AWS 를 활용한 SQL Server 최적 활용 방안

  • 1.
    © 2017, AmazonWeb Services, Inc. or its Affiliates. All rights reserved.
  • 2.
    © 2017, AmazonWeb Services, Inc. or its Affiliates. All rights reserved. 최정욱 / 솔루션 아키텍트 아마존 웹서비스 코리아 AWS 를 활용한 SQL Server 최적 활용 방안
  • 3.
    AWS 상의 SQLServer 서비스
  • 4.
    AWS 상에서 SQLServer 운영 혜택  광범위한 글로벌 인프라 제공  높은 가용성 및 유연성 제공  다양한 버전 및 에디션 제공  지속적인 가격 하락 및 라이선스 최적화를 통한 비용 절감  친숙한 기존 관리 도구 사용
  • 5.
    전 리전에 SQLServer 이중화 구성 제공 16개 리전 (Region) 44개 가용 영역 (Availability Zones) 버지니아 북부 오하이오오레곤 캘리포니아 북부 상파울루 아일랜드 런던 프랑크푸르트 미국 정부 캐나다 뭄바이 싱가포 르 시드니 도쿄 서울 베이징 스웨덴 프랑스 닝샤 홍콩 미국 정부 신규 리전 (추가 예정) 리전 (괄호는 가용영역 수)
  • 6.
    가용성 - SQLServer 미러링 Availability Zone 1 Primary Replica Availability Zone 2 Secondary Replica Automatic Failover Witness Server Availability Zone 3
  • 7.
    Availability Zone 1 PrivateSubnet EC2 Primary Replica Primary: 10.0.2.100 WSFC: 10.0.2.101 AG Listener: 10.0.2.102 AWS Region A Availability Zone 2 Private Subnet EC2 Secondary Replica Primary: 10.0.3.100 WSFC: 10.0.3.101 AG Listener: 10.0.3.102 Availability Zone 1 Private Subnet EC2 Secondary Replica Primary: 10.1.2.100 WSFC: 10.1.2.101 AG Listener: 10.1.2.102 Synchronous Commit Automatic Failover AWS Region B Asynchronous Commit Manual Failover Elastic IP Elastic IP VPN 가용성 - SQL AlwaysOn AG
  • 8.
    다양한 버전 및에디션 제공 Amazon에서 게시한 Microsoft 윈도우 및 SQL 서버 AMI Windows Server 2016 Windows Server 2012 및 2012 R2 Windows Server 2008 및 2008 R2 Windows Server 2003 R2 SQL Server 2017 SQL Server 2016 SQL Server 2012 SQL Server 2008 SQL Server 2005 http://aws.amazon.com/windows/resources/amis/
  • 9.
    SQL Server 라이선스포함 옵션 AWS를 통해 라이선스 구매  AWS에서 라이선스 정책 관리  최신 버전 및 이전 버전 지원  Windows Server Client Access 라이센스 (CALs) 불필요
  • 10.
    SQL Server 기존라이선스 활용 옵션 기존 라이선스 활용 (BYOL)  기존 라이선스 구매 패턴을 유지하면서 클라우드의 장점을 효율적으로 사용  추가 하드웨어 구매 비용 없이 라이선스 투자 수명 주기 연장  가상환경에서 클라우드로 신속한 이전
  • 11.
    Deployment Deployment라이선스 수량 최적화 DataCenter / Region HA Disaster Asynch Miles Apart Data Center / Region On Premise Region Availability Zone Availability Zone Synch Miles Apart AWS (SQL on EC2 or RDS) Low Latency 아키텍처 해택: • 적은 수의 Microsoft SQL Server 인스턴스 사용 • RDS 적용시 백업, 패치등 관리 업무 비용 절감 • 다중 가용영역을 통한 간편한 이중화 및 재해복구 구현 • 자동 Fail-Over를 통한 거의 0값에 가까운 RTO • 동기화 복제를 통한 0 RPO 비용 해택: • SA 미계약시 Microsoft SQL Server 라이선스 수량이 3개에서 2개로 • 33% 라이선스 비용 절감 • SA 계약시 Microsoft SQL Server 라이선스 수량이 1개로 • 50% 라이선스 비용 절감 High Latency
  • 12.
    Deployment Deployment Data Center / Region HADisaster Asynch Miles Apart Data Center / Region On Premise / Azure AWS (SQL on EC2) 아키텍처 혜택: • 적은 수의 Microsoft SQL Server 인스턴스 • Standard Edition을 통한 다중가용영역 SQL Server 클러스터 제공 • NAS/SAN 관리 부담 없음 • 이중화 및 재해복구 인프라 제공 비용 해택: • 라이선스 개수 최적화 • Microsoft SQL Server Enterprise 라이선스대신 Standard 라이선스 사용 • Standard 라이선스는 $3,717.00, Enterprise 라이선스는 $14,256.00 (SQL Server 2016 기준). High Latency 라이선스 타입 최적화 Region Availability Zone Availability Zone Clustering Miles Apart Low Latency Synch Volumes
  • 13.
  • 14.
  • 15.
    SQL Server ManagementStudio 사용
  • 16.
    AWS 에서 비즈니스요구사항에 맞는 SQL Server 솔루션 선택
  • 17.
    백업 및 복구 performancetuning 25%40% 5% 5% scripting & coding 보안 기획 설치, 업그레이드, 패치 및 이관 문서 작성, 라이센싱 및 교육 일상적인 데이터 베이스 운영 업무
  • 18.
    AWS에서 제공하는 SQLServer 솔루션 Amazon RDS for SQL Server Power, HVAC, net Rack and stack Server maintenance OS patches DB software patches Database backups High availability DB software installs OS installation Scaling App optimization Power, HVAC, net Rack and stack Server maintenance OS patches DB software patches Database backups High availability DB software installs OS installation Scaling App optimization SQL Server on Amazon EC2 Multiple optionsCustomer managed AWS managed
  • 19.
    운영 환경에 맞는적절한 솔루션 선택 • AWS상에서는 RDS를 우선 고려 • 아래 사항에 중점: • 비즈니스 가치 창조 업무 • 높은 수준의 튜닝 업무 • 스키마 최적화 • 데이터베이스 운영 경험 불필요 Amazon RDS for SQL Server SQL Server on Amazon EC2 • 아래 사항에 완전한 통제 제공: DB instance • 데이터베이스 인스턴스 • 백업, 복제 • 이중화 • RDS에서 제공되지 않는 옵션
  • 20.
    RDS와 EC2상의 SQLServer 비교 EC2 RDS 라이선스 제공   고객사 라이선스 사용-BYOL(Bring Your Own License)   인스턴스에 대한 완전한 제어  자동 백업  고객 관리형 AlwaysOn Availability Groups  AWS 관리형 Multi-AZ 배포 
  • 21.
    RDS가 제공하는 관리기능 • 자동 백업 및 복구 최대 35일, 즉시 복구 기능 제공, 일반적으로 5분 이내 • Push-button DB 인스턴스 사양 변경 • 장애 호스트 자동 교체 • 자동 마이너 업그레이드 • 최적화된 설정값 및 옵션 제공 • 유지 보수 시간 설정 지원 - 백업 시간 : 최소 일 30분 - 유지 보수 시간 : 최소 주 30분
  • 22.
    RDS SQL Server도구 지원 • 일반적인 도구 사용 : SQL Server Management Studio등 • 데이터 이관 도구: Amazon RDS Migration Tool Microsoft SQL Server Database Publishing Wizard • RDS 인스턴스 당 최대 30개의 데이터베이스 지원 • SSAS, SSIS 및 SSRS를 위한 데이터소스로 사용(설치불가) • 미지원 도구 : Maintenance Plans, Database Mail Linked Servers, MS-DTC
  • 23.
    RDS SQL Server도입이 힘든 상황 • 제한된 운영체제 접근 권한. sysadmin 권한 없음 • 관리형 서비스인 관계로, 시스템 안정성을 위해 sysadmin 권한을 제공하지 않음. • SQL Service 사용을 위해서 sysadmin이 필요하지 않음 • SQL Server Reporting Services (SSRS), Integration Services (SSIS), Analysis Services (SSAS) 사용이 제한됨 • 데이터 소스로서 사용 가능. 상기 서비스는 외부의 EC2에서 운영될 수 있음. • 최대 30개의 데이터베이스 제공 • 단일 대형 DB나 tlog파일 그룹이 급증하는 환경에 적합하지 않음 • Database Mail 기능 제공하지 않음. • leverage Amazon SES 사용 권장
  • 24.
    AWS 상에서 SQLServer 고가용성 구현
  • 25.
    EC2 상의 SQLServer 고가용성 SQL Server에서 제공하는 기능 사용 • Log Shipping: 재해 복구용이나 가용성 증대를 위해 사용 • Database Mirroring: 대기 서버에 미러링 기능 제공 • AlwaysOn Availability Groups: 데이터베이스 그룹에 대한 장애 복구 기능 제공 • Failover Cluster Instance : 추가 3rd 소프트웨어 필요
  • 26.
    Availability Zone 1 PrivateSubnet EC2 Primary Replica Primary: 10.0.2.100 WSFC: 10.0.2.101 AG Listener: 10.0.2.102 AWS Region A Availability Zone 2 Private Subnet EC2 Secondary Replica Primary: 10.0.3.100 WSFC: 10.0.3.101 AG Listener: 10.0.3.102 Availability Zone 1 Private Subnet EC2 Secondary Replica Primary: 10.1.2.100 WSFC: 10.1.2.101 AG Listener: 10.1.2.102 Synchronous Commit Automatic Failover AWS Region B / On-Premise Asynchronous Commit Manual Failover Elastic IP Elastic IP VPN 다중리전 SQL Server AlwaysOn AG
  • 27.
    다중가용영역 SQL Server미러링 Availability Zone 1 Primary Replica Availability Zone 2 Secondary Replica Automatic Failover Witness Server Availability Zone 3
  • 28.
    Amazon EBS AmazonEBS Availability Zone 1 Private Subnet EC2 Primary Replica Availability Zone 2 Private Subnet EC2 Secondary Replica AWS Region Data Replication Windows Server Failover Clustering Third-party 소프트웨어 필요  SIOS DataKeeper  SoftNAS Cloud for AWS
  • 29.
    RDS for SQLServer 고가용성 다중 가용 영역(Multi-AZ) 모드로 구축 권장 • Primary DB 노드 및 secondary DB 노드는 서로 다른 가용 영역(AZ)에서 운영 • SQL Server Mirroring 기술 중 synchronous 방식 사용 • 자동 장애 복구 (일반적으로 1–2 분 소요), 호스트 교체 지원 Mirroring stopped Address apply debt Promote to master Change DNS endpoint Provision new secondary
  • 30.
    AWS 상에서 SQLServer 성능 및 최적화
  • 31.
    비즈니스 및 업무패턴 확인 데이터베이스 작업 부하 패턴? • 안정적이고 일정한 패턴 • 변동이 있으나 예측 가능하고 일정한 패턴 • 지속적으로 증가하나 예측가능한 패턴 • 변동이 있으며 예측 불가능한 스파이크 패턴 데이터베이스 쿼리 패턴? • OLTP성 쿼리 • OLAP성 쿼리
  • 32.
    성능에 영향을 주는작업 패턴 연산 성능 vCPUs 메모리 자원 GB of RAM 네트워크 성능 MB/s (Throughput) 스토리지 성능 I/O Throughput EC2 Instance Type/RDS DB Instance Class Amazon Elastic Block Store (EBS)/ RDS Storage Type
  • 33.
    연산자원 – 스케일링및 성능 RDS DB 인스턴스 용량 최소 1 vCPU 와 1 GB 램 최대 40 vCPUs와 160GB 램 인스턴스 패밀리 일반 목적 메모리 최적화 버스팅 목적 등 인스턴스 클래스 변경을 통해 스케일링 업 및 다운 R3
  • 34.
  • 35.
    인스턴스 타입 변경– 단일 가용 영역 단일 가용 영역의 경우 데이터베이스 서비스의 중단 발생 dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006
  • 36.
    인스턴스 타입 변경– 다중 가용 영역 다중 가용 영역의 경우 대기 인스턴스가 먼저 업그레이드 됨 dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006
  • 37.
    인스턴스 타입 변경- 자동화 AWS CLI Scheduled CLI—cron aws rds modify-db-instance --db-instance-identifier sg-cli-test --db-instance-class db.m4.large --apply- immediately #Scale down at 8:00 PM on Friday 0 20 * * 5 /home/ec2-user/scripts/scale_down_rds.sh #Scale up at 4:00 AM on Monday 0 4 * * 1 /home/ec2-user/scripts/scale_up_rds.sh
  • 38.
    인스턴스 타입 변경- 자동화 AWS Lambda 서비스를 통한 자동화 제공 스케줄 관리 및 CLI 사용을 위한 서버 없이 자동화 제공 import boto3 client=boto3.client('rds') def lambda_handler(event, context): response=client.modify_db_instance(DBInstanceIdentifier='sg-cli-test', DBInstanceClass='db.m4.xlarge', ApplyImmediately=True) print response
  • 39.
    인스턴스 타입 변경- 자동화 성능 카운터 기반의 인스턴스 타입 변경 • Amazon CloudWatch 및 AWS Lambda 이용
  • 40.
    인스턴스 타입 변경- 자동화 import boto3 import json client=boto3.client('rds') def lambda_handler(event, context): message = event['Records'][0]['Sns']['Message'] parsed_message=json.loads(message) db_instance=parsed_message['Trigger']['Dimensions'][0]['value'] print 'DB Instance: ' + db_instance response=client.modify_db_instance(DBInstanceIdentifier=db_instance, DBInstanceClass='db.m4.large', ApplyImmediately=True) print response
  • 41.
    스토리지 시스템 I/O성능 Amazon RDS Amazon EC2 타입 크기 성능 크기 성능 버스팅 기능 비용 모델 Magnetic Storage 20 GiB–1 TiB ~100 IOPS 1 GiB–1 TiB ~ 100 IOPS 지원, 수백 IOPS 프로비저닝 용량 General Purpose (SSD) 20 GiB–4 TiB (최소 100 GiB 권장) 3 IOPS/GiB 1 GiB–16 TiB 1TiB 미만의 경우 3 IOPS/GiB 1TiB 이상의 경우 최대 10,000 IOPS 1TiB 이하의 단일 볼륨 당 3000 IOPS까지 지원 프로비저닝 용량 Provisioned IOPS (SSD) 100 GiB–4 TiB (Standard edition의 경우 최소 200 GiB) 10 IOPS/GiB, 최대 20,000 IOPS 4 GiB–16 TiB 최대 20,000 IOPS; GiB당 3에서 30 IOPS No, fixed allocation 프로비저닝 용량 및 프로비전된 IOPS Instance Storage 사용 불가 4 GiB–48 TiB *인스턴스 타입마다 상이 직접 연결 방식 지원 하지 않음 인스턴스에 포함
  • 42.
    SQL Server I/O성능을 위한 계획 수립 Amazon RDS의 최대 채널 대역폭 : 1000 Mbps full duplex = ~210MiB/s for a 50% read/50% write workload Amazon EBS 최대 볼륨 처리량 : 320 MiB/s = ~1,250 IOPS @ 256KiB block size, = ~20,000 IOPS @ 16KiB block size IOPS 프로비져닝: I/O operation 최대값은 256 KiB = 1 IOPS 1 2 3 Average queue depth : I/O requests 대기열 4
  • 43.
    추가적인 I/O 성능고려사항 • Small General Purpose SSD 30Gb 이하의 작은 볼륨의 경우 낮은 I/O 처리량을 제공 • Instance storage (직접 연결) 높은 성능을 요구하는 데이터베이스에 적합 하드웨어 장애 발생시 복구 불가능한 관계로, 강력한 백업 정책이 필요함 • Amazon EC2 여러 EBS 볼륨으로 스트라이핑을 고려 • Amazon RDS 한번 배포되면 스토리지 확장이 불가능.
  • 44.
    AWS 상에서 SQLServer 모니터링
  • 45.
    SQL Server 성능모니터링 비정상 상태에 대한 알람(Alarm) 및 알림(Notification) Amazon EC2 & Amazon RDS 에 대한 기본 측정값 제공 Amazon EC2의 경우 사용자 설정 측정값 추가 가능 Amazon CloudWatch 를 통한 성능 모니터링
  • 46.
    RDS 표준 성능모니터링  CPU 사용량  스토리지  메모리  Swap 사용량  DB connections  I/O (읽기 및 쓰기)  Latency (읽기 및 쓰기)  Throughput (읽기 및 쓰기)  Replica lag 등등
  • 47.
    RDS 확장 성능모니터링 개요 : • OS 레벨의 모니터링 지표 – 26가지 시스템 지표 및 프로세스 별 지표 • 지표들은 CloudWatch Logs로 전달 • 최소 1초 단위 모니터링 제공 • t1.micro 및 m1.small 인스턴스는 지원하지 않음 CloudWatch 지표와 비교 : • Agent 기반의 지표 • 지표 수집 기반의 차이(Hypervisor vs Agent)로 인해 모니터링 결과값의 차이가 있을 수 있음 (ex. CPU)
  • 48.
    RDS 확장 성능모니터링 지표 지표 그룹(Metrics Groups): • 일반 : uptime, instance, version • CPU 사용량 : idle, kernel, user • 디스크 : utilization, read & write bytes and operations • 네트워크 : interface, read & write bytes • 메모리 : physical, kernel, commit charge, system cache, SQL Server • 시스템 : handles, processes, threads • 프로세스 리스트 : grouped by OS processes, RDS processes (management, monitoring, diagnostics agents), RDS child processes (SQL Server)
  • 49.
    RDS 확장 성능모니터링 지표
  • 50.
    이벤트 알림 • AmazonSimple Notification Service (Amazon SNS)를 사용하여 이벤트 발생시 고객에게 해당 이벤트를 제공. • 17가지 이벤트 카테고리 제공 (가용성, 백업, 구성 변경 등)
  • 51.
    AWS 상의 SQLServer 라이선스 최적화
  • 52.
    비즈니스 케이스 (라이선스비용 최적화) 큰 규모의 SQL Server: • 요구사항 • 큰 규모의 데이터베이스 서버 • 500 GB RAM • 32 Cores • AWS 상의 인스턴스 • “r4.16xlarge” 인스턴스 • 488 GB RAM • 64 vCPU • 문제점 • 32vCPU를 위한 SQL Server 추가 라이선스 구매 필요 많은 수의 SQL Server: • 요구사항 • 8 Database servers – 각각 • 104 GB RAM • 16 Cores • AWS 상의 인스턴스 • “r4.4xlarge” 인스턴스 • 122 GB RAM • 16 vCPU • Problem • 8개의 16vCPU를 위한 SQL Server 추가 라이선스 추가 필요
  • 53.
    비즈니스 케이스 (해결책) 큰규모의SQL Server : • 문제점: r4.16xlarge (488 GB RAM, 64 vCPU) 인스턴스용 SQL Server 라이선스 비용 • $ 444K • 해결책: r4 전용 서버 호스트 선택 (36 코어, 1대의 r4.16xlarge 인스턴스 운영) • $ 249K • 44% 비용 절감 효과 많은 수의 SQL Server : • 문제점 : 추가되는 8 x 16vCPU에 대한 SQL 라이선스 비용 • $ 887K • 해결책 : 2대의 r4 전용 서버 호스트 사용 (36*2 코어, 8대의 r4.4xlarge 인스턴스 운영) • $ 523K • 41% 비용 절감 효과
  • 54.
    참고자료 Partners MS Competency https://aws.amazon.com/partners/competencies/microsoft Finda Partner http://www.aws-partner-directory.com Videos All Windows https://aws.amazon.com/windows/resources/#videos Windows Events and Webinars https://aws.amazon.com/windows/events All AWS https://www.youtube.com/AmazonWebServices AWS Webinars https://www.youtube.com/AWSwebinars Discussion Forums EC2 https://forums.aws.amazon.com/forum.jspa?forumID=30 .NET https://forums.aws.amazon.com/forum.jspa?forumID=61 More Windows on AWS Homepage https://aws.amazon.com/windows FAQs https://aws.amazon.com/windows/faq MS Licensing https://aws.amazon.com/windows/resources/licensing SQL Server https://aws.amazon.com/windows/products/sql SharePoint https://aws.amazon.com/windows/products/sharepoint Exchange https://aws.amazon.com/windows/products/exchange System Center https://aws.amazon.com/windows/products/system-center Contact Us https://aws.amazon.com/windows/contact-us Windows Resources https://aws.amazon.com/windows/resources Support https://aws.amazon.com/premiumsupport Software Marketplace https://aws.amazon.com/marketplace Documentation http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide Quick Starts https://aws.amazon.com/quickstart Whitepapers Windows https://aws.amazon.com/windows/resources/whitepapers All AWS https://aws.amazon.com/whitepapers Tools .NET SDK https://aws.amazon.com/net Visual Studio Plugin https://aws.amazon.com/visualstudio PowerShell Tools https://aws.amazon.com/powershell AWS Developer Tools https://aws.amazon.com/tools DevOps https://aws.amazon.com/devops/windows Training & Certification Virtual Labs https://aws.amazon.com/windows/resources/training Webinars https://aws.amazon.com/windows/events/hands-on-labs Training https://aws.amazon.com/training Certification https://aws.amazon.com/certification Getting Started https://aws.amazon.com/windows/getting-started Pricing & Calculators EC2 https://aws.amazon.com/ec2/pricing AWS https://aws.amazon.com/pricing
  • 55.