sql azure 실무 도입하기

53
SQL Azure 실무 도입하기 Windows Azure Cafe SYSOP Windows Azure MVP 남정현

Upload: jung-hyun-nam

Post on 25-May-2015

3.181 views

Category:

Technology


3 download

TRANSCRIPT

SQL Azure 실무 도입하기

Windows Azure Cafe SYSOP

Windows Azure MVP

남정현

Agenda

• SQL Azure가 SQL Server와 다른 점

• Break Time

• SQL Azure 좌절방지위원회

• Question and Answer

• Lucky draw

SQL AZURE와 SQL SERVER가 다른 점

Session 1

SQL Azure란?

• SQL Server 2008 R2를 기반으로 구축됨

• Microsoft가 제공하는 Cloud 기반 RDBMS

• 인터넷 기반 데이터베이스 시스템

• 한달 99.9% SLA 보장

• http://go.microsoft.com/fwlink/p/?LinkId=159706

SQL Azure 신청하기

• Windows Azure Platform을 신청하여 사용

• http://www.windowsazure.com/

90일 Free Trial 서비스 혜택

• Extra Small Computer Instance 무제한

• 1달 750시간 Small Computer Instance 무료

• SQL Azure Database 1GB 무료 제공

• Outbound 20GB, Inbound 무제한

• 신용 카드 정보 제공 필요

SQL AZURE 신청 과정 (FREE TRIAL ACCOUNT)

Demonstration

첫 번째 차이점: 가격

• SQL Server

– Client Access License

– Processor License

• SQL Azure

– Database Size

– Network Traffic

첫 번째 차이점: 가격

Size/Meter Web Edition

Monthly Charges Business Edition Monthly Charges

Up to 1 GB relational database USD 9.99 (KRW 10,989) -

Up to 5 GB relational database USD 49.95 (KRW 54,595) -

Up to 10 GB relational database - USD 99.99 (KRW 109,989)

Up to 20 GB relational database - USD 199.98 (KRW 219,978)

Up to 30 GB relational database - USD 299.97 (KRW 329,967)

Up to 40 GB relational database - USD 399.96 (KRW 439,956)

Up to 50 GB relational database - USD 499.95 (KRW 549,945)

Exchange Rate: USD 1 ≒ KRW 1,100

두 번째 차이점: 관리

• SQL Server

– HW부터 SW까지

– 모든 것을 재구성 가능

– 모든 작업은 관리자와 개발자의 책임

• SQL Azure

– 제공되는 기능만 사용

– 데이터 관리, 정의만 재구성

– SW와 서비스에 집중

두 번째 차이점: 관리

• 사용할 수 없는 기능들

– 데이터 백업 및 복원

– 데이터베이스의 물리적 위치

– 전체 텍스트 색인

– 주요 DBCC 명령어

– 저장 프로시저 확장 DLL

– 하드웨어 관련 설정

두 번째 차이점: 관리

• IP 주소 기반 방화벽을 제공

– 기본적으로는 모든 연결을 차단

– 특정 IP 주소 및 대역만을 선택적으로 허용

– MS Datacenter 내부 연결 허용 여부 선택

• 외부 코드를 허용하지 않는 이유

– SQL Azure의 Runtime은 Full-Trust 환경이 아님

– 데이터 취급 상의 위험 인자를 사전에 방지

SQL AZURE ADMINISTRATION PORTAL

Demonstration

세 번째 차이점: 개발

• SQL Azure 연결을 위해서 쓸 수 있는 기술

– .NET Framework 3.5 SP1 이상의 System.Data.SqlClient Provider

– SQL Server 2008 이상의 버전과 같이 제공되는 SQL Server Native Client Driver

– PHP용 SQL Server Driver 1.1

– SQL Server 2008 이후부터 함께 제공되는 Microsoft의 JDBC Driver

세 번째 차이점: 개발

• 사용이 불가능하거나 제약이 심한 기술

– TDS Driver

– .NET Framework 2.0 이하 기본 System.Data.SqlClient Driver

– OLE DB Driver (기능 제약이 심한 편)

– Data Access Object

– 일부 구형 Third Party SQL Server Driver들

.NET & SQL AZURE

Demonstration

C++ & SQL AZURE

Demonstration

JAVA & SQL AZURE

Demonstration

SQL Azure의 구조

Client SQL Azure(Proxy)

ActiveDatabase #1

ActiveDatabase #2

ActiveDatabase #3

SQL Azure 구조

• 모든 데이터베이스 요청은 Proxy Gateway를 통해 오고 가는 구조

• Proxy Gateway가 이해하고 수용하는 명령어만을 취급

• 하단의 데이터베이스가 장애가 발생하면 SLA 준수를 위해 즉시 다른 Spare DB로 교체

실제 사용 시나리오

• SQL Server

– 기업 내 중요 정보 및 자산을 보관

– 국가 내에서만 다루는 정보를 보관

– 인터넷에 직접 노출하는 일이 없음

• SQL Azure

– 업데이트가 잦은 통계 정보

– 처리 비용이 많이 드는 RDBMS 연산

– 높은 컴퓨팅 성능이 필요한 작업

MICROSOFT GFS DATACENTER TOUR VIDEO

http://www.youtube.com/watch?v=hOxA1l1pQIw

SQL AZURE 좌절방지위원회

Session 2

백업에 관한 고찰

• SQL Azure의 Data Traffic 중 외부로 데이터를 백업하는 것은 Outbound에 해당

• Microsoft Data Center에 대한 신뢰도의 수준에 따라 Backup을 결정하는 것이 필요

백업에 관한 고찰

• SQL Azure에 어떤 데이터를 보관하는가에 따라 Backup의 필요성을 결정 가능

• Backup 외에 단순히 Redundancy를 늘이기 위함인 경우 Database Copy도 검토 가능

백업에 관한 고찰

• 무엇을 하든, 모두 “비용”으로 연결된다는 사실!

DATABASE COPY

Demonstration

클라우드라고 해서…

클라우드라고 해서…

• 기본적으로 클라우드 솔루션은 가용성이 매우 뛰어난 편

• 그렇다고 하여 모든 것이 “무제한”이 되지 않는 다는 것에 유의

• SQL Azure에 대한 환상도 그래서 깨어져야!

클라우드라고 해서…

• SQL Server를 단독 Hosting 받는 것과는 달리 SQL Azure는 Full Dedicated 환경이 아님

• 필요 시 언제든 연결을 강제로 끊거나 차단할 수 있는 가능성이 언제나 존재

• 다른 SQL Azure 고객에게 손해를 끼칠 염려가 있는 모든 동작이 제한됨

• Shard Pattern과 Connection Retry를 고려하는 것이 늘 필요

CONNECTION THROTTLING

Demonstration

클라우드라고 해서…

• SLA를 논의할 때에는 Microsoft의 SLA만을 논의하는 것이 아님

• 여러 가지 원인에 의하여 데이터베이스 연결이 끊어질 가능성을 고려하는 것이 현명

• SQL Azure의 오류 코드 정보가 매우 중요

FAIL-OVER STRATEGIES

Demonstration

SQL Azure의 보안과 호환성

• SQL Azure가 인터넷 기반 DB이고 항상 SSL 암호화를 쓰기 때문에 호환성이 일부 결여됨

• OLE DB, DAO, TDS 등의 클라이언트 활용이 문제가 됨

• SQL Server Native Driver나 ODBC를 사용하여 문제 해결 가능

DISTINGUISH ERROR CODES

Demonstration

방화벽 설정에 대한 이해

• SQL Azure는 개발 목적 DB가 아님

• 방화벽은 “절대로” 끌 수 없음

• 포트는 TCP 포트로 무조건 1433

• IP 주소 허용 및 차단에 만전을 기해야

• IP 주소 정책 반영에는 다소 시간 소요

MANAGING FIREWALL VIA PORTAL & QUERY

Demonstration

지역 설정에 대한 이해

• SQL Azure의 기본 Collation 설정은 SQL_Latin1_General_CP1_CI_AS

• CHAR, VARCHAR, TEXT 등의 데이터 형식 사용 시에는 반드시 COLLATE 문을 지정해야 함

• 이를 피하고 안전하게 문자열 데이터를 다루려면 N 계열 데이터 사용이 필수적

• NCHAR, NVARCHAR, NTEXT 권장

DATABASE LOCALE CONFLICTION / SOLUTION

Demonstration

그 외 각종 제한 사항들

• Visual Studio 2010 이전 버전의 데이터베이스 탐색기는 모두 SQL Azure에 연결 불가

• 데이터베이스 개수는 기본 DB인 MASTER DB를 포함하여 150개가 최고 / 실제 149개 가능

• 데이터베이스 용량 크기는 1/5/10/20/30/40/50GB 중 선택 가능

• 자세한 정보는 http://msdn.microsoft.com/ko-kr/library/ee336245.aspx 참조