89
최최최 / WWPS Solutions Architect 2016. 10. 26 Microsoft on AWS 특특 AWS 특특특 MS SQL Server 특특특 특특 특특 특특특특

10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

Embed Size (px)

Citation preview

Page 1: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

최정욱 / WWPS Solutions Architect

2016. 10. 26

Microsoft on AWS 특집AWS 상에서 MS SQL Server 운영의 모범 사례 살펴보기

Page 2: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

Microsoft SQL Server on AWS 목차

Page 3: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

SQL Server 워크로드를 AWS 상에서 운영하기

어떻게 AWS 상에서 SQL Server 를 배포할지 ?

어떻게 효율적이고 안전하게 운영할지 ?

어떻게 적절한 SQL Server 용량 산정을 할지 ?

어떻게 SQL Server 고가용성을 제공할지 ?

Page 4: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

AWS 의 글로벌 인프라

13 Regions35 Availability Zones

Page 5: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

SQL Server 배포를 위한 필수 AWS 서비스

Amazon Virtual Private Cloud (VPC)

Amazon Elastic Compute Cloud (EC2)

Amazon Relational Database Service (RDS)

AWS Identity and Access Management (IAM)

AWS Key Management Service (KMS)

Amazon Elastic Block Storage (EBS)

Page 6: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

AWS 에서 적절한 SQL Server 솔루션 선택

Page 7: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

백업 및 복구

성능 튜닝5%

25%

20%

40%

5% 5%

스크립팅 및 코딩보안 기획

설치 , 업그레이드 , 패치 및 이관

문서 작성 , 라이센싱 및 교육

일상적인 데이터 베이스 운영 업무

Page 8: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

AWS 에서 SQL Server 를 운영하기 위한 솔루션

Amazon RDS for SQL Server

Power, HVAC, netRack and stack

Server maintenance

OS patches

DB software patchesDatabase backups

High availability

DB software installs

OS installation

ScalingApp optimization

Power, HVAC, netRack and stack

Server maintenance

OS patches

DB software patchesDatabase backups

High availability

DB software installs

OS installation

ScalingApp optimization

SQL Server on Amazon EC2

Multiple optionsCustomer managed AWS managed

Page 9: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

RDS 와 EC2 상의 SQL Server 비교

EC2 RDS라이선스 제공 고객사 라이선스 사용 -BYOL(Bring Your Own License)

인스턴스에 대한 완전한 제어 자동 백업 고객 관리형 AlwaysOn Availability Groups AWS 관리형 Multi-AZ 배포

Page 10: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

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

Page 11: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

운영 환경에 맞는 적절한 솔루션 선택

• AWS 상에서는 RDS 를 우선 고려• 아래 사항에 중점 :

• 비즈니스 가치 창조 업무• 높은 수준의 튜닝 업무• 스키마 최적화

• 데이터베이스 운영 경험 불필요

Amazon RDS for SQL Server SQL Server on Amazon EC2• 아래 사항에 완전한 통제 제공 :

DB instance• 데이터베이스 인스턴스• 백업• 복제• 클러스터링

• RDS 에서 제공되지 않는 옵션 사용

Page 12: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

RDS 가 제공하는 관리 기능

• 자동 백업 및 복구

최대 35 일

즉시 복구 기능 제공 , 일반적으로 5 분 이내

• Push-button DB 인스턴스 사양 변경

• 장애 호스트 자동 호스트 교체

Page 13: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

RDS 가 제공하는 관리 기능

• 자동 마이너 업그레이드

• 최적화된 설정값 및 옵션 제공

• 유지 보수 시간 설정 지원

- 백업 시간 : 최소 일 30 분

- 유지 보수 시간 : 최소 주 30 분

Page 14: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

RDS SQL Server 도구 지원

• 일반적인 도구 사용 : SQL Server Management Studio 등• 데이터 이관 도구 :

Amazon RDS Migration ToolMicrosoft SQL Server Database Publishing Wizard

• RDS 인스턴스 당 최대 30 개의 데이터베이스 지원• SSAS, SSIS 및 SSRS 를 위한 데이터소스로 사용 ( 설치불가 )• 미지원 도구 :

Maintenance Plans Database Mail Linked Servers MSDTC

Page 15: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

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 사용 권장

Page 16: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

AWS 상에서 SQL Server 설치 및 운영

Page 17: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

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 자원에 대한 생성 및 운영 지원

Page 18: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

AWS 관리 콘솔

Page 19: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

AWS 관리 콘솔

Page 20: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

AWS 관리 콘솔

Page 21: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

AWS 관리 콘솔

Page 22: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

AWS Command Line Interface (CLI)

aws rds create-db-instance \--db-instance-identifier MSSQLInstance \--allocated-storage 200 \--db-instance-class db.m2.4xlarge \--engine sqlserver-se \--license-model license-included \--master-username awsuser \--master-user-password mypassword

Page 23: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

AWS SDK for Java

public boolean setRDSMultiAZDeployment(String p_DBInstanceIdentifier,String newOptionGroup) throws Exception {

...request = new ModifyDBInstanceRequest()

.withApplyImmediately(true)

.withDBInstanceIdentifier(p_DBInstanceIdentifier)

.withOptionGroupName(newOptionGroup);result = rdsClient.modifyDBInstance(request);... }

Page 24: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

AWS Cloudformation

{ "AWSTemplateFormatVersion" : "2010-09-09", "Resources" : { "DBInstance" : { "Type": "AWS::RDS::DBInstance", "Properties": { "DBInstanceIdentifier" : "MSSQLInstance", "Engine" : "sqlserver-se", "LicenseModel" : "license-included", "DBInstanceClass" : "db.m2.4xlarge", "AllocatedStorage" : "200", "MasterUsername" : "awsuser", "MasterUserPassword" : "mypassword" } } }}

Page 25: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

AWS 상에서 SQL Server 배포 및 운영을 위한 보안 고려사항

네트워크 계층 제어데이터베이스

인스턴스 접근 제어 데이터 접근 제어 암호화

AWS 에서 제공하는 보안 계층 우선 고려

Page 26: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

AWS 상의 SQL Server 보안 : 네트워크 계층

Amazon VPC: 서브넷 , 가용영역(AZ) (DB 서브넷 그룹 ), 라우팅 테이블 및 NACL 제어

보안 그룹 (Security groups): 인스턴스 트래픽 제한

외부 인터넷 접근 : 제한 또는 차단

1

2

3

VPC

Page 27: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

AWS 상의 SQL Server 보안 : 인스턴스 접근

제어 : AWS Identity and Access Management (IAM) 을 통한 권한 제어- MFA 사용- 강화된 패스워드 사용- Active Directory 연동- 권한 사용 주기 제어- 최소한의 그룹 , 사용자들 대상으로

접근 권한 부여

감사 : AWS CloudTrail 을 통한 접근 감사- AWS API call 를 통한 작업 로깅

1

2

Page 28: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

AWS 상의 SQL Server 보안 : 데이터 접근

최소한의 권한을 응용프로그램 및 최종 사용자에게 제공

Amazon RDS: Windows 및 SQL Server 인증

Amazon EC2: Windows 및 SQL Server 인증

1

2

3

Page 29: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

AWS 상의 SQL Server 보안 : 암호화

저장된 데이터 보호AWS KMS, TDE, 컬럼 레벨 , 저장 전 암호화 등을 통한 DB 암호화

데이터 이동시 암호화SSL 을 통한 암호화된 보안 통신

1

2

Page 30: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

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/900127017/27018

Page 31: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

AWS 상에서 SQL Server 성능 및 최적화

Page 32: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

SQL Server 업무 패턴에 적합한 용량 산정

데이터베이스 작업 부하 패턴 ?• 안정적이고 일정한 패턴

• 변동이 있으나 예측 가능하고 일정한 패턴

• 지속적으로 증가하나 예측가능한 패턴

• 변동이 있으며 예측 불가능한 스파이크 패턴

데이터베이스 쿼리 패턴 ?• OLTP 성 쿼리

• OLAP 성 쿼리

Page 33: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

성능에 영향을 주는 작업 패턴

연산 성능vCPUs

메모리 자원GB of RAM

네트워크 성능MB/s

(Throughput)

스토리지 성능I/O Throughput

EC2 Instance Type/RDS DB Instance Class

Amazon ElasticBlock Store (EBS)/RDS Storage Type

Page 34: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

스케일 업 또는 다운

• 업무 요구 사항에 따라 용량 변경

• 비용 통제

Page 35: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

인스턴스 타입 변경Console

Page 36: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

인스턴스 타입 변경 – 단일 가용 영역 (Single AZ)단일 가용 영역의 경우 데이터베이스 서비스의 중단 발생

dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006

Page 37: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

인스턴스 타입 변경 – 단일 가용 영역 (Single AZ)단일 가용 영역의 경우 데이터베이스 서비스의 중단 발생

dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006

Page 38: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

인스턴스 타입 변경 – 단일 가용 영역 (Single AZ)단일 가용 영역의 경우 데이터베이스 서비스의 중단 발생

dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006

Page 39: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

인스턴스 타입 변경 – 단일 가용 영역 (Single AZ)단일 가용 영역의 경우 데이터베이스 서비스의 중단 발생

dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006

Page 40: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

인스턴스 타입 변경 – 다중 가용 영역 (Multi-AZ)다중 가용 영역의 경우 대기 인스턴스가 먼저 업그레이드 됨

dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006

Page 41: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

인스턴스 타입 변경 – 다중 가용 영역 (Multi-AZ)다중 가용 영역의 경우 대기 인스턴스가 먼저 업그레이드 됨

dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006

Page 42: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

인스턴스 타입 변경 – 다중 가용 영역 (Multi-AZ)다중 가용 영역의 경우 대기 인스턴스가 먼저 업그레이드 됨

dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006

Page 43: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

인스턴스 타입 변경 – 다중 가용 영역 (Multi-AZ)다중 가용 영역의 경우 대기 인스턴스가 먼저 업그레이드 됨

dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006

Page 44: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

인스턴스 타입 변경 – 다중 가용 영역 (Multi-AZ)다중 가용 영역의 경우 대기 인스턴스가 먼저 업그레이드 됨

dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006

Page 45: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

인스턴스 타입 변경 - 자동화

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 Friday0 20 * * 5 /home/ec2-user/scripts/scale_down_rds.sh

#Scale up at 4:00 AM on Monday0 4 * * 1 /home/ec2-user/scripts/scale_up_rds.sh

Page 46: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

인스턴스 타입 변경 - 자동화

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

Page 47: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

인스턴스 타입 변경 - 자동화

성능 카운터 기반의 인스턴스 타입 변경• Amazon CloudWatch 및 AWS Lambda 이용

Page 48: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

인스턴스 타입 변경 - 자동화

import boto3import 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

Page 49: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

연산자원 – 스케일링 및 성능

RDS DB 인스턴스 용량최소 1 vCPU 와 1 GB 램

최대 32 vCPUs 와 256GB 램

인스턴스 패밀리일반 목적

메모리 최적화버스팅 목적 등

인스턴스 클래스 변경을 통해

스케일링 업 및 다운

R3

Page 50: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

스토리지 시스템 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 * 인스턴스 타입마다 상이

직접 연결 방식 지원 하지 않음 인스턴스에 포함

Page 51: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

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

Page 52: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

추가적인 I/O 성능 고려사항

• Small General Purpose SSD30Gb 이하의 작은 볼륨의 경우 낮은 I/O 처리량을 제공

• Instance storage ( 직접 연결 )높은 성능을 요구하는 데이터베이스에 적합하드웨어 장애 발생시 복구 불가능한 관계로 , 강력한 백업 정책이 필요함

• Amazon EC2여러 EBS 볼륨으로 스트라이핑을 고려

• Amazon RDS한번 배포되면 스토리지 확장이 불가능 .

Page 53: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

AWS 상에서 SQL Server 모니터링

Page 54: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

SQL Server 성능 모니터링

• 비정상 상태에 대한 알람 (Alarm) 및 알림 (Notification)

• Amazon EC2 & Amazon RDS 에 대한 기본 측정값 제공

• Amazon EC2 의 경우 사용자 설정 측정값 추가 가능

Amazon CloudWatch 를 통한 성능 모니터링

Page 55: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

RDS 표준 성능 모니터링

CPU 사용량 스토리지 메모리 Swap 사용량 DB connections I/O (읽기 및 쓰기 ) Latency (읽기 및 쓰기 ) Throughput (읽기 및 쓰기 ) Replica lag 등등

Page 56: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

RDS 확장 성능 모니터링

개요 :• OS 레벨의 모니터링 지표 – 26 가지 시스템 지표 및 프로세스 별 지표• 지표들은 CloudWatch Logs 로 전달• 최소 1초 단위 모니터링 제공• t1.micro 및 m1.small 인스턴스는 지원하지 않음

CloudWatch 지표와 비교 :• Agent 기반의 지표• 지표 수집 기반의 차이 (Hypervisor vs Agent) 로 인해 모니터링 결과값의

차이가 있을 수 있음 (ex. CPU)

Page 57: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

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)

Page 58: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

RDS 확장 성능 모니터링 지표

Page 59: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

이벤트 알림

• Amazon Simple Notification Service

(Amazon SNS) 를 사용하여 이벤트

발생시 고객에게 해당 이벤트를 제공 .

• 17 가지 이벤트 카테고리 제공

( 가용성 , 백업 , 구성 변경 등 )

Page 60: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

AWS 상에서 SQL Server 배포 패턴

Page 61: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

배포 패턴

단일 데이터베이스 인스턴스

Active Directory 와 데이터베이스 인스턴스 배포

운영중인 Active Directory

인프라에 배포

기존 전산실과 AWS 와의

하이브리드 배포

Page 62: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

단일 데이터베이스 인스턴스

RDS SQL Server DB 인스턴스Deployed in a DB 서브넷 그룹에 배포단일 가용영역 또는 다중 가용영역 선택• SQL Server 인증 사용

장점- 간단한 구성 . 일반 업무 , ETL, 데이터 변환 및 이관 작업에 적합

단점- Connection string/application 자격 증명 관리 부담

Page 63: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

Active Directory 와 통합 배포

• Cloud-based Active Directory deployment using AWS

Directory Services 또는 Microsoft Active Directory

를 사용하여 AWS 상에 Active Directory 배포

• 관리형 디렉토리 지원

• 자격 증명은 디렉토리에 저장 및 관리

• RDS DB 인스턴스는 도메인에 참여

• Windows 인증을 사용하여 SQL Server 로그인

사용자 및 그룹 관리 지원

Page 64: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

Active Directory 와 통합 배포

장점

• 대부분의 ISV 소프트웨어 및 기존 사용중인

소프트웨어와 호환성 제공

• 응용프로그램들이 많을 경우 편리한 자격증명

제공

단점

• 기 사용중인 도메인으로 확장 불가

Page 65: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

Microsoft AD 디렉토리 + 외부 AD

• Forest Trust 를 사용해 외부 AD 와 통합

• 외부 AD 에는 inbound trust, 신규 AD 에는

outbound trust 설정

• 양 도메인간 conditional forwarders 설정

장점

• 기존 AD 사용 및 RDS SQL Server 를 위한 전용

AD 배포

운영중인 Active Directory 에 배포

Page 66: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

Microsoft AD directory + on-prem AD

• 내부망을 AWS 로 확장

• AWS VPC (VPN, DirectConnect) 와 직접 연결

• VPC 내 secondary AD 설치 권장

• 기존 AD 와 Microsoft AD directory 와 Forest Trust

구성

기존 전산실 과 AWS 간의 하이브리드 구성

Page 67: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

AWS 상에서 SQL Server 고가용성 구현

Page 68: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

EC2 상의 SQL Server 고가용성

SQL Server 에서 제공하는 기능 사용

• Log Shipping: 재해 복구용이나 가용성 증대를 위해 사용

• Database Mirroring: 대기 서버에 미러링 기능 제공

• AlwaysOn Availability Groups: 데이터베이스 그룹에 대한

장애 복구 기능 제공

• Failover Cluster Instance : 추가 3rd 소프트웨어 필요

Page 69: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

Availability Zone 1

Private Subnet

EC2Primary Replica

Availability Zone 2

Private Subnet

EC2Secondary

Replica

Synchronous CommitAutomatic Failover

AWS Region

다중 가용 영역 AlwaysOn Availability Group

Page 70: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

Availability Zone 1

Private Subnet

EC2Primary Replica

Primary: 10.0.2.100WSFC: 10.0.2.101AG Listener: 10.0.2.102

AWS Region A

Availability Zone 2

Private Subnet

EC2Secondary

Replica

Primary: 10.0.3.100WSFC: 10.0.3.101AG Listener: 10.0.3.102

Availability Zone 1

Private Subnet

EC2Secondary

Replica

Primary: 10.1.2.100WSFC: 10.1.2.101AG Listener: 10.1.2.102

Synchronous CommitAutomatic Failover

AWS Region B

Asynchronous CommitManual Failover

Elastic IP Elastic IP

VPN

다중 지역 AlwaysOn Availability Group

Page 71: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

Amazon EBS Amazon EBS

Availability Zone 1

Private Subnet

EC2Primary Replica

Availability Zone 2

Private Subnet

EC2Secondary

Replica

AWS Region

Data Replication

Fail-Over Cluster 인스턴스

Third-party 소프트웨어 필요 SIOS DataKeeper SoftNAS Cloud for AWS

Page 72: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

다중 가용 영역 SQL Server 미러링

Availability Zone 1

Private Subnet

Primary Replica

Availability Zone 2

Private Subnet

SecondaryReplica

Synchronous-commit Synchronous-commit

Automatic Failover

WitnessServer

Page 73: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

다중 가용 영역 SQL Server 미러링

Availability Zone 1

Primary Replica

Availability Zone 2

SecondaryReplica

Automatic Failover

WitnessServer

Availability Zone 3

Page 74: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

SQL Server 이중화 및 읽기 전용 복사본

Availability Zone 1

Private Subnet

Primary Replica

Availability Zone 2

Private Subnet

SecondaryReplica 1

Synchronous-commit Synchronous-commit

AG Listener:ag.awslabs.net

Automatic Failover

Asynchronous-commit

SecondaryReplica 2

(Readable)

Reporting Application

Page 75: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

SQL Server 재해복구 및 백업

Availability Zone 1

Private Subnet

Primary Replica

Availability Zone 2

SecondaryReplica 1

Private Subnet

AG Listener:ag.awslabs.net

Corporate Network

VPNAutomatic Failover

SecondaryReplica 2

(Readable)

Reporting Application

Backups

Manual Failover

Page 76: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

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

Page 77: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

Availability Zone 1

Private Subnet

Availability Zone 2

Private Subnet

Synchronous CommitAutomatic Failover

AWS Region

AmazonRDS

Primary

AmazonRDS

Secondary

다중 가용 영역 RDS for SQL Server 고가용성

Page 78: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

Availability Zone 1

Private Subnet

Availability Zone 2

Private Subnet

Synchronous CommitAutomatic Failover

AWS Region

AmazonRDS

Primary

AmazonRDS

SecondaryManaged Service

다중 가용 영역 RDS for SQL Server 고가용성

Page 79: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

AWS 내 관리 서버 등록 및 접속 확인

Page 80: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

AWS 내 관리 서버 등록 및 접속 확인

Page 81: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

SQL Server AlwaysOn 동작 확인

Page 82: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

SQL Server AlwaysOn 동작 확인

Page 83: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

SQL Server AlwaysOn 동작 확인

Page 84: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

SQL Server AlwaysOn 동작 확인

Page 85: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

SQL Server AlwaysOn 동작 확인

Page 86: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

SQL Server AlwaysOn 동작 확인

Page 87: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

SQL Server AlwaysOn 동작 확인

Page 88: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

QnA

Page 89: 10월 웨비나 - AWS 상에서 Microsoft SQL Server 운영의 모범 사례 살펴보기 (최정욱 솔루션즈 아키텍트)

감사합니다 .