SQL Azure 실무 도입하기

 Windows Azure Cafe SYSOP
    Windows Azure MVP
          남정현
Agenda
•   SQL Azure가 SQL Server와 다른 점
•   Break Time
•   SQL Azure 좌절방지위원회
•   Question and Answer
•   Lucky draw
Session 1

SQL AZURE와
SQL SERVER가 다른 점
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 무제한
•   신용 카드 정보 제공 필요
Demonstration

SQL AZURE 신청 과정
(FREE TRIAL ACCOUNT)
첫 번째 차이점: 가격
• SQL Server
  – Client Access
    License
  – Processor License
• SQL Azure
  – Database Size
  – Network Traffic
첫 번째 차이점: 가격
                                       Web Edition             Business Edition
          Size/Meter
                                     Monthly Charges           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 환경이 아님
 – 데이터 취급 상의 위험 인자를 사전에 방지
Demonstration

SQL AZURE
ADMINISTRATION PORTAL
세 번째 차이점: 개발
• 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들
Demonstration

.NET & SQL AZURE
Demonstration

C++ & SQL AZURE
Demonstration

JAVA & SQL AZURE
SQL Azure의 구조


                        Active
                     Database #1




Client   SQL Azure      Active
          (Proxy)    Database #2




                        Active
                     Database #3
SQL Azure 구조
• 모든 데이터베이스 요청은 Proxy Gateway를
  통해 오고 가는 구조
• Proxy Gateway가 이해하고 수용하는 명령어만
  을 취급
• 하단의 데이터베이스가 장애가 발생하면 SLA
  준수를 위해 즉시 다른 Spare DB로 교체
실제 사용 시나리오
• SQL Server
  – 기업 내 중요 정보 및 자산을 보관
  – 국가 내에서만 다루는 정보를 보관
  – 인터넷에 직접 노출하는 일이 없음
• SQL Azure
  – 업데이트가 잦은 통계 정보
  – 처리 비용이 많이 드는 RDBMS 연산
  – 높은 컴퓨팅 성능이 필요한 작업
http://www.youtube.com/watch?v=hOxA1l1pQIw

MICROSOFT GFS
DATACENTER TOUR VIDEO
Session 2

SQL AZURE
좌절방지위원회
백업에 관한 고찰
• SQL Azure의 Data Traffic 중 외부로 데이터를
  백업하는 것은 Outbound에 해당
• Microsoft Data Center에 대한 신뢰도의 수준
  에 따라 Backup을 결정하는 것이 필요
백업에 관한 고찰
• SQL Azure에 어떤 데이터를 보관하는가에 따라
  Backup의 필요성을 결정 가능
• Backup 외에 단순히 Redundancy를 늘이기 위
  함인 경우 Database Copy도 검토 가능
백업에 관한 고찰
• 무엇을 하든, 모두
  “비용”으로 연결된다
  는 사실!
Demonstration

DATABASE COPY
클라우드라고 해서…
클라우드라고 해서…
• 기본적으로 클라우드 솔루션은 가용성이 매우
  뛰어난 편
• 그렇다고 하여 모든 것이 “무제한”이 되지 않는
  다는 것에 유의
• SQL Azure에 대한 환상도 그래서 깨어져야!
클라우드라고 해서…
• SQL Server를 단독 Hosting 받는 것과는 달리
  SQL Azure는 Full Dedicated 환경이 아님
• 필요 시 언제든 연결을 강제로 끊거나 차단할 수
  있는 가능성이 언제나 존재
• 다른 SQL Azure 고객에게 손해를 끼칠 염려가
  있는 모든 동작이 제한됨
• Shard Pattern과 Connection Retry를 고려하
  는 것이 늘 필요
Demonstration

CONNECTION
THROTTLING
클라우드라고 해서…
• SLA를 논의할 때에는 Microsoft의 SLA만을 논
  의하는 것이 아님
• 여러 가지 원인에 의하여 데이터베이스 연결이
  끊어질 가능성을 고려하는 것이 현명
• SQL Azure의 오류 코드 정보가 매우 중요
Demonstration

FAIL-OVER STRATEGIES
SQL Azure의 보안과 호환성
• SQL Azure가 인터넷 기반 DB이고 항상 SSL
  암호화를 쓰기 때문에 호환성이 일부 결여됨
• OLE DB, DAO, TDS 등의 클라이언트 활용이
  문제가 됨
• SQL Server Native Driver나 ODBC를 사용하
  여 문제 해결 가능
Demonstration

DISTINGUISH
ERROR CODES
방화벽 설정에 대한 이해
•   SQL Azure는 개발 목적 DB가 아님
•   방화벽은 “절대로” 끌 수 없음
•   포트는 TCP 포트로 무조건 1433
•   IP 주소 허용 및 차단에 만전을 기해야
•   IP 주소 정책 반영에는 다소 시간 소요
Demonstration

MANAGING FIREWALL
VIA PORTAL & QUERY
지역 설정에 대한 이해
• SQL Azure의 기본 Collation 설정은
  SQL_Latin1_General_CP1_CI_AS
• CHAR, VARCHAR, TEXT 등의 데이터 형식 사
  용 시에는 반드시 COLLATE 문을 지정해야 함
• 이를 피하고 안전하게 문자열 데이터를 다루려
  면 N 계열 데이터 사용이 필수적
• NCHAR, NVARCHAR, NTEXT 권장
Demonstration

DATABASE LOCALE
CONFLICTION / SOLUTION
그 외 각종 제한 사항들
• 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 참조

SQL Azure 실무 도입하기

  • 1.
    SQL Azure 실무도입하기 Windows Azure Cafe SYSOP Windows Azure MVP 남정현
  • 2.
    Agenda • SQL Azure가 SQL Server와 다른 점 • Break Time • SQL Azure 좌절방지위원회 • Question and Answer • Lucky draw
  • 3.
    Session 1 SQL AZURE와 SQLSERVER가 다른 점
  • 4.
    SQL Azure란? • SQL Server 2008 R2를 기반으로 구축됨 • Microsoft가 제공하는 Cloud 기반 RDBMS • 인터넷 기반 데이터베이스 시스템 • 한달 99.9% SLA 보장 • http://go.microsoft.com/fwlink/p/?LinkId= 159706
  • 5.
    SQL Azure 신청하기 •Windows Azure Platform을 신청하여 사용 • http://www.windowsazure.com/
  • 6.
    90일 Free Trial서비스 혜택 • Extra Small Computer Instance 무제한 • 1달 750시간 Small Computer Instance 무료 • SQL Azure Database 1GB 무료 제공 • Outbound 20GB, Inbound 무제한 • 신용 카드 정보 제공 필요
  • 7.
    Demonstration SQL AZURE 신청과정 (FREE TRIAL ACCOUNT)
  • 21.
    첫 번째 차이점:가격 • SQL Server – Client Access License – Processor License • SQL Azure – Database Size – Network Traffic
  • 22.
    첫 번째 차이점:가격 Web Edition Business Edition Size/Meter Monthly Charges 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
  • 23.
    두 번째 차이점:관리 • SQL Server – HW부터 SW까지 – 모든 것을 재구성 가능 – 모든 작업은 관리자와 개발자의 책임 • SQL Azure – 제공되는 기능만 사용 – 데이터 관리, 정의만 재구성 – SW와 서비스에 집중
  • 24.
    두 번째 차이점:관리 • 사용할 수 없는 기능들 – 데이터 백업 및 복원 – 데이터베이스의 물리적 위치 – 전체 텍스트 색인 – 주요 DBCC 명령어 – 저장 프로시저 확장 DLL – 하드웨어 관련 설정
  • 25.
    두 번째 차이점:관리 • IP 주소 기반 방화벽을 제공 – 기본적으로는 모든 연결을 차단 – 특정 IP 주소 및 대역만을 선택적으로 허용 – MS Datacenter 내부 연결 허용 여부 선택 • 외부 코드를 허용하지 않는 이유 – SQL Azure의 Runtime은 Full-Trust 환경이 아님 – 데이터 취급 상의 위험 인자를 사전에 방지
  • 26.
  • 27.
    세 번째 차이점:개발 • 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
  • 28.
    세 번째 차이점:개발 • 사용이 불가능하거나 제약이 심한 기술 – TDS Driver – .NET Framework 2.0 이하 기본 System.Data.SqlClient Driver – OLE DB Driver (기능 제약이 심한 편) – Data Access Object – 일부 구형 Third Party SQL Server Driver들
  • 29.
  • 30.
  • 31.
  • 32.
    SQL Azure의 구조 Active Database #1 Client SQL Azure Active (Proxy) Database #2 Active Database #3
  • 33.
    SQL Azure 구조 •모든 데이터베이스 요청은 Proxy Gateway를 통해 오고 가는 구조 • Proxy Gateway가 이해하고 수용하는 명령어만 을 취급 • 하단의 데이터베이스가 장애가 발생하면 SLA 준수를 위해 즉시 다른 Spare DB로 교체
  • 34.
    실제 사용 시나리오 •SQL Server – 기업 내 중요 정보 및 자산을 보관 – 국가 내에서만 다루는 정보를 보관 – 인터넷에 직접 노출하는 일이 없음 • SQL Azure – 업데이트가 잦은 통계 정보 – 처리 비용이 많이 드는 RDBMS 연산 – 높은 컴퓨팅 성능이 필요한 작업
  • 35.
  • 36.
  • 37.
    백업에 관한 고찰 •SQL Azure의 Data Traffic 중 외부로 데이터를 백업하는 것은 Outbound에 해당 • Microsoft Data Center에 대한 신뢰도의 수준 에 따라 Backup을 결정하는 것이 필요
  • 38.
    백업에 관한 고찰 •SQL Azure에 어떤 데이터를 보관하는가에 따라 Backup의 필요성을 결정 가능 • Backup 외에 단순히 Redundancy를 늘이기 위 함인 경우 Database Copy도 검토 가능
  • 39.
    백업에 관한 고찰 •무엇을 하든, 모두 “비용”으로 연결된다 는 사실!
  • 40.
  • 41.
  • 42.
    클라우드라고 해서… • 기본적으로클라우드 솔루션은 가용성이 매우 뛰어난 편 • 그렇다고 하여 모든 것이 “무제한”이 되지 않는 다는 것에 유의 • SQL Azure에 대한 환상도 그래서 깨어져야!
  • 43.
    클라우드라고 해서… • SQLServer를 단독 Hosting 받는 것과는 달리 SQL Azure는 Full Dedicated 환경이 아님 • 필요 시 언제든 연결을 강제로 끊거나 차단할 수 있는 가능성이 언제나 존재 • 다른 SQL Azure 고객에게 손해를 끼칠 염려가 있는 모든 동작이 제한됨 • Shard Pattern과 Connection Retry를 고려하 는 것이 늘 필요
  • 44.
  • 45.
    클라우드라고 해서… • SLA를논의할 때에는 Microsoft의 SLA만을 논 의하는 것이 아님 • 여러 가지 원인에 의하여 데이터베이스 연결이 끊어질 가능성을 고려하는 것이 현명 • SQL Azure의 오류 코드 정보가 매우 중요
  • 46.
  • 47.
    SQL Azure의 보안과호환성 • SQL Azure가 인터넷 기반 DB이고 항상 SSL 암호화를 쓰기 때문에 호환성이 일부 결여됨 • OLE DB, DAO, TDS 등의 클라이언트 활용이 문제가 됨 • SQL Server Native Driver나 ODBC를 사용하 여 문제 해결 가능
  • 48.
  • 49.
    방화벽 설정에 대한이해 • SQL Azure는 개발 목적 DB가 아님 • 방화벽은 “절대로” 끌 수 없음 • 포트는 TCP 포트로 무조건 1433 • IP 주소 허용 및 차단에 만전을 기해야 • IP 주소 정책 반영에는 다소 시간 소요
  • 50.
  • 51.
    지역 설정에 대한이해 • SQL Azure의 기본 Collation 설정은 SQL_Latin1_General_CP1_CI_AS • CHAR, VARCHAR, TEXT 등의 데이터 형식 사 용 시에는 반드시 COLLATE 문을 지정해야 함 • 이를 피하고 안전하게 문자열 데이터를 다루려 면 N 계열 데이터 사용이 필수적 • NCHAR, NVARCHAR, NTEXT 권장
  • 52.
  • 53.
    그 외 각종제한 사항들 • 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 참조