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

SQL Azure 실무 도입하기

Embed Size (px)

Citation preview

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 참조