7. 백업 및 복구
성능 튜닝
25%40%
5% 5%
스크립팅 및 코딩
보안 기획
설치, 업그레이드,
패치 및 이관
문서 작성,
라이센싱 및 교육
일상적인 데이터 베이스 운영 업무
8. 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
9. RDS와 EC2상의 SQL Server 비교
EC2 RDS
라이선스 제공
고객사 라이선스 사용-BYOL(Bring Your Own License)
인스턴스에 대한 완전한 제어
자동 백업
고객 관리형 AlwaysOn Availability Groups
AWS 관리형 Multi-AZ 배포
10. RDS와 EC2상의 SQL Server 세부 비교
* 자가설치; ** Enterprise Edition 2014는 RDS에서 지원하지 않음
지원 버전: 2008 R2, 2012, 2014 2005*, 2008*, 2008 R2, 2012, 2014
지원 에디션: Express, Web, Standard, Enterprise**
고가용성: Self-managed; AlwaysOn, Mirror, Log ShipMulti-AZ Deployment
Encrypted Storage using AWS KMS (all editions); TDE Support암호화:
인증 방식: Windows & SQL Server Authentication
Maintenance plans & 3rd party toolsManaged automated backups백업:
Self-managedAutomatic software patching관리:
Amazon RDS for SQL
Server
SQL Server on Amazon EC2
11. 운영 환경에 맞는 적절한 솔루션 선택
• AWS상에서는 RDS를 우선 고려
• 아래 사항에 중점:
• 비즈니스 가치 창조 업무
• 높은 수준의 튜닝 업무
• 스키마 최적화
• 데이터베이스 운영 경험 불필요
Amazon RDS for SQL Server SQL Server on Amazon EC2
• 아래 사항에 완전한 통제 제공:
DB instance
• 데이터베이스 인스턴스
• 백업
• 복제
• 클러스터링
• RDS에서 제공되지 않는 옵션 사용
12. RDS가 제공하는 관리 기능
• 자동 백업 및 복구
최대 35일
즉시 복구 기능 제공, 일반적으로 5분 이내
• Push-button DB 인스턴스 사양 변경
• 장애 호스트 자동 호스트 교체
13. RDS가 제공하는 관리 기능
• 자동 마이너 업그레이드
• 최적화된 설정값 및 옵션 제공
• 유지 보수 시간 설정 지원
- 백업 시간 : 최소 일 30분
- 유지 보수 시간 : 최소 주 30분
14. 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
MSDTC
15. 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 사용 권장
17. AWS 상의 SQL Server 설치
Amazon
EC2 and RDS
Management
Console
AWS Command Line
Interface (CLI)
또는
AWS Tools for
PowerShell
AWS SDKs AWS CloudFormation
templates
AWS 상의 여러 방법으로 SQL Server 자원에 대한 생성 및 운영 지원
25. AWS 상에서 SQL Server 배포 및 운영을 위한 보안 고려사항
네트워크 계층 제어
데이터베이스
인스턴스 접근 제어
데이터 접근 제어 암호화
AWS에서 제공하는 보안 계층 우선 고려
26. AWS 상의 SQL Server 보안 : 네트워크 계층
Amazon VPC: 서브넷, 가용영역(AZ)
(DB 서브넷 그룹), 라우팅 테이블 및
NACL 제어
보안 그룹(Security groups): 인스턴스
트래픽 제한
외부 인터넷 접근 : 제한 또는 차단
1
2
3
VPC
27. AWS 상의 SQL Server 보안 : 인스턴스 접근
제어: AWS Identity and Access
Management (IAM)을 통한 권한 제어
- MFA사용
- 강화된 패스워드 사용
- Active Directory 연동
- 권한 사용 주기 제어
- 최소한의 그룹, 사용자들 대상으로
접근 권한 부여
감사: AWS CloudTrail을 통한 접근 감사
- AWS API call를 통한 작업 로깅
1
2
28. AWS 상의 SQL Server 보안 : 데이터 접근
최소한의 권한을 응용프로그램 및 최종
사용자에게 제공
Amazon RDS: Windows 및 SQL Server 인증
Amazon EC2: Windows 및 SQL Server 인증
1
2
3
29. AWS 상의 SQL Server 보안 : 암호화
저장된 데이터 보호
AWS KMS, TDE, 컬럼 레벨, 저장 전 암호화 등을
통한 DB 암호화
데이터 이동시 암호화
SSL을 통한 암호화된 보안 통신
1
2
30. SQL Server RDS Compliance
• SOC 1, 2, and 3
• ISO 27001/9001
• ISO 27017/27018
• PCI DSS
• UK government programs
• Singapore MTCS
Singapore MTCS
27001/9001
27017/27018
32. SQL Server 업무 패턴에 적합한 용량 산정
데이터베이스 작업 부하 패턴?
• 안정적이고 일정한 패턴
• 변동이 있으나 예측 가능하고 일정한 패턴
• 지속적으로 증가하나 예측가능한 패턴
• 변동이 있으며 예측 불가능한 스파이크 패턴
데이터베이스 쿼리 패턴?
• OLTP성 쿼리
• OLAP성 쿼리
33. 성능에 영향을 주는 작업 패턴
연산 성능
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
36. 인스턴스 타입 변경 – 단일 가용 영역(Single AZ)
단일 가용 영역의 경우 데이터베이스 서비스의 중단 발생
dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006
37. 인스턴스 타입 변경 – 단일 가용 영역(Single AZ)
단일 가용 영역의 경우 데이터베이스 서비스의 중단 발생
dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006
38. 인스턴스 타입 변경 – 단일 가용 영역(Single AZ)
단일 가용 영역의 경우 데이터베이스 서비스의 중단 발생
dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006
39. 인스턴스 타입 변경 – 단일 가용 영역(Single AZ)
단일 가용 영역의 경우 데이터베이스 서비스의 중단 발생
dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006
40. 인스턴스 타입 변경 – 다중 가용 영역(Multi-AZ)
다중 가용 영역의 경우 대기 인스턴스가 먼저 업그레이드 됨
dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006
41. 인스턴스 타입 변경 – 다중 가용 영역(Multi-AZ)
다중 가용 영역의 경우 대기 인스턴스가 먼저 업그레이드 됨
dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006
42. 인스턴스 타입 변경 – 다중 가용 영역(Multi-AZ)
다중 가용 영역의 경우 대기 인스턴스가 먼저 업그레이드 됨
dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006
43. 인스턴스 타입 변경 – 다중 가용 영역(Multi-AZ)
다중 가용 영역의 경우 대기 인스턴스가 먼저 업그레이드 됨
dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006
44. 인스턴스 타입 변경 – 다중 가용 영역(Multi-AZ)
다중 가용 영역의 경우 대기 인스턴스가 먼저 업그레이드 됨
dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006
45. 인스턴스 타입 변경 - 자동화
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
46. 인스턴스 타입 변경 - 자동화
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
47. 인스턴스 타입 변경 - 자동화
성능 카운터 기반의 인스턴스 타입 변경
• Amazon CloudWatch 및 AWS Lambda 이용
49. 연산자원 – 스케일링 및 성능
RDS DB 인스턴스 용량
최소 1 vCPU 와 1 GB 램
최대 32 vCPUs와 256GB 램
인스턴스 패밀리
일반 목적
메모리 최적화
버스팅 목적 등
인스턴스 클래스
변경을 통해
스케일링 업 및
다운
R3
50. 스토리지 시스템 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
*인스턴스
타입마다 상이
직접 연결 방식 지원 하지 않음 인스턴스에
포함
51. 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
52. 추가적인 I/O 성능 고려사항
• Small General Purpose SSD
30Gb 이하의 작은 볼륨의 경우 낮은 I/O 처리량을 제공
• Instance storage (직접 연결)
높은 성능을 요구하는 데이터베이스에 적합
하드웨어 장애 발생시 복구 불가능한 관계로, 강력한 백업 정책이 필요함
• Amazon EC2
여러 EBS 볼륨으로 스트라이핑을 고려
• Amazon RDS
한번 배포되면 스토리지 확장이 불가능.
54. SQL Server 성능 모니터링
• 비정상 상태에 대한 알람(Alarm) 및
알림(Notification)
• Amazon EC2 & Amazon RDS 에 대한
기본 측정값 제공
• Amazon EC2의 경우 사용자 설정
측정값 추가 가능
Amazon CloudWatch 를 통한 성능 모니터링
55. RDS 표준 성능 모니터링
CPU 사용량
스토리지
메모리
Swap 사용량
DB connections
I/O (읽기 및 쓰기)
Latency (읽기 및 쓰기)
Throughput (읽기 및 쓰기)
Replica lag
등등
56. RDS 확장 성능 모니터링
개요 :
• OS 레벨의 모니터링 지표 – 26가지 시스템 지표 및 프로세스 별 지표
• 지표들은 CloudWatch Logs로 전달
• 최소 1초 단위 모니터링 제공
• t1.micro 및 m1.small 인스턴스는 지원하지 않음
CloudWatch 지표와 비교 :
• Agent 기반의 지표
• 지표 수집 기반의 차이(Hypervisor vs Agent)로 인해 모니터링 결과값의 차이가
있을 수 있음 (ex. CPU)
57. 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)
62. 단일 데이터베이스 인스턴스
RDS SQL Server DB 인스턴스
Deployed in a DB 서브넷 그룹에 배포
단일 가용영역 또는 다중 가용영역 선택
• SQL Server 인증 사용
장점
- 간단한 구성. 일반 업무, ETL, 데이터 변환 및
이관 작업에 적합
단점
- Connection string/application 자격 증명 관리
부담
63. Active Directory와 통합 배포
• Cloud-based Active Directory deployment using AWS
Directory Services 또는 Microsoft Active Directory를
사용하여AWS상에 Active Directory 배포
• 관리형 디렉토리 지원
• 자격 증명은 디렉토리에 저장 및 관리
• RDS DB 인스턴스는 도메인에 참여
• Windows 인증을 사용하여 SQL Server 로그인
사용자 및 그룹 관리 지원
64. Active Directory와 통합 배포
장점
• 대부분의 ISV 소프트웨어 및 기존 사용중인
소프트웨어와 호환성 제공
• 응용프로그램들이 많을 경우 편리한 자격증명
제공
단점
• 기 사용중인 도메인으로 확장 불가
65. Microsoft AD 디렉토리 + 외부 AD
• Forest Trust를 사용해 외부 AD와 통합
• 외부 AD에는 inbound trust, 신규 AD에는 outbound
trust 설정
• 양 도메인간 conditional forwarders 설정
장점
• 기존 AD 사용 및 RDS SQL Server를 위한 전용 AD
배포
운영중인 Active Directory에 배포
66. Microsoft AD directory + on-prem AD
• 내부망을 AWS로 확장
• AWS VPC (VPN, DirectConnect)와 직접 연결
• VPC내 secondary AD 설치 권장
• 기존 AD와 Microsoft AD directory 와 Forest Trust
구성
기존 전산실 과 AWS 간의 하이브리드 구성
68. EC2 상의 SQL Server 고가용성
SQL Server에서 제공하는 기능 사용
• Log Shipping: 재해 복구용이나 가용성 증대를 위해
사용
• Database Mirroring: 대기 서버에 미러링 기능 제공
• AlwaysOn Availability Groups: 데이터베이스 그룹에
대한 장애 복구 기능 제공
• Failover Cluster Instance : 추가 3rd 소프트웨어 필요
69. Availability Zone 1
Private Subnet
EC2
Primary
Replica
Availability Zone 2
Private Subnet
EC2
Secondary
Replica
Synchronous Commit
Automatic Failover
AWS Region
70. 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
71. Amazon EBS Amazon EBS
Availability Zone 1
Private Subnet
EC2
Primary
Replica
Availability Zone 2
Private Subnet
EC2
Secondary
Replica
AWS Region
Data Replication
Third-party 소프트웨어 필요
SIOS DataKeeper
SoftNAS Cloud for AWS
72. 다중 가용 영역 SQL Server 미러링
Availability Zone 1
Private Subnet
Primary
Replica
Availability Zone 2
Private Subnet
Secondary
Replica
Synchronous-commit Synchronous-commit
Automatic Failover
Witness
Server
73. 다중 가용 영역 SQL Server 미러링
Availability Zone 1
Primary
Replica
Availability Zone 2
Secondary
Replica
Automatic Failover
Witness
Server
Availability Zone 3
74. SQL Server 이중화 및 읽기 전용 복사본
Availability Zone 1
Private Subnet
Primary
Replica
Availability Zone 2
Private Subnet
Secondary
Replica 1
Synchronous-commit Synchronous-commit
AG Listener:
ag.awslabs.net
Automatic Failover
Asynchronous-commit
Secondary
Replica 2
(Readable)
Reporting
Application
75. SQL Server 재해복구 및 백업
Availability Zone 1
Private Subnet
Primary
Replica
Availability Zone 2
Secondary
Replica 1
Private Subnet
AG Listener:
ag.awslabs.net
Corporate Network
VPN
Automatic Failover
Secondary
Replica 2
(Readable)
Reporting
Application
Backups
Manual Failover
76. 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
77. Availability Zone 1
Private Subnet
Availability Zone 2
Private Subnet
Synchronous Commit
Automatic Failover
AWS Region
Amazon
RDS
Primary
Amazon
RDS
Secondary
78. Availability Zone 1
Private Subnet
Availability Zone 2
Private Subnet
Synchronous Commit
Automatic Failover
AWS Region
Amazon
RDS
Primary
Amazon
RDS
Secondary
Managed Service