SQL Azure 사용 시 주의점(1) - 방화벽 설정

Cloud 2009. 11. 12. 14:00 Posted by 알 수 없는 사용자
SQL Azure 에 방화벽 설정이 추가 됐습니다.
아래 스샷의 빨간 박스 탭이 설정하는 곳 입니다.



이 방화벽 설정을 안하시면 아래와 같이 Access 할 수 없다는 메세지를 보게 됩니다 ^^;



방화벽 설정(Firewall Settings) 탭에서 "Add Record" 로 접근 IP 또는 대역을 설정하시면 SQL Azure DB 를 원격으로 사용 할 수 있습니다.
( 단, 바로 되진 않고 몇분의 시간이 소요 되야 합니다. )


설정을 마치셨으면 정홍주님의 SQL Azure 포스팅을 참고하셔서 사용해 보시면 되겠습니다 ^^

구름 속의 미래 : Windows® Azure™ Platform [2]

Cloud 2009. 10. 11. 21:52 Posted by 알 수 없는 사용자
안녕하세요? Ted 입니다.
이번에는 PT 로 자료를 준비했습니다.

클라우드에 대해 다시 살펴보고 Azure 를 실제로 사용해 보도록 하겠습니다.

이전 블로그에서 SSMS를 통해서 간단히 데이터베이스 관련 개체를 생성해보았는데 실제 Sample 데이터베이스 같은 스키마와 데이터를 SQL Azure로 마이그레이션해서 클라우드 웹 응용 프로그램 등을 지원하게 해야 하므로 로컬 데이터베이스를 SQL Azure로 마이그레이션하는 방법을 알아보려고 합니다.

 

AdventureWork2008 예제 데이터베이스를 통해서 시도를 해보겠습니다. 스크립트는 Sqlcmd를 통

해서 접근할 수 도 있습니다.

 

일단 로컬 서버의 AdventureWork2008 데이터베이스의 스키마를 실행해보면 지원되지 않는 T-SQL 기능들을 알 수 있습니다. 지원되지 않는 T-SQL 기능들을 정리하고 스키마와 데이터를 SQL Azure에 게시해보도록 하겠습니다.

 

AdventureWork2008 의 스키마를 생성하기 위해 데이터베이스를 오른쪽 클릭하여 태스크 메뉴에서 스크립트 생성을 클릭합니다.

 

옵션들을 default 로 해서 스키마를 생성해 ‘HJ’ 데이터베이스에서 실행해보겠습니다.

HJ 데이터베이스에서 실행할 것이므로 데이터베이스 생성, USE 구문에 대한 부분은 제거합니다.

생성된 스크립트를 실행해보면 “sys.sp_addextendedproperty” 저장 프로시저를 찾을 수 없다는 에러가 발생합니다.



[그림2-1 스크립트 생성]


그래서 위 그림과 같이 스크립트를 생성할 때 옵션을 수정해주어야 합니다.

 

l  Convert UDDTs to Base Types => True

l  USE Database 스크립팅 => False

l  확장 속성 스크립팅=> False

스크립트 생성에서 옵션을 지정했지만 CREATE TYPE 구문 등은 남아있으므로 아래와 같은 정리 작업을 해주어야 실행이 성공할 수 있습니다.

l  ANSI_NULLS 제거

l  CREATE TYPE 구문 제거

l  ON FileGroup Primary 그룹으로 변경

l  NOT FOR REPLICATION 제거

l  PAD_INDEX 제거

l  Windows LOGIN

l  INDEX 관련

l  XML SCHEMA 관련

l  XML INDEX 구문 제거

l  ON [Primary] 구문 제거

l  HierarchId, FILESTREAM


생각보다 정리할게 너무 많고 손이 참 많이 갑니다.  왜 해야되냐는 의구심이 팍 ㅠㅠ

힘내서 자 성공적으로 끝나고 아래 그림과 같이 테이블과 개체들이 생성되었습니다
 

                                           [그림2-2 스크립트 실행]

  

이제 데이터를 전송, 게시해보도록 하겠습니다.

게시 마법사를 통해 INSERT 구문을 실행해도 상관없으며 SQL Server Integration Services(SSIS)를 이용해서 접근할 수도 있습니다. 실무라면 SSIS가 더 일반적이겠죠.

[그림2-3 INSERT]

[그림2-4 SSIS]


 

이상 클라우딩 환경에서 이용할 데이터베이스 개체와 데이터를 간단히 처리해보았습니다.

지원되지 않는 T-SQL 기능에 대한 부분은 아래 링크를 확인해보시기 바랍니다. 아직 CTP1이랍니다.

http://msdn.microsoft.com/en-us/library/ee336281.aspx

http://msdn.microsoft.com/en-us/library/ee336253.aspx

 

감사합니다.



 



 

SQL Azure 알아보기 (1) - 데이터베이스 개체 생성

Cloud 2009. 9. 13. 12:37 Posted by 알 수 없는 사용자

이전 블로그에서 SQL Azure 의 계정을 생성하고 ADO.NET으로 사용자 데이터베이스를 생성해보았습니다. 간단한 테스트였으며 SQL AzureOverview를 간단히 알아보았습니다.

 

이번 블로그에서는 SQL Server Management Studio(SSMS) 를 이용하여 SQL Azure 데이터베이스에 데이터베이스 개체(데이터베이스, 테이블, 인덱스, 제약, 데이터)를 생성해보겠습니다. 향후 데이터베이스 개체를 웹 응용 프로그램에서 이용해 볼 것입니다.

 

SQL Server Management Studio(SSMS)를 통해 SQL Azure 데이터베이스 서버를 접근해보도록 하겠습니다. 이전 블로그에서 본 것처럼 개체 탐색기에서는 연결이 안되었지만 아래 그림의 새 쿼리를 통하면 연결이 가능합니다.

 

SSMS를 시작할 때 연결 창이나 개체 탐색기에서 연결을 사용하시면 이전 블로그에서와 같은 에러를 보실 수 있습니다. 그래서  새 쿼리메뉴를 선택하거나 파일> 새로 만들기> 데이터베이스 엔진 쿼리를 이용하시면 됩니다. 새 쿼리 메뉴를 클릭하시면 연결 창이 보이고 SQL Azure 서버주소와 계정과 암호를 입력하시면 됩니다.


[그림1-1 SQL Azure 서버에 연결]

연결하시면 아래와 같은 경고 창을 보실 수 있습니다. 아래 경고에서는 확인을 선택합니다.


[그림 1-2 경고창]

 

쿼리 창에서 아래와 같이 @@version 구문을 실행해봅니다. 그러면 SQL Azure 서버의 버전을 알 수 있습니다.



[그림 1-3 Version]

 

사용자 데이터베이스를 만들기 위해 sys.databases 라는 카탈로그 뷰를 아래 그림과 같이 실행해 봅니다. 실행 결과에서 데이터베이스 목록을 알 수 있습니다.




[그림 1-4 sys.databases]

 

사용자 데이터베이스를 생성하기 위해 CREATE DATABASE 구문을 아래와 같이 실행해봅니다. 물리적인 데이터베이스 파일 위치까지 지정한 구문은 실행되지 않습니다. 마찬가지로 DROP DATABASE 구문도 실행 가능합니다.



[그림 1-5 CREATE DATABASE]

해당 사용자 데이터베이스로 이동해서 테이블 개체를 생성하려고 합니다. USE 구문을 사용하면 해당 데이터베이스가 존재하지 않는다는 에러 메시지가 나오면서 전환이 되지 않습니다. 사용자 데이터베이스로 이동할 경우는 아래와 같이 진행합니다.

파일 > 새로 만들기 > 데이터베이스 엔진 쿼리를 선택해서 SQL Azure 서버 정보를 입력하고 옵션을 선택해서 연결할 데이터베이스부분에 데이터베이스 이름을 직접 타이핑해서 연결하면 됩니다.


[그림 1-6 DATABASE 연결]

 

 이제 테이블을 생성해서 데이터를 추가해보도록 하겠습니다. 아래 그림과 같이 실행해서 테이블을 생성합니다.



[그림 1-7 테이블생성]

 

CREATE 구문에 보는 것처럼 클러스터형 인덱스와 DEFAULT 제약이 생성된 것을 확인가능합니다.

생성된 테이블에 INSERT 구문을 실행해봅니다.



[그림 1-8 INSERT 테이블]


물론 4번 데이터는 UPDATE  또는 DELETE를 수행할수 있습니다.~

이상으로 SSMS를 이용하여 SQL Azure 서버에 데이터베이스, 테이블, 인덱스, 데이터 INSERT를 다루어 보았습니다. 다음 블로깅에서는 로컬에 있는 SQL Server 2008의 Sample 데이터베이스를 SQL Azure 로 게시를 해보겠습니다. 게시하면서 지원하지 않는 T-SQL에 대한 부분을 알아보겠습니다.

감사합니다.




 

SQL Azure - CTP1

Cloud 2009. 8. 26. 09:51 Posted by 알 수 없는 사용자


8월 25일 화요일에 SQL Azure CTP에 대한 초대 메일을 받아 아래 그림처럼 클라우드 데이터베이스를 구성해보았습니다. 기존과 달리 T-SQL이 많이 지원이 되어 ADO.NET 만 보면 개발자에게 익숙한 내용이라고 보여집니다. 데이터베이스를 로컬이나 서버에 두지 않고 클라우드에 놓겠다는것이며 프로그래밍은 거의 기존과 동일하게 가능하니깐요.


SQL Azure 데이터 액세스 구조는 아래 그림을 참조해주세요. ADO.NET 등의 응용 프로그램이나 Windows Azure를 통해 SQL Azure 데이터베이스를 액세스할 수 있습니다.



클라우드 데이터베이스는 1개 서버에 5개 데이터베이스까지 현재는 지원하고 있으며 SQL Server Management Studio에서는 아직 아래 그림처럼 연결이 되지 않고 있습니
다. 조만간 될 예정이라고 하니 그때는 좀 더 편하게 작업이 가능해져 SQL Azure에 대한 부분이 더 활성화 될것으로 보입니다.




SSMS 외에 SQL Azure에 접근할 수 있는 방법은 ADO.NET, SqlCmd를 이용한 방법이 있으며 이를 통해 대부분의 T-SQL 구문을 실행해볼수 있습니다.


아래는 SQL Azure 데이터베이스를 생성하기 위해 ADO.NET 으로 구현한 내용입니다. 아래 주소의 소스를 참고했습니다.

http://msdn.microsoft.com/en-us/library/ee336243.aspx

생성하려면 SQL Azure 계정이 있어야 하고 이를 통해 ADO.NET을 호출해야 합니다. 계정이 없는 분을 대신해서 제가 호출해보았습니다. 제 환경은 Visual Studio 2010 에서 c# Windows 응용 프로그램으로 접근합니다. 

아래 소스는 클라우드 데이터베이스를 생성해주는 구문입니다. 다 알고 있는 것처럼 ADO.NET으로 CREATE DATABASE 구문을 실행해주는 내용입니다. 연결 문자열은 위에서 ConnectionStringBuilder 클래스를 통해 미리 생성해두었습니다. 사전에 정의된 계정으로 연결 문자열이 생성되며 실제 실행시켜 볼때는 계정이름을 'hongju@ServerName' 으로 하셔야 합니다.

Windows 응용 프로그램에서 접근해서 클라우드 데이터베이스가 생성됩니다. 

using (SqlConnection conn = 
new SqlConnection(connString1Builder.ToString()))
{
 using (SqlCommand command = conn.CreateCommand())
 {
conn.Open();
// 테스트 데이터베이스 생성
string cmdText = String.Format("CREATE DATABASE {0}", sampleDatabaseName);
command.CommandText = cmdText;
command.ExecuteNonQuery();
conn.Close();
}
}
데이터베이스가 생성되었으니 테이블을 만들고 INSERT, SELECT는 아래처럼 기존 ADO.NET 코드와 동일하게 접근이 가능합니다. SqlCommand 로 작업하는 것은 다 아시니 불필요한 코드는 지면상 생략하겠습니다.~
// 테이블 생성
command.CommandText = "CREATE TABLE T2(Col1 int primary key, Col2 nvarchar(20))";
command.ExecuteNonQuery();

// INSERT
command.CommandText = "INSERT INTO T2 (col1, col2) values (8, N'한글 1'), (2, N'한글 2'), (3, N'한글 3')";
int rowsAdded = command.ExecuteNonQuery();
// SELECT
command.CommandText = "SELECT * FROM T1";
using (SqlDataReader reader = command.ExecuteReader())
{
 // MessageBox로 결과 확인
 while (reader.Read())
{
 MessageBox.Show(reader["Col1"].ToString().Trim() +reader["Col2"].ToString().Trim());
}
}
유니코드로 한글을 입력하면 한글 결과를 확인할수 있습니다. 다 아시는 구문이며 SQL Azure라고 큰 차이는 없다는것을 확인 가능합니다. 아래 구문이 새로운 것은 아니며 SQL Server 2008에서 제공되는 구문이랍니다.

INSERT INTO T2 (col1, col2) values (8, N'한글 1'), (2, N'한글 2'), (3, N'한글 3')

기존 T-SQL과의 차이점 등은 아래 링크를 참조해주십시오.

이상으로 SQL Azure CTP1에 대한 첫 소개를 말씀드렸습니다. 다음에는 보다 더 구체적인 예제로 SQL Azure를 접근해보겠습니다.
감사합니다.


SQL Azure Documentation:
http://msdn.microsoft.com/en-us/library/ee336279.aspx

SQL Azure Forum:
http://social.msdn.microsoft.com/forums/en-US/ssdsgetstarted/threads/


Connecting to SQL Azure Using ADO.NET:
http://msdn.microsoft.com/en-us/library/ee336243.aspx

구름 속의 미래 : Windows® Azure™ Platform [1]

Cloud 2009. 8. 13. 02:12 Posted by 알 수 없는 사용자


    반갑습니다
    ! Q3 에서 활동하게 Ted 라고 합니다. ^^

    저는 Q3 에서 MS 클라우드 플랫폼 Azure 대해 이야기 하려고 합니다.

     

    시작하면서...

     

     

    단순히 서버에 저장된 정보를 액세스 하는 것이 아니라 ‘구름(Cloud)’의 컴퓨팅 능력을 얻어서 사용 하는 클라우드 컴퓨팅이 글로벌 기업들의 적극적인 투자와 구축에 따라 점차 대중화 되어 가고 있습니다.

     

    상대적으로 MS 늦게 클라우드(Cloud) 시장에 뛰어 들었습니다.
    클라우드 컴퓨팅 플랫폼 Azure 발표하면서 MS 최고 아키텍트 레이 오지는 인터뷰 중에 "Azure 새로운 컴퓨터" 라고 말했었죠.

     

    구름.. 구름에서의 컴퓨팅.. 새로운 컴퓨터..

    새로운 기술과 개념들이 지적 호기심과 즐거움을 주고 있습니다.

     

    글에선 간단하게 클라우드(Cloud) 컴퓨팅의 개념을 알아보고 Azure Platform 어떻게 구성되어 있는지 살펴보겠습니다.

     

     

    클라우드 컴퓨팅? 플랫폼?

     

    클라우드(Cloud) 그대로 구름입니다. ^^

    IT 분야에서 최근 유행하는 클라우드(Cloud) 의미는 복수의 데이터센터(IDC) 가상화 기술을 통해 소프트웨어, 하드웨어, 네트워크, 컴퓨팅 파워 등의 전산 자산을 통합해 놓은 것을 의미합니다.

     

    그렇다면 클라우드 컴퓨팅이란 무엇일까요?

    사용자가 PC, 휴대폰, PDA 등 컴퓨팅이 가능한 단말기를 통해 구름(Cloud)에 접속해서 원하는 작업을 하는 것입니다. 크게 가지 작업을 있겠죠.
    언제 어디서나 데이터를 저장하고 프로그램을 실행시킨다.


    뿐만 아니라 인프라를 서비스로 제공받거나(IaaS), 플랫폼을 서비스로 제공(PaaS) 받는 것이 또한 클라우드 컴퓨팅에서 가능합니다.


    클라우드를 제공하는 회사 입장에서 본다면 애플리케이션, 인프라, 플랫폼을 "서비스"의 형태로 일정 금액을 받고 제공해 주는 것입니다. 이 서비스들을 통털어 클라우드 플랫폼이라고 하는 것이죠.


    아래
    그림은 현존 하는 클라우드 플랫폼들이 제공하는 서비스를 분류해 놓는 도식 입니다.

    클라우드 컴퓨팅을 제공하는 글로벌 벤더들은 서비스들 중에 일부 또는 전부를 제공하고 있습니다.

    SaaS, IaaS, PaaS
    없는(?) 말들이 난무 합니다. 관련해서 좋은 있으니 참고하세요!

     

    < 출처 : http://nexr.tistory.com/ >

     

    오늘은 정도로 클라우드에 대한 설명을 마치겠습니다. (앞으로 ~ 계속 됩니다)

    광범위고 추상적인 개념이다 보니 아직은 멀게만 느껴집니다.

    앞으로 Azure 통해 프랙티스를 경험해 보고 실제로 사용하면 많이 가까워 있겠죠? ^^

     

     

    An Overview of The Windows® Azure™ Platform

     

    < 여기서 잠깐! >

    Window Azure Azure Platform 다른 것입니다.

    Window Azure Azure 플랫폼에서 운영체제를 담당하는 부분입니다.! 


    Azure Platform?
     


    Azure Platform 은 클라우드
    운영체제(Windows Azure) 와 클라우드 컴퓨팅을 위한 편의를 제공하는 다양한 서비스들(Live Service, .NET Service..) 을 말합니다.


     

    1. Windows Azure
     클라우드 운영체제입니다. 

    사진 및 동영상 등의 Blob(바이너리 형식의 큰 파일)을 저장하는 스토리지, 실제 연산 및 처리 작업을 수행하는 컴퓨팅, 서비스에 대한 관리의 역할을 제공합니다.
     

    2. 서비스 모듈들 

     Azure Platform 클라우드 컴퓨팅을 이용해 쉽게 개발할 수 있도록 다양한 서비스가 제공됩니다.


     기반 애플리케이션 모듈

    Live Services: Live Mesh 개념의 Social Service 애플리케이션 개발

    SQL Services: 클라우드 서비스용 SQL Server 연동 모듈

    .NET Services: 클라우드 애플리케이션 서비스 개발 프레임웍

     
     전용 애플리케이션 모듈

    Sharepoint Services: 협업 관련 서비스 개발

    Dynamics CRM Services: CRM 관련 서비스 개발


    Windows Azure?

     
    Windows Azure
    는 레드 독(Red Dog)이란 코드명으로 알려진, 마이크로소프트의 클라우드용 운영체제로, 마이크로소프트가 데이터센터에서 운영하게 될 Azure Platform의 핵심 요소입니다. 또한, Windows Azure 는 클라우드용 애플리케이션 개발자들을 위한 개발 환경이기도 하지요.

     > 최신 CTP 다운로드

     > Azure 컬러 설명

     > Windows Azure 블로그


    처음에는 Azure 관련 자료를 찾아보면 수록 이름도 헷갈리고 서비스들의 역할이 아리송 했는데요, Azure MSDN 개발자 사이트 화면에서 바로 "Window Azure 클라우드 운영체제" 라는 말을 보고 "아하" 했답니다.

     

    윈도우나 리눅스 같은 운영체제의 제일 주된 역할은 무엇일까요?

    중요한 역할 중에 하나가 하드웨어 자원을 사용 하는 추상화 방법(HAL) 제공함으로써 소프트웨어 작동 환경을 만들어 주는 것입니다.

     

    같은 맥락에서 보면, 클라우드 운영체제인 Azure 클라우드 자원을 관리하고 추상화 사용 방법을 제공함으로써 컴퓨팅 환경을 제공하는 입니다.

    ( 클라우드 자원이란 위에서 언급한 복수의 데이터센터(IDC) 가상화 기술을 통해 소프트웨어, 하드웨어, 네트워크, 컴퓨팅 파워 등의 전산 자산 입니다. )

     

    아직 모르시겠다구요? FAQ 참고해 주세요!



    마치면서...

    다음 포스팅에서는 Azure 플랫폼을 구성하는 기능들에 대해 상세히 살펴보고 실제 Azure 서비스를 사용해 보겠습니다!