Upload
jung-hyun-nam
View
3.181
Download
3
Embed Size (px)
Citation preview
Agenda
• SQL Azure가 SQL Server와 다른 점
• Break Time
• SQL Azure 좌절방지위원회
• Question and Answer
• Lucky draw
SQL Azure란?
• SQL Server 2008 R2를 기반으로 구축됨
• Microsoft가 제공하는 Cloud 기반 RDBMS
• 인터넷 기반 데이터베이스 시스템
• 한달 99.9% SLA 보장
• http://go.microsoft.com/fwlink/p/?LinkId=159706
90일 Free Trial 서비스 혜택
• Extra Small Computer Instance 무제한
• 1달 750시간 Small Computer Instance 무료
• SQL Azure Database 1GB 무료 제공
• Outbound 20GB, Inbound 무제한
• 신용 카드 정보 제공 필요
첫 번째 차이점: 가격
• 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 연결을 위해서 쓸 수 있는 기술
– .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들
SQL Azure 구조
• 모든 데이터베이스 요청은 Proxy Gateway를 통해 오고 가는 구조
• Proxy Gateway가 이해하고 수용하는 명령어만을 취급
• 하단의 데이터베이스가 장애가 발생하면 SLA 준수를 위해 즉시 다른 Spare DB로 교체
실제 사용 시나리오
• SQL Server
– 기업 내 중요 정보 및 자산을 보관
– 국가 내에서만 다루는 정보를 보관
– 인터넷에 직접 노출하는 일이 없음
• SQL Azure
– 업데이트가 잦은 통계 정보
– 처리 비용이 많이 드는 RDBMS 연산
– 높은 컴퓨팅 성능이 필요한 작업
백업에 관한 고찰
• SQL Azure의 Data Traffic 중 외부로 데이터를 백업하는 것은 Outbound에 해당
• Microsoft Data Center에 대한 신뢰도의 수준에 따라 Backup을 결정하는 것이 필요
백업에 관한 고찰
• SQL Azure에 어떤 데이터를 보관하는가에 따라 Backup의 필요성을 결정 가능
• Backup 외에 단순히 Redundancy를 늘이기 위함인 경우 Database Copy도 검토 가능
클라우드라고 해서…
• 기본적으로 클라우드 솔루션은 가용성이 매우 뛰어난 편
• 그렇다고 하여 모든 것이 “무제한”이 되지 않는 다는 것에 유의
• SQL Azure에 대한 환상도 그래서 깨어져야!
클라우드라고 해서…
• SQL Server를 단독 Hosting 받는 것과는 달리 SQL Azure는 Full Dedicated 환경이 아님
• 필요 시 언제든 연결을 강제로 끊거나 차단할 수 있는 가능성이 언제나 존재
• 다른 SQL Azure 고객에게 손해를 끼칠 염려가 있는 모든 동작이 제한됨
• Shard Pattern과 Connection Retry를 고려하는 것이 늘 필요
클라우드라고 해서…
• SLA를 논의할 때에는 Microsoft의 SLA만을 논의하는 것이 아님
• 여러 가지 원인에 의하여 데이터베이스 연결이 끊어질 가능성을 고려하는 것이 현명
• SQL Azure의 오류 코드 정보가 매우 중요
SQL Azure의 보안과 호환성
• SQL Azure가 인터넷 기반 DB이고 항상 SSL 암호화를 쓰기 때문에 호환성이 일부 결여됨
• OLE DB, DAO, TDS 등의 클라이언트 활용이 문제가 됨
• SQL Server Native Driver나 ODBC를 사용하여 문제 해결 가능
방화벽 설정에 대한 이해
• SQL Azure는 개발 목적 DB가 아님
• 방화벽은 “절대로” 끌 수 없음
• 포트는 TCP 포트로 무조건 1433
• IP 주소 허용 및 차단에 만전을 기해야
• IP 주소 정책 반영에는 다소 시간 소요
지역 설정에 대한 이해
• SQL Azure의 기본 Collation 설정은 SQL_Latin1_General_CP1_CI_AS
• CHAR, VARCHAR, TEXT 등의 데이터 형식 사용 시에는 반드시 COLLATE 문을 지정해야 함
• 이를 피하고 안전하게 문자열 데이터를 다루려면 N 계열 데이터 사용이 필수적
• NCHAR, NVARCHAR, NTEXT 권장