SQL Server CodeName “Denail” CTP 3에서의 SQL Azure 액세스

Cloud 2011. 7. 22. 08:30 Posted by 알 수 없는 사용자


SQL Server CodeName “Denail” CTP 3에서의 SQL Azure 액세스

SQL Server CodeName “Denail” CTP 3 가 발표되었습니다. 한국어 버전에 대한 내용도 제공되고 있습니다.

CTP 3 다운로드에 대한 내용은 아래 링크를 참고하시기 바랍니다.
https://www.microsoft.com/betaexperience/pd/SQLDCTP3CTA/enus/


설치하고 SQL Server CodeName “Denail” CTP 3를 통해 아래와 같이 SQL Azure 를 액세스 해보았습니다.

물론 잘 액세스되며 CTP 3 한글 버전에서 SQL Azure 를 테스트해볼 수 있습니다.

SQL Azure 데이터 이용(3)

Cloud 2011. 5. 31. 08:30 Posted by 알 수 없는 사용자


SQL Azure 데이터 이용(3)

이번에는 SQL Azure의 데이터를 Windows Azure 프로젝트의 ASP.NET MVC 응용프로그램에서 데이터를 이용하는 내용을 알아보도록 하겠습니다.

앞에서 살펴보았듯이 기존 ASP.NET MVC 응용 프로그램과 별 차이가 없는 것을 확인 가능합니다.

Cloud 폴더의 Windows Azure 프로젝트를 생성합니다. 프로젝트 이름은 SQLAzureMVC 으로 지정합니다.

Windows Azure 프로젝트에서는 ASP.NET MVC 웹 역할을 추가합니다.

ASP.NET MVC 웹 역할의 이름은 SQLAZMVCWeb 로 아래와 같이 지정합니다.

Models 폴더에 View에서 나타낼 Product 클래스를 아래와 같이 선언합니다. 필요하다면 ProductSubCategory 클래스나 ModelView 클래스를 추가해야 합니다.

SQL Azure에 있는 데이터를 호출하기 위해 clsProduct에서 Enterprise Library Data Access Block을 이용해서 web.config 에 있는 연결 문자열을 통해 액세스합니다.

Controller를 생성하기 위해 Controllers 폴더를 오른쪽 클릭, 추가에서 컨트롤러를 선택하고 이름은 ProductController로 지정합니다.

ProductController Index에서는 아래와 같은 형태로 DropDownlist의 데이터는 ViewData로 처리하고 Product List View로 보내주는 내용을 구성합니다. 그리고 DropDownList Change 했을 경우 POST 방식으로 처리되는 Index 메서드를 정의합니다.

public ActionResult Index()

{

clsProduct product = new clsProduct();

var d = from p in product.GetProductSubCategory().Tables[0].AsEnumerable()

select new ProductSubCategoryModel

{

Name = p.Field<string>("Name"),
ProductCategoryID = p.Field<int>("ProductCategoryID")

};

ViewData["SubCategories"] = new SelectList(d.ToList(),"ProductCategoryID", "Name");

string ddlCategory = d.ToList().First().ProductCategoryID.ToString();

var products = from g in product.GetProducts(ddlCategory).Tables[0].AsEnumerable()

select new ProductModel

{

Name = g.Field<string>("Name"),

ProductID = g.Field<int>("ProductID"),

ProductNumber = g.Field<string>("ProductNumber"),

Size = g.Field<string>("Size"),

Color = g.Field<string>("Color"),

StandardCost = g.Field<decimal>("StandardCost"),

ListPrice = g.Field<decimal>("ListPrice")

};

return View(products.ToList());

}

Views 폴더에 View를 생성해보도록 하겠습니다. Index 메서드에서 오른쪽 클릭하여 뷰 추가 메뉴를 클릭합니다.

강력한 형식의 뷰 만들기에서 ProductModel를 선택하고 뷰 콘텐츠에서는 List 를 선택합니다.

Views 폴더의 Product 폴더의 Index.aspx의 코드를 살펴보고 DropDownList 관련 내용을 추가합니다.

<% Html.BeginForm(); %>

<p><%=Html.DropDownList("ddlCategory",(IEnumerable<SelectListItem>)ViewData["SubCategories"], new { onchange = "this.form.submit()" }) %></p>

로컬에서 실행해서 결과를 확인합니다.

자 이제 Windows Azure ASP.NET MVC Web Role에 대한 내용을 배포해봅니다.

배포에 대한 일반적인 내용은 아래 블로그를 참조하면 됩니다.
http://redju.tistory.com/56
ServiceConfiguration.cscfg
파일에서 인스턴스를 2로 수정하고 솔루션 탐색기의 SQLAzureMVC 프로젝트를 오른쪽 클릭하고 게시를 클릭하여 패키지를 생성합니다.

Windows Azure 사이트로 이동(http://windows.azure.com/) 하여 하여 New Hosted Service를 클릭하여 서비스 이름과 패키지 경로 등을 아래와 같이 지정합니다.

Staging에서 Ready 상태로 되었고 오른쪽 속성 창을 통해 테스트를 해볼 수 있습니다.

SWAP IP를 클릭하여 Staging에서 Production 환경으로 변경하여 결과를 확인합니다.

SQL Azure의 데이터를 이용하는 클라우드 ASP.NET MVC 웹 역할을 생성하고 배포해보았습니다.

SQL Azure 데이터 이용(2)

Cloud 2011. 5. 24. 08:30 Posted by 알 수 없는 사용자

SQL Azure 데이터 이용(2)

SQL Azure 에 데이터를 이전했고 Windows Azure 프로젝트를 통해 클라우드 웹 응용프로그램에서 데이터를 이용하는 내용을 알아보도록 하겠습니다.

VS 2010을 이용해서 Windows Azure 응용 프로그램을 생성합니다. 이를 통해 클라우드에 있는 SQL Azure 데이터를 클라우드 웹 응용프로그램에서 나타내보도록 하겠습니다.

Cloud 폴더의 Windows Azure 프로젝트를 생성합니다. 프로젝트 이름은 SQLAZWeb으로 지정합니다.



Windows Azure 프로젝트에서는 ASP.NET 웹 역할을 추가합니다.

웹 역할의 이름은 AdventureWorks로 아래와 같이 지정합니다.

Default.aspx 의 디자인은 ScriptManager, UpdatePanel 에 추가로 DropdownList, GridView 컨트롤을 아래와 같이 배치합니다.

연결 문자열과 클래스 파일 등은 SQL Azure 데이터 이용(1)과 동일합니다. 배포에 대한 내용만 다를 뿐입니다. 일반적인 내용은 생략합니다.

Default.aspx.cs로 이동하여 아래와 같이 필드를 선언하고 Page_Load에 아래와 같은 코드를 작성합니다. DropdownList SQL Azure의 데이터를 나타내는 내용입니다.

public partial class _Default : System.Web.UI.Page

{

clsProduct product = new clsProduct();

protected void Page_Load(object sender, EventArgs e)

{

if (!Page.IsPostBack)

{

ddlSubCategory.DataSource = product.GetProductSubCategory().Tables[0];

ddlSubCategory.DataTextField = "Name";

ddlSubCategory.DataValueField = "ProductCategoryID";

ddlSubCategory.DataBind();

GetProductData();

}

}

또한 DropdownList SelectedIndexChanged 이벤트를 발생시켜 아래와 같이 코드를 작성합니다.

protected void ddlSubCategory_SelectedIndexChanged(object sender, EventArgs e)

{

GetProductData();

}

GetProductData 메서드는 Products 리스트를 얻어 오는 내용이며 아래와 같이 코드를 작성합니다.

private void GetProductData()

{

DataSet ds = product.GetProducts(ddlSubCategory.SelectedValue);

GridView1.DataSource = ds.Tables[0];

GridView1.DataBind();

}

로컬에서 실행해서 결과를 확인합니다.

자 이제 Windows Azure Web Role에 대한 내용을 배포해봅니다.

배포에 대한 일반적인 내용은 아래 블로그를 참조하면 됩니다.

http://redju.tistory.com/56

솔루션 탐색기의 SQLAZWeb 프로젝트를 오른쪽 클릭하고 게시를 클릭하여 패키지를 생성합니다.

Windows Azure 사이트로 이동(http://windows.azure.com/) 하여 하여 New Hosted Service를 클릭하여 서비스 이름과 패키지 경로 등을 아래와 같이 지정합니다. 인스턴스의 수는 구성 파일에서 미리 지정해도 됩니다.

Staging에서 Ready 상태로 되었고 오른쪽 속성 창을 통해 테스트를 해볼 수 있습니다.

테스트 결과는 아래와 같습니다.

SWAP IP를 클릭하여 Staging에서 Production 환경으로 변경하여 결과를 확인합니다. 인스턴스를 2로 수정해서 Upgrade를 했습니다.


SQL Azure를 이용하여 ASP.NET 웹 역할을 생성하고 배포해보았습니다. SQL Azure라고 코드에 대한 내용이 별도 다르지 않고 ADO.NET으로 액세스 할 수 있습니다.


SQL Azure 데이터 이용(1)

Cloud 2011. 5. 17. 08:30 Posted by 알 수 없는 사용자

SQL Azure 데이터 이용(1)

SQL Azure 에 데이터를 이전했고 로컬 응용프로그램에서 데이터를 이용하는 내용을 알아보도록 하겠습니다.

VS 2010을 이용해서 Windows Forms 응용 프로그램을 생성합니다. 이를 통해 클라우드에 있는 SQL Azure 데이터를 로컬 응용 프로그램에서 나타내보도록 하겠습니다.

시작하기 전에 결론은 C#을 이용해 ADO.NET으로 똑같이 액세스할 수 있다는 것입니다. 연결 문자열만 달라지며 Azure 방화벽 외에는 동일하다는 것입니다.

Windows Forms 응용 프로그램을 생성합니다.


간단한 Form 디자인을 아래와 같이 합니다. ComboBox DataGridView 를 통해 데이터를 나타내보도록 하겠습니다.

데이터베이스 액세스를 위해 Enterprise Library 5.0을 이용할 것이며 참조 추가를 통해 관련 어셈블리를 추가합니다.
(Microsoft.Practices.EnterpriseLibrary.Common, Microsoft.Practices.EnterpriseLibrary.Data)

데이터 액세스를 위한 연결 문자열은 App.config에 아래와 같이 구성합니다.

<connectionStrings>

<add name="sqlazure1" connectionString="Data Source=SQLAzure서버이름;User ID=사용자계정;Password=비밀번호;Initial Catalog=AdventureWorksLTAZ2008R2" providerName="System.Data.SqlClient"/>

</connectionStrings>

데이터액세스를 위한 클래스를 추가합니다. 클래스 이름은 clsProduct으로 지정합니다.

ProductSubCategory 리스트와 SubCategory Product 리스트를 반환하는 메서드를 아래와 같이 정의합니다.

public DataSet GetProducts(string ProductCategoryID)

{

DataSet ds = new DataSet();

Database db = DatabaseFactory.CreateDatabase("sqlazure1");

string spName = "[SalesLT].[usp_GetProductByCategoryID]";

DbCommand cmd = db.GetStoredProcCommand(spName);

db.AddInParameter(cmd, "ProductCategoryID", DbType.Int32, ProductCategoryID);

ds = db.ExecuteDataSet(cmd);

return ds;

}

Form1.cs로 이동하여 아래와 같이 필드를 선언하고 InitializeComponent 아래에 코드를 작성합니다. ComboBox SQL Azure의 데이터를 나타내는 내용입니다.

public partial class Form1 : Form

{

clsProduct product = new clsProduct();

public Form1()

{

InitializeComponent();

cbSubCategory.DataSource = product.GetProductSubCategory().Tables[0];

cbSubCategory.DisplayMember = "Name";

cbSubCategory.ValueMember = "ProductCategoryID";

GetProducts();

}

또한 ComboBox SelectedIndexChanged 이벤트를 발생시켜 아래와 같이 코드를 작성합니다.

private void cbSubCategory_SelectedIndexChanged(object sender, EventArgs e)

{

GetProducts();

}

GetProducts 메서드는 Products 리스트를 얻어 오는 내용이며 아래와 같이 코드를 작성합니다.

private void GetProducts()

{

dataGridView1.DataSource = product.GetProducts(cbSubCategory.SelectedValue.ToString()).Tables[0];

}

프로젝트를 실행해서 결과를 확인합니다.

이상에서 보았듯이 로컬의 응용프로그램에서 SQL Azure를 액세스하는 것은 별다른 내용 없이 로컬에 있는 SQL 데이터를 액세스하는 것과 동일합니다.

Windows Azure Application - Hello Azure (2)

Cloud 2011. 5. 10. 08:30 Posted by 알 수 없는 사용자

Windows Azure Application - Hello Azure (2)

이전 글에서 로컬에서 Windows Azure 응용 프로그램을 처리했으므로 여기서는 Cloud로 배포를 해보도록 하겠습니다. 업데이트된 Management Portal을 통해 진행합니다.

HelloAzure 프로젝트를 클릭해서 게시 메뉴를 사용해봅니다. 게시 메뉴를 클릭하면 어셈블리, 구성 파일을 포함하는 서비스 패키지 파일을 생성하게 됩니다.


Windows Azure 프로젝트 배포 창이 나타나며 서비스 패키지만 만들거나 Windows Azure로 자격증명을 이용해서 배포할 수 있습니다. 여기서는 서비스 패키지만 만들기를 클릭합니다.


탐색기가 나타나며 서비스 패키지를 확인 할 수 있습니다.



Windows Azure 사이트를 액세스합니다. http://windows.azure.com



Live ID로 로그인합니다. Windows Azure Management Portal에서 구독을 생성되어야 합니다. 활성화 되어 있다면 New Hosted Service 프로젝트를 클릭할 수 있습니다.


또한 기존에 생성된 서비스를 확인할 수 있습니다.

New Hosted Service 메뉴를 클릭합니다.



서비스 이름에는 “Hello Azure” 를 입력하고 URL에는 원하는 주소를 입력합니다.

Choose a region에서는 적절한 지역을 선택합니다.

Deployment Name에는 “HelloAzure” 로 입력합니다.

Package location, Configuration File은 패키지 만들기에서 탐색기에서의 파일을 선택합니다.

OK를 클릭합니다.

Hosting을 생성하고 Staging 환경으로 배포를 하게 됩니다.

Instance Status의 값이 Ready가 되면 Staging 생성이 완료된 것이며 Deployment 타입의HelloAzure 를 선택하고 오른쪽 속성 창의 DNS Name을 클릭하면 staging에서의 결과를 알 수 있습니다.

Production 환경으로의 배포는 SWAP VIP 아이콘을 클릭하면 됩니다. Staging에서 Production으로 변경된 것을 확인 가능합니다.



그러면 위에서 입력한 URL 내용으로 결과를 확인 가능합니다.

VS 2010을 통해 Windows Azure 프로젝트로 Hello Azure를 생성해서 업데이트된 Management Portal 에 배포하여 실제 Production으로 게시해서 결과를 확인해보았습니다. 여러 가지를 응용이 가능하며 VS 2010 개발 경험에 C#으로 손쉽게 클라우드 응용 프로그램을 생성할 수 있다는 것을 알 수 있습니다.


Windows Azure를 이용하여 프로그래밍을 하는 작업은 개발자나 관리자 모두에게 큰 변화를 요구합니다. 그 중에서도 가장 큰 변화는, 관리하고 점검해야 할 리소스의 폭 자체에 큰 변동이 온다는 것입니다. 대개의 경우, 인프라를 서비스로 제공받을 것인지, 플랫폼까지를 서비스로 제공받을 것인지, 심지어는 소프트웨어 자체를 서비스로 제공받기를 원할지 중에서 하나를 골라야 합니다. 하지만 개발자들의 관심사는 무엇을 서비스로 제공하는 것 말고도, “어떻게활용할 수 있는가에 대한 것 역시 이슈가 됩니다.

Windows Azure와 같은 플랫폼 기반 클라우드에 대해서 일반적으로 많이 오해하는 부분 중 하나는, 지금 내가 운영 중인 웹 사이트나 서비스 전체를 클라우드로 옮겨야만 하는 것에 대한 부분입니다. 이렇게 하지 않으면 클라우드를 쓰는 것이라고 말할 수 없는 것일까요? 결론부터 이야기하면 전혀아닙니다. 클라우드를 이용하는 방법은 전적으로 여러분의 아이디어에 달려있는 것이다.

신뢰할 수 있고 유연한 저장소를 응용프로그램에 통합하기

Windows Azure에는 서비스나 웹 사이트를 호스팅하기 위한 Compute가 있고, Compute의 성능에 대응할 수 있는 초고속 대용량 저장소인 Storage 서비스가 같이 그룹을 지어 다닙니다. 물론 둘 사이는 Affinity Group으로 묶어서 재해가 발생했을 경우 가용성을 보장할 수 있도록 밴드를 형성하는 것이 기본입니다. 하지만, 기존에 개발 중인 소프트웨어 그 자체에 신뢰할 수 있고 유연한 저장소를 만들고자 한다면 독립적으로 Storage 서비스만을 이용할 수도 있습니다.

익히 알려진 대로, Storage 서비스에는 세부적으로 세 가지 유형의 저장소가 있습니다. 대표적으로 파일을 저장하거나 BLOB 이미지를 관리할 수 있는 BLOB Storage, 대용량 비 관계형 데이터베이스인 Table Storage, 그리고 고속으로 메시지를 큐에 저장하고 불러올 수 있는 Queue Storage가 있습니다. 이들 서비스 모두 HTTP HTTPS 프로토콜을 지원하는데다가, RESTFUL 기반 서비스이기 때문에 인터넷과 호환되는 응용프로그램을 개발할 것이라고 한다면, 여러분이 어떤 개발 도구를 사용하든, 어떤 운영 체제를 목표로 응용프로그램을 개발하든 관계없이 마음껏 활용할 수 있습니다. C# Visual Basic .NET 의 경우 Windows Azure SDK 안의 공식 어셈블리를 사용하면 LINQ to Azure Table Storage까지 사용할 수 있으며, 그 외 많은 오픈 소스 라이브러리들을 Microsoft Interoperability Bridge 공식 웹 사이트를 통하여 찾아볼 수 있습니다.

여러분의 웹 사이트를 좀 더 인터넷 친화적으로 만들기

요즈음 웹 사이트들은 매우 개방적입니다. 단순히 RSS ATOM Feed로 데이터를 노출한다거나, RESTFUL 기반 URL 다시 쓰기를 지원한다고 해서 그런 것이 아니라, 인증에 대한 개념 자체를 완전히 다르게 해석하고 접근하는 사이트들이 많기 때문입니다. Open ID, Live ID 등 다양한 방법으로 불리고 있지만 한 가지 일관성을 보이는데 바로 이들 개별 웹 사이트들은 여러분의 ID와 암호가 무엇인지에 대해서는 전혀 관심이 없고, 그저 여러분이 누구인지에 대해서만 관심이 있을 뿐이라는 점입니다. 이러한 인증 행태를 놓고 클레임 기반 인증이라고 말합니다.

클레임 기반의 인증을 사용하는 웹 사이트들의 대표적인 예로, Twitter 관련 플러그인 사이트들이 있으며, 페이스 북에 올라가는 수많은 Social App들 역시 그러합니다. 그리고 국내에서는 그간 유명했던 스프링노트가 Open ID를 잘 지원하고 있고, 과거의 이야기가 되었지만 ME2DAY 역시 Open ID를 지원했던 때가 있습니다. 클레임 기반의 인증을 통하게 되면 어떤 이점이 있기에 이렇게 많은 웹 사이트들이 채택을 하고 있는 것일까요? 조금 전에 이야기한 것처럼, 여러분의 웹 사이트가 책임지고 관리해야 할 위험 부담 중 가장 큰 것을 완전히 덜어버리고 비용도 절감할 수 있기 때문입니다.

클레임 기반의 인증을 여러분의 웹 사이트에 적용한다는 것은, 해당 웹 사이트를 방문하는 사용자들이 이미 타 기관에서 인증을 거친 후에 다시 여러분의 웹 페이지로 이동한 것을 의미하고 여기에 대한 모든 정보를 해당 인증 기관으로부터 선택적으로 넘겨 받게 되는 것입니다. 다시 이야기하지만 상대방의 ID와 암호를 알 필요 없이 피아식별이 된 상태를 유지할 수 있다는 것입니다.

Windows Azure의 경우, 여기에 한 가지 더 편리한 서비스를 제공하는데, 이번에 새로 업그레이드된 Windows Azure AppFabric Access Control v2.0이 그 주인공입니다. 이하 Access Control은 처음 발표 당시에는 여러분이 소유하고 있었던 Active Directory를 인증의 주체로 세울 수 있는 Active Directory Federation Services (AD FS)와 이에 연관된 서비스만을 지원했지만, 이번 업그레이드에서는 그 뿐만 아니라 Windows Live ID, Google, Yahoo, Facebook 등의 유명한 인터넷 서비스 공급자들의 ID로 신원 인증 수단으로 추가 지원하게 되었습니다. 인증 관련 서비스에 장애가 발생할 걱정 없이, 그리고 여러분의 개별 웹 사이트에 대한 해킹 위험은 최소화시키면서 서비스 그 자체에만 집중할 수 있게 되는 것입니다.

확장 가능한 Cache/Session 서비스 사용하기

Windows Azure에 근래 들어서 추가된 또 다른 매력적인 서비스는 바로 AppFabric Cache 서비스입니다. AppFabric Cache Server AppFabric Cache와 기술을 공유하지만, 내부적으로는 Windows Azure Cloud Computing 기술을 바탕으로 매우 높은 성능의 Cache 서비스를 제공하는 것으로, ASP .NET 뿐만 아니라 다른 여러 플랫폼과도 혼용해서 사용할 수 있는 것이 장점입니다.

단순히 Cache 서비스뿐만 아니라, Session State까지 AppFabric Cache에서 통합 관리할 수 있기 때문에, 사이트 간 Session 공유나 Single Sign On 등의 기능을 어렵지 않게 구현할 수도 있습니다.

그 외에도 수 많은 가능성들

이 글에서 모두 열거하기 힘들 정도로 Windows Azure의 서비스들은 날이 갈수록 풍성해지고 성숙도를 더해가고 있습니다. Real-World Windows Azure Development Guide 시리즈는 Windows Azure Platform의 여러 기술들을 지속적으로 알리고 개발자들에게 좀 더 친숙한 Cloud 개발을 할 수 있는 방안을 모색하기 위하여 시리즈로 연재 될 예정입니다. 많은 관심과 피드백을 독자 여러분들께 부탁 드리고자 합니다.

'Cloud' 카테고리의 다른 글

SQL Azure 데이터 이용(1)  (0) 2011.05.17
Windows Azure Application - Hello Azure (2)  (0) 2011.05.10
Windows Azure VM Role 미리보기 #6  (0) 2011.05.09
Windows Azure VM Role 미리보기 #5  (0) 2011.05.09
Windows Azure VM Role 미리보기 #4  (0) 2011.05.09

Windows Azure VM Role 미리보기 #6

Cloud 2011. 5. 9. 02:13 Posted by 알 수 없는 사용자

VM Role 관리하기 - 차이점 보관 디스크 만들기

VM Role을 성공적으로 클라우드에 출판했지만 이제 마지막으로 걱정거리가 하나 남습니다. 새로운 기능을 추가할 때나 소프트웨어를 추가하는 일은 너무나 당연한 일입니다. 그런데 VM이 자동으로 증식할 때 마다 원격으로 들어가서 매번 새롭게 VM을 고쳐야 하는 것일까요? 아니면 매번 덩치 큰 이미지를 올리기 위해서 퇴근도 못하고 기다려야 하는 것일까요? 그렇지 않습니다.

차이점 보관 디스크라고 번역되었고, 영문 버전에서는 Differencing Disk로 불리는 기능을 사용하면 문제를 간단하게 해결하고 시간도 절약할 수 있습니다. 덤으로, 버전 관리의 혜택까지 얻을 수 있으므로 훨씬 실리적이지요. 차이점 보관 디스크를 부모 디스크로부터 만들고, CSUPLOAD 도구를 이용하여 차이점 보관 디스크 이미지 파일을 올릴 때 원격지에 게시된 부모 디스크 이름을 정확히 지정하여 관계를 설정하고, Visual Studio 없이 관리 콘솔 상에서 환경 설정 파일만 편집하면 쉽게 업데이트할 수 있습니다. 만약 여러 벌의 차이점 보관 디스크를 미리 올려 놓았다면 당연히 선택적으로 여러분이 원하는 상태의 이미지를 기준으로 상태를 전환할 수 있으므로 언제나 안정적인 시스템 상태를 유지할 수도 있습니다.

이제부터 작업 과정을 한 단계씩 살펴보기로 하겠습니다.

1. 시작 메뉴의 관리 도구 메뉴를 통하여 Hyper-V 관리자를 실행합니다.

2. 좌측의 서버 이름 트리 항목을 오른쪽 버튼으로 클릭하고, 새로 만들기 – 하드 디스크를 클릭하여 마법사를 시작합니다.

3. 새 가상 하드 디스크 마법사가 나타나면 다음 버튼을 클릭하여 소개 페이지를 넘깁니다.

4. 아래와 같이 화면이 나타나면 차이점 보관 디스크 항목을 클릭한 후 다음 버튼을 클릭합니다.

5. 차이점 보관 디스크를 저장할 디렉터리 경로와 파일 이름을 아래 화면과 같이 설정하고 다음 버튼을 클릭합니다. 나중에 CSUPLOAD 도구를 이용하여 파일을 올릴 것을 감안하여 찾아보기 쉬운 경로에 파일을 만들어 둡니다.

6. 디스크 설정 단계에서 부모 가상 하드 디스크를 선택합니다. Step 1에서 만들었던 가상 하드 디스크 파일의 경로를 확인하여 그 경로를 찾아보기 버튼을 클릭하여 지정합니다.

7. 설정한 내용이 정확히 지정되었는지 다시 확인한 후 마침 버튼을 클릭합니다.

8. 기존의 부모 하드 디스크와 연결된 가상 PC의 항목을 트리 뷰에서 선택합니다. 작업을 계속하기 위해서는 해당 가상 PC가 종료되어야 합니다. 실행 중인 경우 가상 PC 내의 운영 체제에서 시스템 종료 기능을 사용하여 안전하게 종료합니다. 종료한 후 가상 PC 속성을 엽니다.

9. 아래와 같이 IDE Controller 0 항목에 연결된 하드 디스크를 기존의 부모 디스크 대신 7단계에서 확정한 차이점 보관 디스크 파일의 경로를 대신 지정하고 확인 버튼을 클릭합니다. 차이점 보관 디스크 내의 설정에 따라 부모 디스크의 내용을 기반으로 나머지 모든 내용은 차이점 디스크에 기록됩니다.

10. 다시 가상 PC를 시작합니다. 해당 가상 PC 항목을 더블 클릭하여 제어 창을 열거나 트리 뷰에서 가상 PC 항목을 오른쪽 버튼으로 클릭하고 연결 버튼을 눌러서 창을 연 다음 도구 모음의 시작 버튼을 클릭합니다.

11. 아래와 같이 로그인 화면이 나타나면 관리자로 로그인합니다.

12. 지금부터는 실제로 밖에서 알아보기 쉬운 차이점을 만들기 위한 작업이므로 여러분의 취향대로 작업을 진행해도 무방합니다. 여기서는 IIS 웹 사이트 기본 페이지에 등장하는 이미지를 수정하여 원격에서 쉽게 업데이트 여부를 파악할 수 있도록 해볼 것입니다. 이를 위하여 가상 운영 체제 내에서 시작 – 모든 프로그램 – 보조프로그램의 그림판을 클릭합니다.

13. 그림판에서 파일 열기 기능을 이용하여 C:\INETPUB\WWWROOT\WELCOME.PNG 파일을 엽니다.

14. 그림판의 도구 리본 메뉴에서 텍스트 항목을 선택하고, 잘 보이는 곳에 텍스트를 새로 써넣습니다.

15. 제목 표시줄의 제일 좌측에 있는 디스켓 아이콘을 클릭하여 저장합니다.

16. 이제 차이점 보관 디스크를 출판하기 위해서 시스템을 다시 봉인해야 합니다. 시작 메뉴의 프로그램 및 파일 검색 입력란에서 아래의 명령어를 입력한 후 Enter 키를 누릅니다.

%WINDIR%\SYSTEM32\SYSPREP\SYSPREP.EXE

그리고 시스템 준비 도구 대화 상자에서 아래 그림처럼 설정합니다.

17. 시스템이 종료되면 이제 차이점 보관 디스크가 완성됩니다. 이제 이 파일을 CSUPLOAD 도구를 이용하여 올릴 차례입니다.

18. 시작 – 모든 프로그램 – Windows Azure SDK v1.3 – Windows Azure SDK Command Prompt를 선택하여 명령줄 창을 시작합니다.

19. 아래와 같이 명령어를 입력합니다.

csupload Add-VMImage -Connection "SubscriptionId=<YOUR-SUBSCRIPTION-ID>; CertificateThumbprint=<YOUR-CERTIFICATE-THUMBPRINT>; ServiceManagementEndpoint=https://management.core.windows.net/" -Description "<YOUR-VHD-DESCRIPTION>" -LiteralPath "<PATH-TO-VHD-FILE>" -Name <FILE-NAME-OF-VHD>

  • <YOUR-SUBSCRIPTION-ID>: 이전에 획득한 Subscription ID 값을 이곳에 붙여넣습니다.
  • <YOUR-CERTIFICATE-THUMBPRINT>: 이전에 획득한 손도장 값을 이곳에 붙여넣습니다. 단, 이 때 형식은 연속된 형태의 띄어쓰기없는 16진수 값이어야 합니다.
  • <YOUR-VHD-DESCRIPTION>: 업로드한 VHD 파일을 나중에 Portal Site에서 찾아볼 때 식별할 수 있는 설명 문자열을 이곳에 지정합니다.
  • <PATH-TO-VHD-FILE>: 업로드할 차이점 보관 디스크 파일의 경로를 지정합니다.
  • <FILE-NAME-OF-VHD>: 업로드하고 난 이후 Portal Site에서 사용할 VHD 파일의 이름을 지정합니다. 영어로 짧게 지정하는 것이 필요하고 확장자 VHD를 정확히 붙여주는 것이 필요합니다.

이렇게 완성된 명령어를 클립보드에 복사하여 명령 프롬프트 창에서 오른쪽 버튼을 클릭한 후 붙여넣기 항목을 클릭하면 간편하게 명령어를 콘솔에 입력할 수 있습니다. 아래는 명령어의 사용 예시입니다.

csupload Add-VMImage -Connection "SubscriptionId=417bb132-f6f0-e9a8-8e2d-a07bcd2ae122; CertificateThumbprint=93b1a5bf0764c0f4bc68b393b3811a7903d5bbd5; ServiceManagementEndpoint=https://management.core.windows.net/" -Description "Differencing image Windows Server 2008 R2" -LiteralPath "C:\VHD\diffimage.vhd" -Name diffimage.vhd

명령어를 실행하면 아래와 같이 작업이 진행될 것입니다.

20. VHD 유효성 검사 도구 안내 창이 중간에 나타날 수 있으며 이 때 계속 진행하도록 허용하고, 자동 실행 대화 상자가 이어서 나타나면 역시 닫습니다. 모든 과정이 완료될 때 까지 기다립니다.

21. 이제 차이점 보관 디스크의 종속성을 설정하여 부모 디스크와의 관계를 명시해야 합니다. CSUPLOAD 도구를 한 번 더 실행하는데 이번에는 다음과 같이 명령어를 입력합니다.

csupload Set-Parent -Connection "SubscriptionId=<YOUR-SUBSCRIPTION-ID>; CertificateThumbprint=<YOUR-CERTIFICATE-THUMBPRINT>; ServiceManagementEndpoint=https://management.core.windows.net/" -Child <YOUR-DIFF-VHD-NAME> -Parent <YOUR-PARENT-VHD-NAME>

  • <YOUR-SUBSCRIPTION-ID>: 이전에 획득한 Subscription ID 값을 이곳에 붙여넣습니다.
  • <YOUR-CERTIFICATE-THUMBPRINT>: 이전에 획득한 손도장 값을 이곳에 붙여넣습니다. 단, 이 때 형식은 연속된 형태의 띄어쓰기없는 16진수 값이어야 합니다.
  • <YOUR-VHD-DIFF-VHD-NAME>: 업로드한 차이점 보관 디스크의 서버 상의 이름을 지정합니다.
  • <YOUR-PARENT-VHD-NAME>: 업로드한 원본 디스크의 서버 상의 이름을 지정합니다.

이렇게 완성된 명령어를 클립보드에 복사하여 명령 프롬프트 창에서 오른쪽 버튼을 클릭한 후 붙여넣기 항목을 클릭하면 간편하게 명령어를 콘솔에 입력할 수 있습니다. 아래는 명령어의 사용 예시입니다.

csupload Set-Parent -Connection " SubscriptionId=417bb132-f6f0-e9a8-8e2d-a07bcd2ae122; CertificateThumbprint=93b1a5bf0764c0f4bc68b393b3811a7903d5bbd5; ServiceManagementEndpoint=https://management.core.windows.net/" -Child diffimage.vhd -Parent baseimage.vhd

22. 이제 관리 포탈 사이트로 되돌아가서 관계 설정이 아래 그림과 같이 정확히 이루어졌는지 확인합니다. 정상적으로 완료되었다면 BASEIMAGE.VHD 파일 항목 아래에 우리가 이번 시간에 업로드한 DIFFIMAGE.VHD 파일이 속해 있는 형태로 표시될 것입니다.

23. 이제 환경 설정 파일을 업데이트하여 새 가상 하드 디스크로 실행 중인 인스턴스들이 고쳐질 수 있도록 해야 합니다. 이전 단계와는 달리 이 작업을 위하여 Visual Studio는 별도로 필요하지 않습니다. 업데이트하려는 VM Role을 아래 그림과 같이 선택하고 Configure 버튼을 클릭합니다.

24. Configure Deployment 창이 나타나면, Edit Current Configuration 라디오 버튼을 클릭하고, OSIMAGE XML 요소의 HREF 값을 이전 단계에서 올린 차이점 보관 디스크 파일의 이름으로 바꿉니다. 그리고 OK 버튼을 클릭하여 설정을 저장합니다.

25. 이제 아래와 같이 업데이트 진행 상황이 표시될 것입니다. Ready로 표시될 때 까지 기다립니다.

26. 이제 웹 서버에 새로운 이미지의 내용이 보이는지 확인하기 위하여 해당 웹 사이트 주소로 브라우저를 열어봅니다. 아래와 같이 이미지에 수정한 내용이 잘 보인다면 성공적으로 차이점 보관 디스크가 작동하고 있는 것입니다.

마무리하며

총 6번의 연재를 통하여 Platform Training Kit의 Virtual Machine Role에 관한 내용을 모두 살펴보았습니다. 이번 내용은 Windows Azure Cafe에도 같이 게시될 예정이며 단일 문서로 통합된 파일도 제공할 예정이므로 많은 관심 바랍니다. 향후 Virtual Machine Role에서 사용할 수 있는 OS는 Windows Server 2008과 2008 R2 64비트 버전 외에도 32비트 버전의 Windows Server 2008과 Windows Server 2003에서도 지원될 예정이라고하니 기대하셔도 좋을 것 같습니다. 이들 OS에 대한 Additional Software는 2011년중에 개발되어 배포될 예정임이 알려져 있습니다.

감사합니다. :-)

Windows Azure VM Role 미리보기 #5

Cloud 2011. 5. 9. 02:12 Posted by 알 수 없는 사용자

Web Role과 Worker Role, 그리고 지금 설명하는 VM Role 모두 이번 Windows Azure Update에서 원격 데스크톱 연결을 사용할 수 있도록 업데이트되었습니다. 원격 데스크톱을 사용할 수 있게 된 일 자체는 고무적이지만 한 가지 정확히 알고 넘어가야 할 것이 있는데, 우리가 흔히 알고 사용하는 개인용 PC에 대한 원격 제어, 관리 목적을 초월해서 사용하는 항상 사용 가능한 서버나 워크스테이션에서의 원격 제어 및 응용프로그램 호스팅과는 목적과 기능에 있어서 근본적으로 차이가 있다는 점입니다.

이전 Step에서 보았던 것처럼 원격 제어를 위한 계정은 하나만 생성할 수 있고 그 계정 역시 다른 추가 업데이트없이 계속 서비스를 구동한다면 가능한한 유효 기간을 짧게 설정하여 불필요한 노출 영역이 발생하지 않도록 하는 것이 좋다고 하였습니다. 즉, Fabric Agent를 통하여 Virtual Machine을 구동하면서 얘기치않게 발생한 문제를 수정하고 서비스를 정상화할 수 있도록 하거나, 갑자기 들이닥친 문제를 해결하기 위한 정도로만 사용할 수 있는 것이지 항상 사용할 수 있도록 열려있는 서비스는 아니라는 점입니다. 물론 더 이상적인 시나리오는, 이러한 원격 제어 서비스를 일절 사용하지 않더라도 여러분이 게시한 응용프로그램 전체가 완벽하게 작동하는 상태를 유지하는 것이 되겠습니다.

VM Role에 연결하는 방법은 비교적 단순합니다.

1. 접속하려는 인스턴스의 상태가 Ready로 표시된 상태에서만 사용이 가능합니다. 아래와 같이 Ready로 표시된 Instance를 클릭하고 상단의 Remote Access 리본 섹션에서 Connect 버튼을 클릭합니다.

2. RDP 스크립트 파일이 관리 API에 의하여 자동으로 작성되어 다운로드할 수 있도록 준비됩니다. 열기 버튼을 클릭합니다. (Internet Explorer 9의 경우 브라우저 창 하단의 메시지 패널에 있는 버튼을 조작하면 됩니다.)

3. 파일을 열려고 시도하면 아래와 같이 보안 경고 대화 상자가 나타날 수 있습니다. 허용하도록 선택합니다.

4. 의도하지 않은 동작을 포함하여 보안 상의 위험을 초래할 수도 있다는 경고 메시지 박스가 원격 데스크톱 연결 프로그램에 의하여 표시됩니다. 원격 컴퓨터의 도메인 주소가 정확히 cloudapp.net을 가리키는지 확인하고, 연결 버튼을 클릭합니다. (유익한 정보 - cloudapp.net은 Windows Azure에서 실행되는 모든 Role들의 도메인 주소입니다.)

5. 원격 데스크톱에 연결하기 위하여 필요한 사용자 ID와 비밀 번호를 제공해야 하는데, 여기에서 지정하는 정보는 이전에 프로젝트를 게시할 때 원격 데스크톱 설정 대화 상자에서 지정했던 ID와 비밀 번호입니다. 정확히 입력하고 확인 버튼을 클릭합니다.

6. 연결 중임을 표시하는 진행률 표시기가 나타납니다. 잠시 기다립니다.

7. 인증서가 온전하게 서명된 것이 아니라는 것을 알리는 대화 상자가 나타납니다. 예 버튼을 클릭하여 계속 연결을 진행합니다.

8. 연결이 완료되면 아래 그림과 같이 VM Role의 Instance를 제어할 수 있도록 준비됩니다.

여러분의 응용프로그램 상태와는 관계없이 특정 VM에서는 처음 설치된 상태에서 나타나는 서버 환경 설정 마법사가 보일 수도 있고, 또 어떤 경우에는 평가판 라이선스임을 알리는 문구가 바탕화면에 등장할 수도 있지만 서비스에는 일말의 영향을 끼치지 않습니다. 시스템에 문제가 발생할 소지가 있는 경우 Fabric Controller는 여러분의 VM을 다시 재생 처리하여 시스템을 유지할 것입니다.

9. 만약, 연결을 하기 위하여 필요한 ID와 비밀 번호가 기억나지 않거나, 유효 기간이 다되었지만 다시 사용하기 위하여 계정 유효 기간을 연장해야 할 필요가 있다면 1단계 화면으로 돌아가서 해당 Instance를 클릭한 후 Enabled 체크 상자 아래의 User Access 버튼을 클릭합니다.

10. 아래와 같이 대화 상자가 나타나면 사용자 ID와 비밀 번호, 유효 기간을 다시 지정합니다.

다음 시간에는

다음 시간에는 VM Role 제작에 사용된 하드 디스크 이미지 파일을 업데이트하는 방법을 단계별로 실습해보는 내용을 게시하도록 하겠습니다. 같이 읽어보셨으면 하는 글로, 제 블로그의 [Software Development/Windows Azure] - Windows Azure VM의 파일 시스템 구조 글을 추천합니다. 감사합니다.

Windows Azure VM Role 미리보기 #4

Cloud 2011. 5. 9. 02:11 Posted by 알 수 없는 사용자

이제 긴 과정이 끝났고, 여러분이 작성한 Virtual Machine Role이 Windows Azure에서 잘 실행되는지 확인할 수 있도록 Visual Studio를 이용하여 서비스 모델을 만들 차례입니다. Amazone Elastic Cloud Computing 서비스와 가장 큰 차이는 바로 이 부분입니다.

Amazone Elastic Cloud Computing은 Amazon Machine Image (AMI)를 관리 도구 상에서 생성하도록 가이드를 하지만, Windows Azure Platform에서는 Visual Studio를 이용하는 것이 Standard입니다. 단지 VM Role만을 게시하기 위하여 사용할 수도 있지만 좀 더 정확히 표현하면 개발자들이 개발한 Cloud Application과 상호작용하도록 VM Role을 만드는 것이 Virtual Machine Role 본연의 역할이라고 할 수 있겠습니다.

Step 3에서 설명했던 Visual Studio 프로젝트 생성 과정에서 만든 클라우드 프로젝트를 열어놓고 진행하겠습니다.

1. 아래 그림과 같이 솔루션 탐색기에서 지구본 모양의 아이콘이 그려진 프로젝트 항목 아래의 역할 폴더 (Roles 폴더)를 오른쪽 버튼으로 클릭하면 팝업 메뉴에 New Virtual Machine Role 메뉴가 나타납니다. 이 항목을 클릭합니다.

(주의 사항) VM Role은 이 글을 작성하는 현 시점에서 베타 프로그램입니다. Visual Studio Tools for Windows Azure에서 위 기능을 활성화시키는 것에 관련한 지침이 베타 프로그램에 참여하는 경우 별도로 안내되므로 반드시 VM Role 베타 프로그램을 Windows Azure Portal (http://windows.azure.com)에서 신청해 주십시오.

2. 새 VM Role 생성을 위한 창이 아래 그림과 같이 나타납니다. Virtual Hard Disk 탭이 선택된 상태에서 지난번 Step 3에서 만든 사용자 계정 정보를 사용하여 게시한 하드 디스크 이미지 정보를 확인합니다. 정상적으로 작업을 수행했다면 아래와 같이 하드 디스크 이미지 파일의 목록이 나타날 것입니다.

3. 지난번 Step 2에서 진행했던 것 처럼, 우리는 가상 하드 디스크 이미지 내에 설치된 Windows 운영 체제에서 IIS를 사용하여 간단한 웹 사이트를 호스팅하기로 하였으므로, 80번 TCP 포트를 열도록 끝점을 구성해야 합니다. Endpoints 탭을 클릭하고, Add Endpoint 버튼을 클릭한 후, 아래 그림과 같이 항목을 입력하여 설정을 추가합니다.

4. 이제 VM Role을 출판할 차례입니다. 솔루션 탐색기로 다시 이동하여 이번에는 클라우드 프로젝트 항목을 오른쪽 버튼으로 클릭하여 게시 메뉴를 클릭합니다. 그러면 아래와 같이 클라우드 프로젝트 게시 대화 상자가 나타나게 됩니다. 여기서 Configure Remote Desktop connections 링크를 클릭합니다.

5. 아래 그림에서 Enable connections for all roles 항목을 클릭합니다. 그리고 첫 번째 콤보 박스를 클릭하여 나타나는 목록들 중에서 새 인증서 생성을 위한 항목을 클릭하여 원격 데스크톱 인증에서 사용할 새로운 인증서를 만듭니다.

6. 아래와 같이 인증서를 구분할 수 있는 별칭을 입력합니다.

7. 이제 원격 제어를 위하여 생성할 관리자 계정의 ID와 비밀 번호, 그리고 유효 기간을 지정할 차례입니다. 표준 Windows System에서 제안하는 관리자 계정 이름인 Administrator와 같이 잘 알려진 이름보다는 고유의 이름을 사용하는 것이 좋습니다. 그리고 비밀 번호 역시 일정 수준 이상의 난이도를 만족해야 합니다. 기간은 가능하면 짧게 설정하여 노출 영역이 최대한 덜 발생하도록 만드는 것이 좋습니다.

8. (매우 중요) 창을 닫기 전에, 해당 인증서 선택란 옆의 View 버튼을 클릭한 후, 인증서 대화 상자에서 자세히 탭을 클릭하고 파일로 복사 버튼을 클릭합니다. 인증서 내보내기 마법사가 나타나면, 개인 키를 포함하여 내보내도록 정확히 옵션을 선택하고 찾기 쉬운 위치에 개인 키를 포함하여 인증서 사본을 저장합니다. 이 때 내보내는 인증서를 나중에 Windows Azure Portal의 Remote Desktop 섹션에 등록해야 하므로 잘 보관합니다.

9. 인증서를 처음 등록하는 것이므로 자동 등록대신 패키지 파일만 만들어 수동으로 등록하는 것으로 가정하겠습니다. 아래 그림과 같이 Create Service Package Only 라디오 버튼을 클릭하고 확인 버튼을 클릭합니다.

10. (매우 중요) 잠시 기다리면 폴더 창 하나가 나타나는데, 전체 경로를 잘 보관해 놓습니다.

11. 이제 Windows Azure Portal (http://windows.azure.com)으로 이동하여 로그인한 후 아래 그림과 같이 New Hosted Service 리본 버튼 항목을 클릭합니다.

12. Create a new Hosted Service 대화 상자가 나타나면 아래 그림과 같이 필요한 항목들을 입력합니다. Affinity Group이나 Region에 관한 설정은 기본 설정을 사용하여도 무방하며, Do not deploy 라디오 버튼을 우선 체크합니다. 원격 데스크톱을 위한 인증서 등록이 우선 이루어져야 하기 때문입니다.

13. 아래 그림과 같이, Hosted Services 항목을 선택하여 나타나는 리스트 뷰에서 서비스 항목 아래의 Certificates 폴더를 클릭하면 리본 메뉴가 아래 그림처럼 바뀝니다. 여기서 Add Certificate 버튼을 클릭합니다.

14. 개인 키를 포함한 인증서를 이제 업로드할 차례입니다. 인증서 내보내기 마법사를 통하여 만든 개인 인증서 파일의 경로를 지정하고, 인증서 비밀 번호를 입력한 후 Create 버튼을 클릭합니다.

15. 이제 패키지 파일을 배포할 수 있게 모든 준비가 끝이 났습니다. Certificates 항목 위의 Hosted Service 항목을 아래 그림처럼 선택한 후, 상단 리본 메뉴에서 New Production Deployment 버튼을 클릭합니다.

16. 나중에 배포 단위를 확인할 수 있도록 알아보기 쉬운 Deployment Name을 지정하고, CSPKG 파일과 CSCFG 파일의 경로를 지정합니다. 이 2개의 파일은 10단계에서 나타난 폴더 창의 전체 경로로 이동하면 찾을 수 있습니다. Deployment Name에 한국어를 사용해도 됩니다.

17. 작업이 시작되면 아래와 같이 진행 상태가 표시됩니다.

18. 부팅까지 모두 완료된다면 아래 그림과 같이 상태가 나타납니다.

19. 만들어진 Virtual Machine Role이 정확히 동작하는지 확인하기 위하여 Deployment 항목을 클릭하면 나타나는 우측의 Properties 패널 상의 DNS name을 확인하고 해당 주소를 브라우저에 넣어봅니다.

20. 아래와 같이 IIS 7 환영 웹 페이지가 나타나면 여러분은 Windows Azure 환경에 성공적으로 여러분만의 가상 서버를 발행한 것입니다. 이제 사용량 추세에 따라서 여러분이 만든 가상 하드 디스크를 기반으로 인스턴스가 늘어나거나 줄어들게 될 것입니다.

다음 시간에는

다음 시간에는 VM Role을 원격에서 제어하고 관리하는 방법을 소개하겠습니다. VM Role은 보편적으로 Windows Server를 관리하기 위하여 널리 사용하는 Remote Desktop을 지원하고, 부수적으로는 PowerShell CMDLET을 이용하여 관리할 수도 있습니다.

Windows Azure VM Role 미리보기 #3

Cloud 2011. 5. 9. 02:10 Posted by 알 수 없는 사용자

이제 VHD 파일을 Windows Azure 환경에 등록하는 작업을 수행할 차례입니다. Amazon Web Service와 Windows Azure에서 가장 차이가 나는 부분은 바로 이 부분입니다. Amazon Web Service에서는 관리 도구 수준에서 직접 서버 인스턴스를 생성하고 관리하는 것을 기준으로 하였지만, Windows Azure 환경에서는 PaaS의 특성을 잃어버리지 않기 위하여 모든 것을 Application에 Tie-up하여 관리하는 것을 기준으로 합니다.

아직까지 VM Role을 생성하기 위해서는 Visual Studio Tools for Windows Azure와 함께 Visual Studio 2010을 이용하는 것이 필수적입니다. 그러나 조만간, 이러한 VM Role만을 전문적으로 생성하고 관리할 수 있는, Visual Studio 외의 별도 도구가 만들어질 것도 기대해 볼 수 있을 것입니다. 사실 Visual Studio는 기본적인 인터페이스를 제공하기 위한 수단으로 실질적으로 VM Role의 생성에 관여하는 모든 사항들은 Windows Azure SDK 안에 이미 포함되어있습니다.

Windows Azure에 VHD 파일을 등록하기 위해서는 Management API에 접근할 수 있어야 하는데, 이 때 Public Key를 포함하는 인증서가 해당 Subscription 계정 내에 미리 등록되어있어야 합니다.

처음 인증서를 등록한다고 가정하고, Step 4에서 사용할 Visual Studio 프로젝트를 미리 생성하는 작업을 수행하는 것으로 설명을 시작하겠습니다.

1. 시작 - 모든 프로그램 - Microsoft Visual Studio 2010 그룹에서 Microsoft Visual Studio 2010을 선택합니다.

2. 잠시 기다리면 Visual Studio 2010 초기 화면이 나타납니다. 여기서 새 프로젝트 링크를 클릭하거나, 파일 - 새 프로젝트를 선택합니다. 새 프로젝트 대화 상자가 나타나면 좌측의 항목들 중에서 Visual Basic - 또는 - Visual C# 항목 아래의 클라우드 항목을 클릭합니다.

이 때 다음 화면과 같이 나타나는지 확인합니다. Windows Azure Project를 선택하고, Name에 여러분이 원하는 프로젝트 이름을 띄어쓰기 없이, Camel Case 표기법을 준수하여 이름을 정합니다. 예를 들어, 작명하려는 이름이 "My Windows Azure VM Role"이라고 한다면 "MyWindowsAzureVMRole"과 같이 정의할 수 있습니다. 이름을 정하고 확인 버튼을 클릭합니다.

3. 아래 나타나는 것과 같이 포함할 하위 프로젝트를 정하는 대화 상자가 나타나면 따로 프로젝트를 추가하지 말고 확인 버튼을 클릭합니다.

(중요) 만약 위와 같은 대화 상자 대신 아래 나타나는 것 처럼 안내 웹 페이지가 나타난다면 Windows Azure Tools for Visual Studio가 정확히 설치된 것이 아니므로 Visual Studio를 종료하고 다시 Windows Azure Tools의 설치를 시작해야 합니다.

4. 솔루션 탐색기에서 파란색 지구본 모양의 아이콘이 그려진 항목을 오른쪽 버튼으로 클릭하고 "게시" 메뉴를 클릭하면 아래와 같이 대화 상자가 나타납니다. 여기서 Deploy your Windows Azure Project to Windows Azure 라디오 버튼을 클릭하고, Credentials 콤보 상자를 클릭한 후, 나타나는 목록에서 <Add...> 항목을 클릭합니다.

5. 그 다음 인증서 관리 대화 상자가 아래와 같이 나타납니다. Create or select an existing certificate for authentication 콤보 상자를 클릭하면 현재 시스템에 현재 로그인 한 사용자 계정 명의로 등록된 개인용 인증서들이 열거됩니다. 등록된 개인용 인증서가 없는 경우, <Create...> 항목을 클릭합니다.

6. 인증서를 새로 만들어야 하는 경우 인증서의 이름을 아래 대화 상자에서처럼 새로 지정합니다.

7. 등록하려는 인증서 - 또는 - 새로 만든 인증서를 선택하고, View 버튼을 클릭합니다. 그러면 아래와 같이 대화 상자가 새로 나타납니다. 여기서 자세히 탭을 클릭합니다. 그리고 손도장 항목의 값을 아래에서 복사합니다.

(중요) 이 단계에서 복사한 손도장 값은 CSUPLOAD 도구에서 꼭 필요한 값이므로 별도로 메모해 놓습니다. 나중에 CSUPLOAD 도구에 손도장 값을 지정할 때에는 두 자리씩 끊어져있는 표기가 아닌 연속된 표기로 제공해야 합니다. 값을 확인하였으면 확인 버튼을 눌러 대화 상자를 닫습니다.

원본: 93 b1 a5 bf 07 64 c0 f4 bc 68 b3 93 b3 81 1a 79 03 d5 bb d5
실제: 93b1a5bf0764c0f4bc68b393b3811a7903d5bbd5

8. Copy the full path 링크를 아래 그림에서 클릭합니다.

9. 아래 그림과 같이 대화 상자가 나타나는지 확인합니다.

10. 이제 Windows Azure Portal에 가서 직접 공개 키 기반의 인증서를 등록할 수 있도록 클립 보드에 임시 인증서의 전체 경로가 복사되었습니다. 대화 상자에서 Windows Azure Portal 링크를 클릭하거나 http://windows.azure.com/ 으로 이동하여 서비스 포털에 로그인합니다.

(중요) 이 작업이 수행되는 동안 디스크 정리 - 또는 - 시스템 최적화 유틸리티가 구동되지 않도록 유의합니다. 임시 경로에 업로드할 파일이 만들어졌기 때문에 이러한 유틸리티들이 해당 파일을 사용자의 동의 없이 임의로 삭제하는 일이 있을 수 있습니다.

11. Windows Azure 관리 콘솔 웹 사이트에 접속하여, 좌측 하단의 항목들 중 "Hosted Services, Storage Accounts & CDN"을 클릭하고, 메뉴 모음 바로 위의 트리 뷰 (화면 좌측)에서 Management Certificates 폴더를 클릭한 후, 상단 리본 메뉴에서 Add Certificate 버튼을 클릭합니다.

12. Choose a Subscription에 VM Role을 개설하려는 정확한 Subscription이 선택되었는지 확인하고, Browse 버튼을 클릭하여 방금 9단계에서 복사한 파일의 경로를 붙여넣습니다. 작업이 끝나면 Done 버튼을 클릭하여 공개키를 포함한 인증서를 업로드합니다.

13. 새로 업로드한 인증서 항목을 클릭하면 우측의 Properties 패널에 열거되는 항목들 중에서 Subscription ID 속성을 찾을 수 있습니다. 이 값 전체를 복사합니다.

(중요) 이 값은 CSUPLOAD 도구에서도 사용되므로 별도로 잘 메모해두는 것이 필요합니다.

14. 다시 Windows Azure Project Management Authentication 대화 상자로 이동하여 Copy the subscription ID for your account from the Windows Azure Portal 항목 아래의 텍스트 상자에 Subscription ID 값을 붙여넣습니다.

15. 알아보기 쉽도록 Name these credentials 항목 바로 아래에 별칭을 하나 지정하고 OK 버튼을 클릭하여 새 접속 정보를 등록합니다.

16. Close - Cancel 버튼 순으로 클릭하여 게시 과정을 취소합니다. 지금 등록한 인증서는 나중에 다시 사용할 수 있으므로 걱정하지 않아도 됩니다.

17. 호스트 컴퓨터에 Windows Azure SDK가 설치되어있는 것을 확인합니다. 그 다음 시작 - 모든 프로그램 - Windows Azure SDK v1.3 그룹의 Windows Azure SDK Command Prompt 항목을 클릭하여 명령 프롬프트를 엽니다.

18. 아래와 같은 형태로 명령어를 입력합니다. 굵게 표시하고 밑줄로 강조한 항목들은 각각 치환되어야 하는 값으로 설명을 참조합니다. 편하게 명령어를 입력할 수 있도록 메모장에 아래의 명령어를 복사해놓고 해당되는 값으로 문자열을 치환하여 명령어를 완성합니다.

csupload Add-VMImage -Connection "SubscriptionId=<YOUR-SUBSCRIPTION-ID>; CertificateThumbprint=<YOUR-CERTIFICATE-THUMBPRINT>; ServiceManagementEndpoint=https://management.core.windows.net/" -Description "<YOUR-VHD-DESCRIPTION>" -LiteralPath "<PATH-TO-VHD-FILE>" -Name <FILE-NAME-OF-VHD>

  • <YOUR-SUBSCRIPTION-ID>: 12단계에서 획득한 Subscription ID 값을 이곳에 붙여넣습니다.
  • <YOUR-CERTIFICATE-THUMBPRINT>: 7단계에서 획득한 손도장 값을 이곳에 붙여넣습니다. 단, 이 때 형식은 연속된 형태의 띄어쓰기없는 16진수 값이어야 합니다.
  • <YOUR-VHD-DESCRIPTION>: 업로드한 VHD 파일을 나중에 Portal Site에서 찾아볼 때 식별할 수 있는 설명 문자열을 이곳에 지정합니다.
  • <PATH-TO-VHD-FILE>: 업로드할 VHD 파일의 경로를 지정합니다. 이 값은 첫 강좌의 6단계에서 마법사를 통하여 VHD 파일을 생성할 당시의 경로입니다.
  • <FILE-NAME-OF-VHD>: 업로드하고 난 이후 Portal Site에서 사용할 VHD 파일의 이름을 지정합니다. 영어로 짧게 지정하는 것이 필요하고 확장자 VHD를 정확히 붙여주는 것이 필요합니다.

이렇게 완성된 명령어를 클립보드에 복사하여 명령 프롬프트 창에서 오른쪽 버튼을 클릭한 후 붙여넣기 항목을 클릭하면 간편하게 명령어를 콘솔에 입력할 수 있습니다. 아래는 명령어의 사용 예시입니다.

csupload Add-VMImage -Connection "SubscriptionId=417bb132-f6f0-e9a8-8e2d-a07bcd2ae122; CertificateThumbprint=93b1a5bf0764c0f4bc68b393b3811a7903d5bbd5; ServiceManagementEndpoint=https://management.core.windows.net/" -Description "Base image Windows Server 2008 R2" -LiteralPath "C:\VHD\baseimage.vhd" -Name baseimage.vhd

19. 명령어를 실행하려고 하면 아래와 같이 나타납니다. VHD 파일을 직접 만들지 않고 외부에서 다운로드한 경우 악성 코드 등이 포함되어있을 가능성이 있으므로 주의를 바란다는 내용이므로 염두에 둡니다. VHD 파일이 시스템에 마운트될 경우 자동 실행 등에 의하여 악성 코드가 의도하지않게 실행될 가능성이 있기 때문입니다.

20. 검사 과정이 아래와 같이 진행되는 것을 확인합니다.

21. 업로드 중이면 아래와 같이 업로드 진행률이 표시됩니다.

22. 업로드 중인 항목이 있을 때 Portal 사이트 (http://windows.azure.com) 에 방문하면 아래 그림과 같이 Pending 이라는 상태가 나타납니다.

23. 모든 과정이 끝나면 다음과 같이 작업 결과가 콘솔에 나타납니다. exit 명령을 사용하거나 콘솔 창을 닫아도 무방합니다.

24. Windows Azure Portal (http://windows.azure.com)에서도 결과를 확인할 수 있습니다. 아래와 같이 Commited 라고 상태가 나타나면 정상적으로 처리된 것입니다.

다음 시간에는

다음 시간에는 오늘 업로드한 VHD 파일을 이용하여 실제로 Windows Azure에 VM Role을 게시할 수 있는지 그 과정을 살펴보도록 하겠습니다. 다음 시간의 내용을 실습하기 위하여 Visual Studio 2010이 필요합니다. Visual Studio 2010에 관한 제품 정보는 http://msdn.microsoft.com/vstudio 에서 확인 가능하며 트라이얼 버전을 다운로드받을 수 있습니다.

감사합니다.

Windows Azure VM Role 미리보기 #2

Cloud 2011. 5. 9. 02:09 Posted by 알 수 없는 사용자

지난 시간에 이어서 오늘은 Windows Azure에서 사용할 수 있는 VM Role을 구성하기 위하여 어떤 작업을 해야 하는지 실제 VM Role 구성 방법을 살펴보는 글을 올립니다.

Virtual Machine 안에 정상적으로 Windows Server 2008 R2를 설치했다면, 이제부터는 VM Role로 변환하기 위하여 필요한 여러가지 설정을 적용하고, 추가 구성 요소를 설치할 차례입니다. 그리고 당연한 이야기이지만 Windows Update - 또는 - Microsoft Update를 통하여 필요한 모든 업그레이드와 보안 패치, 핫 픽스 등을 실제 배포전까지 가능한한 모두 포함하는 것이 바람직합니다.

1. VM Role로 배포하기 위하여 만든 가상 서버 인스턴스에 관리자로 로그인하여 바탕화면이 나타날 때 까지 기다립니다.

2. 시작 - 모든 프로그램 - 관리 도구 - 서버 관리자 순으로 항목을 클릭하면 아래 그림과 같이 콘솔 화면이 나타날 것입니다. 콘솔 화면 좌측의 트리 뷰에서 역할 항목을 선택하면 역할 구성 내역 보고서가 전면에 나타납니다. 이 화면에서 역할 추가 링크를 클릭하여 마법사를 시작하고, 첫 소개 화면에서 다음 버튼을 클릭합니다.

3. 서버 역할 선택 단계에서 여러분이 원하는 기능을 구성할 수 있습니다. 여기서는 웹 서버 역할만을 사용하도록, 웹 서버 (IIS) 앞의 확인 상자에 체크하고 다음 버튼을 클릭하겠습니다.

4. 웹 서버 역할을 위하여 필요한 준비 사항과 관련 정보를 설명하는 페이지가 나타납니다. 다음 버튼을 클릭합니다.

5. 역할 서비스 선택 대화 상자에서 필요한 구성 요소들을 선택합니다. 기본 기능만을 테스트해볼 것이므로 다른 추가 설정 없이 다음 버튼을 클릭합니다.

6. 이제 이 가상 서버에 웹 서버 역할을 추가할 준비가 다되었음을 확인하는 페이지가 나타납니다. 웹 서버 역할이 포함되어있는지 다시 한 번 확인하고, 설치 버튼을 클릭합니다.

7. 설치가 마무리되면 아래와 같이 완료 보고서가 나타납니다. 마침을 눌러 마법사를 종료합니다.

8. 서버의 역할을 정의하였고, Windows Azure와 상호작용하거나 전형적인 .NET 기반 응용프로그램을 원활하게 호스팅할 수 있게하기 위하여 서버의 기능을 추가해야 합니다. 서버 관리 콘솔의 좌측 트리뷰에 있는 항목들 중 기능 항목을 선택하면 기능 구성 상태 보고서가 나타납니다. 여기서 기능 추가 링크를 클릭하고, 첫 소개 화면에서 다음 버튼을 클릭합니다.

9. (중요한 작업 1) 아래 기능 선택 대화 상자에서, .NET Framework 3.5.1 항목 앞의 체크 상자를 클릭합니다. .NET Framework는 잠시 뒤에 설치할 Windows Azure Integration Component를 위하여 필수적인 기능입니다.

10. 이제 설치할 구성 요소들을 확인하고 설치 버튼을 누릅니다.

11. 설치가 모두 마무리되면 설치 완료 보고서가 아래와 같이 나타납니다. 마침 버튼을 클릭하여 마법사를 완료합니다.

12. (중요한 작업 2) 독립적인 서버 운영 환경과는 달리 윈도 애저 환경에서 서버는 패브릭 관리자의 지시에 맞추어 동작해야 합니다. Windows Update와 Microsoft Update에서 제공하는 자동 업데이트 기능은 시스템의 안정성과 최상의 보안 상태 유지를 위하여 기본적으로 켜져있지만 이러한 규칙을 준수하기 위하여 해당 서비스를 자동으로 실행되지 않도록 수정해야 합니다.

Windows Update - 또는 - Microsoft Update가 자동으로 시스템을 업데이트하지 않도록 하기 위하여 제어판의 Windows Update 아이콘을 더블 클릭합니다. 그러면 아래와 같이 화면이 나타나게 됩니다. 좌측의 링크 모음들 중에서 설정 변경 항목을 클릭합니다.

13. 아래와 같이 화면이 나타나면, 자동으로 업데이트하지 않는 것으로 설정을 변경하고 확인 버튼을 클릭합니다.

14. 이제 시스템은 자동으로 업데이트를 찾거나 자동으로 업데이트를 설치하지 않습니다. 업데이트 확인 링크를 클릭하여 필요한 모든 업데이트의 설치를 계속 진행합니다. 업데이트를 설치하는 과정에서 시스템이 다시 시작될 수 있습니다.

(중요한 작업 3) 여기서 중요한 것은, 시스템을 다시 시작하거나 한 번의 업데이트가 끝난 후 작업을 마치지 마시고, 다시 Windows Update 프로그램에 들어와서, 더 이상 중요한 업데이트가 검색되지 않을 때 까지 설치를 끝내야 합니다.

15. 이제 Windows Azure Integration Component를 설치할 차례입니다. Integration Component는 다른 Virtual Machine Addition과 마찬가지로 ISO 파일로 제공됩니다. 해당 ISO 파일은 Windows Azure SDK 버전 1.3과 함께 배포되며, SDK를 설치한 컴퓨터의 %PROGRAMFILES%Windows Azure SDK\v1.3\iso 디렉터리 아래의 WAVMROLEIC.ISO 파일을 아래 그림에서 소개하는 기능을 이용하여 가상 드라이브에 마운트하여 설치를 진행할 수 있습니다.

16. 게스트 컴퓨터에서 자동 실행 대화 상자가 아래와 같이 나타납니다. 폴더 열기 링크를 선택하면 다음과 같이 파일 목록이 나타납니다. WaIntegrationComponents-x64.msi 파일을 더블 클릭하여 실행합니다.

17. 잠시 후 설치 마법사가 나타납니다. 다음 버튼을 클릭합니다.

18. Integration Component가 시스템을 정확히 제어할 수 있도록 하기 위하여 관리자 계정의 암호를 지정해야 합니다. 암호를 입력한 후 다음 버튼을 클릭합니다.

19. 이제 Integraton Component를 설치할 수 있습니다. 아래 화면에서 설치 버튼을 클릭하여 설치를 계속 진행합니다.

20. 설치 과정 중간에 다음과 같은 하드웨어 장치 설치의 허용 여부를 묻는 대화 상자가 나타날 수 있습니다. 허용하도록 합니다. 이 장치는 Windows Azure Drive의 기능을 위하여 꼭 필요한 구성 요소입니다.

21. 아래와 같이 설치가 진행될 것입니다. 설치는 시스템 수준과 상황에 따라 시간에 차이가 있을 수 있지만 보통 30초 이내에 설치가 완료됩니다.

22. 정상적으로 설치가 완료되면 아래와 같이 완료 안내 페이지가 나타납니다. 마침 버튼을 클릭하여 설치 마법사를 종료합니다.

23. 시스템을 다시 시작해야 함을 안내하는 대화 상자가 나타납니다. 예 버튼을 클릭하여 시스템을 다시 시작합니다.

24. 이제 여러분이 원하는 소프트웨어나 필요한 서비스를 추가적으로 더 설치하고 올바르게 작동하는지 점검합니다. 모든 커스터마이징이 끝나면, 25단계로 이동합니다.

25. (중요 작업 4) 시작 메뉴의 "프로그램 및 파일 검색" 입력 상자 - 또는 - Windows 키 + R키를 눌러 실행 프롬프트 창을 열어 다음과 같이 명령어를 입력합니다. 이 프로그램은 현재 실행 중인 Windows 운영 체제에서 시스템에 관련된 기본 정보들을 제거하고 다른 컴퓨터로 이식할 수 있도록 돕는 시스템 유틸리티입니다.

%WINDIR%\SYSTEM32\SYSPREP\SYSPREP.EXE

26. 아래와 같이 대화 상자가 나타나면 일반화 체크 상자를 클릭하여 선택하고, 시스템을 종료하도록 옵션을 설정합니다. 그 다음 확인 버튼을 클릭합니다.

27. 잠시 후 Virtual Machine이 완전히 Shutdown되고 이제 가상 하드 디스크를 Windows Azure Platform으로 가상 하드 디스크 파일을 업로드할 준비가 끝나게 됩니다.

다음 시간에는

오늘 주제에 이어서 다음 시간에는 VM Role을 실제로 게시하는 방법에 대하여 살펴보도록 하겠습니다. VM Role은 이후에도 살펴볼 예정이지만 하드 디스크 이미지를 제작하는 과정과 함께 실제 서비스 모델은 별도로 Publish해야 한다는 점을 기억해둘 필요가 있습니다.

감사합니다.

Windows Azure VM Role 미리보기 #1

Cloud 2011. 5. 9. 02:08 Posted by 알 수 없는 사용자

시작하기

Windows Azure Virtual Machine Role (이하 VM Role)은 그 동안 많은 개발자들과 IT Pro들에게 관심사였던 최신 기능으로, 2010년 12월부터 본격적인 Beta 서비스가 제공되기 시작하였습니다. VM Role은 Amazon Elastic Cloud Computing (EC2)에서 제공되어오던 Virtual Machine 기반 클라우드의 장점을 Platform as a Service 버전으로 재 해석하여 통합한 Windows Azure 만의 고유한 기능입니다.

이번 Article은 2010년 11월 버전의 Platform Training Kit에서 소개하는 VM Role Deploy 방법을 한글로 자세히 풀이하기 위한 목적으로 작성된 것으로, VM Role에 대하여 구체적으로 학습해볼 수 있는 계기를 마련해보기 위하여 올립니다. 스크린 샷과 자료의 기본 출처는 Platform Training Kit으로 부터 발췌해온 것임을 미리 밝혀둡니다.

라이선스 문제

여러가지 이슈가 있겠지만 무엇보다도 초미의 관심사는 바로 라이선스에 관한 부분일 것입니다. VM Role은 Windows Azure에 맞추어진 OS가 아닌 기존의 On-Premise의 OS를 호스팅하는 것이기 때문에 특히 민감할 수 밖에 없는데요, 의외로 라이선스 문제는 생각하는 것 만큼 복잡하고 어렵지 않습니다. Physical to Virtual (이하 P2V)를 수행하기 위하여 사용했던 원본 OS의 라이선스 종류에 관계없이, Windows Azure에서 VM Role을 위하여 호스팅되는 OS의 라이선스는 Windows Azure의 라이선스 정책, 즉 유틸리티 컴퓨팅 기반의 사용량 과금에 의해서만 비용이 결정되며 여기에는 일체의 라이선스 비용이 포함되지 않습니다. 순수하게 사용량만을 고려하면 되는 것입니다.

그러나 Windows Azure에서 사용하는 VM Role 라이선스를 역으로 On-Premise로는 가져오실 수 없으며, 또한 VM Role 안에 설치되는 각각의 소프트웨어들에 대한 라이선스는 신중히 결정해야 합니다. 해당 소프트웨어에 대한 라이선스는 종전의 서버 호스팅과는 차이가 많이 날 수 있습니다. 대표적으로, 탄력적인 시스템 운영을 위하여 한 번에 2대 이상의 가상 서버 인스턴스가 구동될 수 있고 사용량이 늘어나면 당연히 Fabric Controller는 VM Image를 복제하여 여러 대의 가상 서버 인스턴스를 생성하게 된다는 점은 원래 소프트웨어를 구입하여 설치했던 조건과는 큰 차이가 날 수 밖에 없는 부분으로, 라이선스를 위반하지 않기 위해서는 해당 소프트웨어 제공 업체가 이러한 클라우드 컴퓨팅 환경에 알맞는 유틸리티 기반의 과금 모델을 제공하는지 충분히 검토해야 합니다.

SQL Server의 경우 가장 이상적인 것은 SQL Server를 포함하는 VM Role을 게시하는것 보다 SQL Azure로 데이터를 이관하는 것입니다. 그러나 법적인 문제나 보안 상의 이유로 인하여 데이터를 이관할 수 없는 경우, Windows Azure Connect (구 Codename: Sydney)를 통해 On-Premise에서 구동 중인 서버들과 Windows Azure Platform에서 실행 중인 Instance들 사이의 네트워크를 같은 레이어에 통합하는 방법을 사용하여 손쉽게 문제를 해결할 수 있습니다. SQL Server 뿐만 아니라 기존에 사용하던 Back-Office Server, Active Directory Domain Controller 등도 무리해서 Windows Azure Platform으로 이주하지 않더라도 이러한 방법으로 문제를 해결할 수 있습니다.

VM Role을 만들기 위하여 필요한 준비 사항

VM Role을 만들기 위해서는 다음의 준비 사항이 필요합니다.

VM Role 만들기 Step 1 - 게스트 운영 체제 설치하기

VM Role을 만드는 절차를 요약하면, 앞서 언급한 구성 요소에서 짐작하시게 되는 것과 같이 Hyper-V를 이용하여 Guest VM으로 Windows Server 2008 R2를 설치하고, 여기에 여러분이 원하는 커스터마이징을 적용한 이후에 이것을 VM Role 형식에 맞게 포장하여 Windows Azure에 Base Image로 등록하는 것입니다.

현재 베타 버전으로 제공되는 VM Role은 Windows Server 2008 R2를 위한 구성 요소만을 제공합니다. 이에 따라, Windows 7의 Virtual PC로는 64비트 전용 OS인 Windows Server 2008 R2를 실행할 수 없기 때문에 특별히 Windows Server 2008 R2의 Hyper-V가 필요합니다.

1. Windows Server 2008 Hyper-V 호스트 컴퓨터에서 관리자 계정으로 로그인한 후 시작 - 관리 도구 - Hyper-V 관리자를 클릭하여 실행하면 아래와 같은 Management Console이 나타납니다.

2. Hyper-V 관리자의 좌측 트리 뷰에서 서버 노드를 마우스 오른쪽 버튼으로 클릭해서 나타나는 메뉴의 "새로 만들기" - "가상 컴퓨터" 항목을 클릭합니다. 그 후 나타나는 마법사 대화 상자에서 "다음" 버튼을 클릭합니다.

3. 아래 화면에서 Virtual Machine의 이름을 지정합니다. 여기서는 VM Role이라고 이름을 지정하도록 하고, 정해진 기본 위치를 필요한 경우 변경하거나 설정된 경로를 확인합니다. 다음 버튼을 눌러 다음 단계로 이동하겠습니다.

4. 메모리의 크기를 설정하는 단계에서는 자동으로 추천하는 2GB (2048MB) 메모리를 그대로 사용합니다. 다음 버튼을 클릭합니다.

5. 네트워크 어댑터를 설정하는 단계입니다. 로컬 영역 연결 - 가상 네트워크 항목이 선택된 상태에서 다음 버튼을 클릭합니다. 이 설정은 처음 VM Role을 시작한 이후 Windows Update (혹은 Microsoft Update)에서 업데이트를 내려받기 위하여 필요한 구성입니다.

6. 이제 가상 디스크 구성 단계입니다. 새로운 가상 하드 디스크를 만들기 위하여 첫 번째 라디오 버튼을 클릭하고, 가상 하드 디스크 파일의 이름을 임의로 정한 뒤, 하드 디스크를 만들 위치와 크기를 정합니다. 아래 예제에서는 baseimage.vhd 라는 이름을 사용하고 있고 30GB 하드 디스크를 생성하려고 하고 있습니다.

(중요) 이 단계에서 지정하는 값은 나중에 CSUPLOAD 도구에서 필요하므로 잘 메모해둡니다. - 또는 - 나중에 Virtual Machine 속성에서 찾아볼 수도 있습니다.

참고로 가상 하드 디스크의 크기는 인스턴스 레벨에 맞추어 설정해야 합니다. Extra Small 인스턴스에 맞추기 위해서는 가상 하드 디스크의 크기를 20GB 이하로 설정해야 합니다. 만약 이미 만들어진 가상 하드 디스크 파일을 사용하려면 두 번째 라디오 버튼을 선택하고 VHD 파일의 경로를 찾아 보기 버튼을 이용하여 아래 그림과 같이 지정할 수 있습니다.

7. 이제 설치 옵션을 선택하는 차례입니다. 나중에 따로 지정하여도 되고, 마법사를 이용하여 기본으로 ISO 이미지 파일 - 또는 - DVD 드라이브에 마운트 하도록 아래 그림과 같이 지정할 수 있습니다. 만약 시험 목적으로 사용하기 위하여 VM Role을 만들고자 한다면 http://www.microsoft.com/windowsserver2008/en/us/trial-software.aspx 에서 트라이얼 버전의 Windows Server 2008 R2 Enterprise Edition을 다운로드받으실 수 있습니다.

8. 모든 과정이 거의 마무리되어갑니다. 마침 버튼을 클릭하여 새로운 Virtual Machine을 생성합니다.

9. Hyper-V 관리자로 돌아와서 방금 생성한 Virtual Machine 항목을 찾아, 오른쪽 버튼으로 클릭하고 나타나는 팝업 메뉴에서 연결 메뉴를 클릭합니다. 항목이 바로 나타나지 않을 수도 있으므로 이 경우 좌측의 트리 뷰에 나타나있는 서버 항목을 오른쪽 버튼으로 클릭하여 새로 고침 메뉴를 클릭하여 목록을 갱신할 수 있습니다.

10. 아래 그림과 같이 원격 제어 창이 나타나면 시작 버튼을 클릭하여 Virtual Machine을 재생시킵니다.

11. 설치 단계에서 미디어를 정확히 지정했다면 Windows Server 2008 R2 설치 마법사가 가상 PC 안에서 아래 화면과 같이 시작될 것입니다.

12. 잠시 뒤에 표시 언어, 시간대, 통화 기호, 키보드 레이아웃 설정을 할 수 있는 화면이 나타납니다. 적절한 선택을 한 후 다음 버튼을 클릭합니다.

13. 지금 설치 버튼을 클릭합니다.

14. Windows Server 2008 R2 Enterprise (전체 설치) 항목을 선택하는 것에 유의합니다. 서버 코어 설치를 비롯하여 다른 제품의 경우 기능 상에 문제가 발생하거나 라이선스 관계 상 문제가 될 수 있습니다.

15. 라이선스 조항에 동의함을 선택하고 다음 버튼을 클릭합니다.

16. 사용자 정의 (고급) 설치 항목을 선택합니다. 이 과정을 선택하는 이유에 대해서는 다음 단계에서 자세히 설명하겠습니다.

17. 대부분의 경우 설치 관리자의 자동 설정을 이용하면 문제가 없습니다. 그러나 VM Role을 위하여 필요한 작업이 한 가지 있습니다. VM Role에 호환되는 가상 하드 디스크 레이아웃을 만드려면 반드시 하나의 단일 파티션으로 구성해야 하는데, 기본 설치를 이용하면 이 규칙을 준수하지 않게 됩니다. 이를 피하기 위하여 사용자 정의 설치를 선택하였고 아래와 같은 화면이 나타나게 됩니다.

17. 이제 Shift + F10 키를 눌러 아래와 같이 명령 프롬프트 창을 시작합니다.

18. 명령 프롬프트 창이 나타나면 다음의 순서대로 명령어를 입력합니다.

DISKPART

SELECT DISK 0

CREATE PARTITION PRIMARY

EXIT

19. 명령 프롬프트 창이 닫힌 상태에서 새로 만들어진 파티션을 선택하여 Windows 운영 체제 설치를 진행하면 됩니다. 파티션이 보이지 않을 때에는 새로 고침을 선택하십시오.

20. 설치가 진행됩니다. 1~2회 이상 시스템이 다시 시작될 수 있습니다. 설치가 완전히 종료될 때 까지 중간에 DVD나 설치 미디어를 제거하는 일이 없도록 유의합니다.

21. 완전히 설치가 끝났다면 아래와 같이 관리자 비밀 번호를 지정해야 함을 경고하는 문구가 나타날 것입니다. 아래 화면에서 확인 버튼을 클릭합니다.

22. 암호 정책에 만족하는 강력한 암호를 확인을 위하여 두 번 입력하고 Enter 키를 누릅니다. 잠시 기다리면 바탕 화면이 나타날 것입니다.

마치면서

다음 시간에는 VM Role로 배포하기 위하여 필요한 게스트 운영 체제에서 필요한 설정을 적용하는 방법과 Windows Azure 환경으로 이미지를 출판하는 방법을 설명하는 내용을 상세히 설명하도록 하겠습니다. 감사합니다.

Windows Azure Application - Hello Azure (1)

Cloud 2011. 5. 3. 08:30 Posted by 알 수 없는 사용자

Windows Azure Application - Hello Azure (1)

Hello Azure 응용 프로그램을 만들고 Cloud로 배포하는 내용을 다루어보도록 하겠습니다.

ManManagement Portal이 업데이트 된지 오래인데 아직 배포까지 다루지 못해 여기서 Hello Azure를 배포해보도록 하겠습니다.

Visual Studio 2010을 통해 Windows Azure 프로젝트를 생성하고 Cloud로 배포해서 Cloud에서 응용 프로그램을 서비스 할 수 있습니다. 물론 C#을 이용해서 처리합니다. 또한 PHP 도 사용이 가능합니다.

아래에서 Visual Studio 2010을 통해 Windows Azure 프로젝트를 로컬에서 생성하고 디버깅하는 내용에 대한 부분을 알아보도록 하겠습니다.

먼저 VS 2010에서 파일 > 새로 만들기 > 프로젝트에서 Visual C#에서 Cloud 템플릿을 선택합니다.



새 프로젝트 창에서 Cloud를 선택하고 프로젝트 이름은 “HelloAzure” 으로 입력합니다.

Windows Azure 프로젝트에서 역할 영역에서 Visual C# ASP.ENT 웹 역할을 선택하고 “>” 를 클릭합니다. 오른쪽 영역의 역할의 편집을 클릭해서 이름을 “HelloAzure_WebRole” 로 입력하고 OK 를 클릭합니다.

VS 2010의 솔루션 탐색기의 구조를 살펴봅니다.

ServiceDefinion.csdef : Role, trust level, endpoint 등 메타데이터

ServiceConfiguration.cscfg: Instance , 구성값

자 그러면 Default.aspx의 디자인을 클릭하여 도구 상자로부터 Label 컨트롤을 드래그하고

속성에서 Font Size를 “30, Bold를 “True” 지정합니다.

디자인 영역을 오른쪽 클릭하여 코드보기를 클릭하여 Default.aspx.cs 로 이동합니다.

Page_Load 이벤트에서 아래와 같은 코드를 작성합니다.

protected void Page_Load(object sender, EventArgs e)

{

this.Label1.Text = "Hello Azure";

}

ServiceConfiguration.csfg 를 열어서 Instance 값을 2로 변경합니다.

<Role name="HelloAzure_WebRole">

<Instances count="2" />

<ConfigurationSettings>

<Setting name="DiagnosticsConnectionString" value="UseDevelopmentStorage=true" />

</ConfigurationSettings>

응용 프로그램을 디버깅을 시작하기 위해 디버그 메뉴에서 디버깅 시작을 클릭합니다.

Windows Azure Compute Emulator가 시작할 때까지 시간이 걸립니다. Cloud Service 프로젝트가 시작프로젝트로 되어 있어 실행하면 작업 표시줄의 메뉴에서 Windows Azure Compute Emulator (로컬의 Windows Azure App의 테스트, 개발환경 에뮬레이팅) 의 아이콘을 볼 수 있으며 아이콘을 오른쪽 클릭하여 Compute Emulator열기를 클릭하면 UI와 웹 페이지를 볼 수 있습니다.



Azure 응용 프로그램이라고 해서 디버깅을 못하는 것은 아닙니다. Visual Studio CS 파일에 중단점을 적용하고 웹 페이지를 새로 고침하면 중단점으로 디버깅이 위치하는 것을 알 수 있습니다.

잘 동작이 되므로 로컬에서 작업은 끝났습니다.



자 그럼 다음에서 서비스 패키지를 만들어서 Management Portal을 이용해서 Cloud로 배포해보도록 하겠습니다.

'Cloud' 카테고리의 다른 글

Windows Azure VM Role 미리보기 #2  (0) 2011.05.09
Windows Azure VM Role 미리보기 #1  (0) 2011.05.09
SQL Azure Sample Database 설치  (0) 2011.04.29
DataMarket (2) - 데이터 구독 및 탐색  (0) 2011.03.07
DataMarket (1) - 소개  (0) 2011.02.28

SQL Azure Sample Database 설치

Cloud 2011. 4. 29. 08:30 Posted by 알 수 없는 사용자

SQL Azure Sample 데이터베이스 설치

SQL Azure용 샘플 데이터베이스를 설치하는 것을 다뤄보려고 합니다. Cloud Application에서 스토리지 서비스를 쓰지 않고 Azure 데이터베이스를 액세스하려고 할 경우 테스트 데이터를 입력하고 구성하기에는 시간이 좀 걸리기도 약간 귀찮기도 합니다.

아래 사이트에서 SQL Azure용 샘플 데이터베이스를 다운로드 가능합니다.

http://msftdbprodsamples.codeplex.com/releases/view/37304

설치를 위해서는 SQL Azure 프로젝트가 생성되어 있어야 하며 .NET 3.5 가 설치되어 있어야 합니다. 반드시 로컬에 SQL Server가 있어야 하는 것은 아니지만 SSMS가 있다면 데이터 확인이나 쿼리 하기가 더 쉽겠죠~

다운로드 받아 압축을 풀고 위의 사이트에서의 순서에 따라 구성하시면 됩니다.

1. 먼저 이미 데이터베이스가 존재한다면 AdventureWorksDWAZ2008R2 데이터베이스를 삭제합니다.

2. 명령 프롬프트를 관리자 권한으로 실행합니다.

3. 압축 파일의 AdventureWorks2008R2Az/DW 폴더로 이동합니다.

4. 아래 명령을 실행합니다. 서버의 FQDN 이름과 계정, 암호를 입력합니다.

그러면 아래처럼 실행되면서 SQL AzureAdventureWorksDWAZ2008R2 데이터베이스가 생성됩니다.


Management Portal을 보면 아래 그림과 같이 생성되어 있는 것을 확인이 가능합니다.

어느 순간부터 Portal에서 몇몇 내용들은 한글로 표시되고 있습니다.

물론 Database Manager 에서도 아래 그림처럼 데이터 확인이 가능합니다. 그리고 SQL Server 2008 R2 SSMS에서도 가능합니다. 또한 AdventureWorks2008R2 LT 데이터베이스도 설치가 가능합니다.

이상으로 Sample Azure 데이터베이스를 설치해보았습니다. 이 데이터를 SQL Azure 리포팅이나 Cloud 응용프로그램에서 액세스할 수 있습니다.


'Cloud' 카테고리의 다른 글

Windows Azure VM Role 미리보기 #1  (0) 2011.05.09
Windows Azure Application - Hello Azure (1)  (0) 2011.05.03
DataMarket (2) - 데이터 구독 및 탐색  (0) 2011.03.07
DataMarket (1) - 소개  (0) 2011.02.28
SQL Azure Update (3)  (0) 2011.02.21

DataMarket (2) - 데이터 구독 및 탐색

Cloud 2011. 3. 7. 08:30 Posted by 알 수 없는 사용자


Account Key 생성이 끝났으므로 데이터를 구독하고 브라우저에서 데이터를 탐색이 가능합니다. 또한 다양한 인터페이스를 이용해서 데이터 솔루션을 구축 가능합니다.

자 이제 왼쪽 Statistics 메뉴를 클릭하거나 검색에서 “Gender Info 2007”을 검색하여 아래 화면이 표시되게 합니다.



해당 링크나 이미지를 클릭하여 보다 더 자세한 정보를 확인합니다.



해당 데이터가 원하는 데이터라면 SIGN UP 을 눌러 구독을 신청합니다. 구독 신청 페이지에서는 동의함을 체크하고 SIGN UP 을 눌러 구독을 완료합니다.

구독을 완료하였습니다. 데이터 집합을 액세스 할 수 있는 방법은 아래와 같이 4 가지가 있다는 것을 아래 화면에서 확인할 수 있습니다.

l  DataMarket Service Explorer

l  Excel PowerPivot

l  Tableau Software

l  Visual Studio 2010



My Data 메뉴를 클릭하면 구독 데이터를 확인할 수 있습니다.



이제까지 했던 것을 요약하면 DataMarket에 가입을 하고 My Account Key를 생성하고 카테고리에서 특정 데이터를 구독했습니다.

여러 방법을 통해 데이터 집합을 살펴볼 수 있지만 여기서는 DataMarket Service Explorer에서 액세스해보도록 하겠습니다.

My Data 메뉴에 있는 구독 데이터 들 중에서 하나를 선택해서 링크를 클릭하면 아래와 같은 화면을 볼 수 있습니다.



화면에서 Explore this Dataset” 링크를 클릭합니다. 그러면 새 창이 열리면서 DataMarket service explorer 에서 데이터 집합을 바로 직접 액세스할 수 있습니다. 

 쿼리 집합을 수정하여 데이터를 쿼리 해보도록 하겠습니다. 직접 웹에서 결과를 Table, atom Pub 포맷으로 살펴볼 수 있는 것이 DataMarket Service Explorer 이며 Query 드롭 다운에서 Values를 선택하고 CountryName“Korea Rep”, Year“2005”을 입력해서 “RUN Query” 메뉴를 클릭하면 아래와 같은 결과를 알 수 있습니다.

다른 인터페이스를 통해 DataMarket을 처리하는 것을 이후에서 다뤄보도록 하겠습니다.

'Cloud' 카테고리의 다른 글

Windows Azure Application - Hello Azure (1)  (0) 2011.05.03
SQL Azure Sample Database 설치  (0) 2011.04.29
DataMarket (1) - 소개  (0) 2011.02.28
SQL Azure Update (3)  (0) 2011.02.21
SQL Azure Update (2)  (0) 2011.02.11

DataMarket (1) - 소개

Cloud 2011. 2. 28. 09:00 Posted by 알 수 없는 사용자

“Dallas” 라는 코드네임으로 불리던 부분이 DataMarket 으로 작년 말에 출시되었는데 여기서 소개를 드리도록 하겠습니다. 몇몇 화면과 Account Key를 생성하는 것을 알아보도록 하겠습니다.

DataMarket 을 액세스하려면 아래 주소로 액세스 할 수 있습니다.

https://datamarket.azure.com/



분석을 위한 데이터를 클라우드 서비스를 통해 얻을 수 있는 데이터 시장이 DataMarket 이며 콘텐트 파트너는 데이터를 DataMarket에 게시하고 사용자들은 손쉽게 데이터를 찾고 구독하며 활용할 수 있습니다. 또한 개발자들은 기본적으로 제공되는 여러 표준을 통해 강력한 데이터 솔루션을 개발 할 수 있습니다.

 

Learn 메뉴에서 보면 다운로드나 비디오 등을 통해서 DataMarket의 이해가 보다 더 용이하니 링크를 클릭해보셔요~

Browse 탭을 클릭해보면 다양한 카테고리별로 데이터들이 나열된 것을 확인할 수 있습니다. 


DataMarket
Application에서 이용하기 위해서는 먼저 Account Key를 생성해야 합니다. 그래서 상단의 Register 메뉴를 클릭하고 정보를 입력해서 가입을 합니다. 물론 먼저 Windows Live ID로 로그인해야 합니다.



사용 동의에 대해서는 체크를 하고 Register 버튼을 클릭합니다.


가입을 하고 나서는 상단의 My Account 링크를 클릭하면 아래와 같은 화면을 볼 수 있고 Account Keys에서 PowerPivot 등에서 사용할 새로운 Account Key를 생성할 수 있습니다. 


Add account Key
메뉴를 클릭하여 새로운 키를 생성합니다. Description에 적절한 이름을 입력하고 Create 버튼을 클릭합니다.



My Account의 Account Keys에 보면 새롭게 생성된 것을 확인 가능합니다.

자 이제 Browse 메뉴를 클릭해서 데이터를 구독하고 다양한 표준 인터페이스를 통해 데이터 솔루션에서 이용할 수 있습니다.

데이터를 구독하고 활용하는 것은 다음 블로그에서...,

'Cloud' 카테고리의 다른 글

SQL Azure Sample Database 설치  (0) 2011.04.29
DataMarket (2) - 데이터 구독 및 탐색  (0) 2011.03.07
SQL Azure Update (3)  (0) 2011.02.21
SQL Azure Update (2)  (0) 2011.02.11
SQL Azure Update (1)  (0) 2011.01.28

SQL Azure Update (3)

Cloud 2011. 2. 21. 21:04 Posted by 알 수 없는 사용자

SQL Server 2008 R2 버전부터는 SQL Server Management Studio에서 SQL Azure를 연결이 가능합니다. 여기서는 SQL Server Denail CTP를 통해 SQL Azure를 연결해보도록 하겠습니다.

 

SQL Server Management Studio를 열어 서버에 연결에서 SQL Azure Portal에 있는 서버 이름과 SQL 인증으로 사용자와 암호를 입력합니다.

 

연결을 누르지 말고 옵션을 클릭하여 연결할 데이터베이스에 SQL Azure 데이터베이스 이름을 입력하고 연결을 클릭합니다.

 

혹시 연결되지 않고 IP 주소 관련한 아래 메시지가 나올 수 있습니다.


SQL Azure Portal에서 방화벽 규칙을 맞게 추가해주어야 합니다.

 

방화벽 설정이 문제 없이 잘 연결되었다면 아래와 같은 내용을 볼 수 있습니다.

 


n  새로운 쿼리 창을 열어 T-SQL 구문을 처리해보도록 하겠습니다.

l  현재 데이터베이스 이름을 db_name() 을 통해 알아봅니다.



l  물론 서버 버전을 알아볼 수 도 있습니다.

l  데이터베이스 종류는 어떤 것들이 있는지 카탈로그 뷰를 통해 알아볼 수 있습니다.


 

l  현재 데이터베이스에 USE 구문은 잘 실행되지만 다른 데이터베이스로의 이동은 지원되지 않습니다.

l  Master 데이터베이스로 새로운 쿼리 창을 열어 LOGIN을 생성할 수 있습니다. 또한 사용자 데이터베이스에 사용자를 생성할 수 있습니다. 개체 탐색기에서 GUI를 통한 생성은 지원되지 않고 쿼리문으로 나타납니다.



l  연결을 통해 새로운 쿼리 창을 위에서 생성한 hjuser 사용자를 통해 연결 하고 새로운 테이블을 생성합니다. 테이블에는 클러스터형 인덱스가 있어야 합니다. 그리고 많은 데이터를 INSERT 구문을 통해 처리합니다. 익숙한 T-SQL 구문이 그대로 쓰이고 있습니다.



l  SELECT, WHERE 구문을 통해 결과를 조회할 수 있습니다. 또한 아래 그림처럼 실행 계획을 포함시켜 실행 할 수 있습니다.



 위에서 살펴본 내용으로 한다면 일반적인 T-SQL 구문을 작업하기는 큰 무리가 없습니다만 아직 지원되지 않는 여러 구문에 해당하는 사항은 있습니다
 

n  T-SQL 지원에 대한 구체적인 내용은 아래 링크를 참조할 수 있습니다.

l  Supported Transact-SQL Statements

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

l  Partially Supported Transact-SQL Statements

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

l  Unsupported Transact-SQL Statements

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

 

SQL Server Denail CTP를 통해 SQL Azure에 대해 액세스하는 내용을 알아보았습니다. 다음 내용에서는 여러 데이터를 올리고 Windows Azure의 응용 프로그램에서 SQL Azure를 액세스해보는 내용을 새로운 Management Portal을 통해서 알아보도록 하겠습니다.

'Cloud' 카테고리의 다른 글

DataMarket (2) - 데이터 구독 및 탐색  (0) 2011.03.07
DataMarket (1) - 소개  (0) 2011.02.28
SQL Azure Update (2)  (0) 2011.02.11
SQL Azure Update (1)  (0) 2011.01.28
Windows Azure Update: Windows Azure CDN의 활용  (2) 2010.10.01

SQL Azure Update (2)

Cloud 2011. 2. 11. 09:00 Posted by 알 수 없는 사용자


Windows Azure Platform Management Portal을 통해 데이터베이스 서버와 데이터베이스를 생성했습니다여기서는 Management Portal을 통해 Database Manager를 통해 SQL Azure 를 액세스하는 내용을 다룹니다.


데이터베이스에 테이블을 생성, 입력하고 새 쿼리를 생성하는 내용에 대한 부분을 알아보겠습니다. 위에서 생성한 데이터베이스 이름을 클릭하고 상단 메뉴의 “Manage” 를 클릭합니다. 


Database Manager
창이 새롭게 나타나며 제일 처음 시작할 경우는 동의 함을 체크하면 아래와 같이 연결 창을 볼 수 있습니다.



비밀번호를 입력하고 connect를 클릭합니다. 물론 방화벽 규칙에 허용으로 추가되어 있어야 합니다.

연결이 성공하면 아래와 같이 Database Manager 창을 볼 수 있습니다 


상단의 New Table 메뉴를 클릭해서 새로운 테이블을 디자인합니다. Employee 테이블에 ID, Name, Email 열을 정의합니다. 디자인이 끝났으면 Save 메뉴를 클릭합니다.


Data
메뉴를 클릭해서 샘플 데이터 값을 추가합니다. Save 버튼을 클릭합니다.
 



Database
탭을 클릭하고 New Query 메뉴를 클릭합니다. 쿼리 창에서 SELECT * FROM Employee를 입력하고 Execute 메뉴를 클릭합니다. 결과 창에서 위에서 입력한 데이터를 확인 할 수 있습니다.
 


Windows Azure Platform
Management Portal에서 SQL Azure에 대한 내용을 액세스할 수 있는 Database Manager를 알아보았습니다. 새롭게 변경된 Portal을 통해 데이터베이스 서버와 데이터베이스, 테이블을 생성해보았으며 다음 블로그에서 Windows Azure Platform Management Portal에 있는 SQL Azure 데이터베이스를 SQL Server Management Studio Windows Azure에서 액세스해 보도록 하겠습니다.

'Cloud' 카테고리의 다른 글

DataMarket (1) - 소개  (0) 2011.02.28
SQL Azure Update (3)  (0) 2011.02.21
SQL Azure Update (1)  (0) 2011.01.28
Windows Azure Update: Windows Azure CDN의 활용  (2) 2010.10.01
SQL Azure 와 SQL Reporting Service  (0) 2010.09.30

SQL Azure Update (1)

Cloud 2011. 1. 28. 09:00 Posted by 알 수 없는 사용자



Azure가 많은 부분이 Update  되었습니다.

2010
년 말에 Azure PlatformManagement Portal 이 새롭게 선보였으며 SQL Azure 에 대한 내용을 업데이트합니다.

Portal에 액세스하기 위해서는 https://windows.azure.com 에 액세스하고 Windows Live ID를 제공하면 됩니다. 리본과 유사하게 변경되었으며 Hosted Service, Storage Account, Database Server, Connect 메뉴가 상단에 보이고 있습니다.


왼쪽 메뉴는 Hosted Services, Storage Account & CDN, Database, Reporting, Service Bus, Access Control & Caching, Virtual Network 로 되어 있습니다.

SQL Azure를 살펴볼 것이므로 왼쪽 메뉴의 Database나 상단 메뉴의 New Database Server 를 클릭해보겠습니다. 

l  Database Server 생성

Database New 메뉴를 통해 구독을 생성해야 하며 구독을 생성하고 나면 Create 메뉴가 활성화됩니다.

hongju 라는 Subscription 에 새로운 SQL Azure Database Server를 생성해보겠습니다. Create 메뉴를 클릭하면 먼저 지역을 선택하게 되는데 여기서는 “East Asia”를 선택하고 다음을 클릭 해보겠습니다.

 

관리자 계정과 비밀번호를 설정하게 됩니다. 비밀번호는 복잡성 규칙을 따르니 복잡하게 구성하면 됩니다.


관리자 계정과 비밀번호를 설정하고 다음을 클릭하면 방화벽 규칙을 지정하는 창을 볼 수 있으며 여기서는 마침을 클릭합니다. 별도로 방화벽 규칙을 지정할 수 있습니다.

 

작업이 완료되었으면 아래와 같은 Database Server가 생성된 것을 확인할 수 있습니다.


왼쪽 트리를 확장해서 보면 master 데이터베이스가 생성된 것을 알 수 있습니다.

  

방화벽 규칙을 클릭해서 방화벽을 설정해줄 수 있습니다. 그렇지 않으면 기본값으로 Deny이므로 허용 IP 대역을 설정해야만 합니다.

 

l  Database 생성

해당 데이터베이스 서버를 클릭하고 데이터베이스를 생성해보도록 하겠습니다.

상단의 Create 메뉴를 클릭합니다.



Create Database 창에서 적절한 데이터베이스 이름을 입력하고 Edition Size를 지정합니다.

 

 



이상으로 Management Portal에서 SQL Azure의  데이터베이스 서버와 데이터베이스를 생성해보았습니다.

다음 블로그에서  Management Portal에서 테이블을 생성하고 SELECT 하는 내용과 SQL Denail CTP 에서 액세스하고 Windows Azure에서 액세스하는 추가적인 내용을 알아보도록 하겠습니다.



'Cloud' 카테고리의 다른 글

SQL Azure Update (3)  (0) 2011.02.21
SQL Azure Update (2)  (0) 2011.02.11
Windows Azure Update: Windows Azure CDN의 활용  (2) 2010.10.01
SQL Azure 와 SQL Reporting Service  (0) 2010.09.30
Windows Azure Update: myAzureStorage  (0) 2010.09.06

Windows Azure Update: Windows Azure CDN의 활용

Cloud 2010. 10. 1. 22:00 Posted by 알 수 없는 사용자

공지: 티스토리 편집기 조작 상의 문제로 완성되지 않은 글이 일찍 노출되는 문제가 있었습니다. 다음부터는 이러한 일이 없도록 하겠습니다. 불편을 드려서 대단히 죄송합니다.

안녕하세요. Visual C# MVP 남정현입니다. 지난달 13일부터 15일까지 성황리에 개최된 Korea Games Conference에서 보여주신 Social Game and Windows Azure Platform 세션에서, Windows Azure CDN에 관하여 말씀을 드린 부분이 있었습니다. 이번 아티클에서는 Windows Azure CDN의 구체적인 내용을 설명하고, Windows Azure CDN을 어떤 방법으로 활용할 수 있는지에 대한 내용을 소개합니다. 최근에 Windows Azure CDN도 Amazon Web Service CDN과 마찬가지로 서울을 경유하는 회선을 추가하여 비약적인 속도 발전이 있었기 때문에, 정식 출시가 이루어지지는 않았지만 미리 알아두시면 상당히 유용한 정보가 될 것이라 봅니다. :-)

CDN이란 무엇인가?

CDN은 일정한 크기의 파일들을 지역별로 Mirroring하여 동시에 많은 사용자가 같은 파일을 다운로드하려고 하는 상황에서도 안정적으로 파일 다운로드 서비스를 제공할 수 있도록 도와주는 서비스로, 인터넷 사용자의 비약적인 증가와 더불어서 CDN 서비스에 대한 수요가 증가하였습니다. 일반적으로 CDN 서비스는 대화형 웹 인터페이스 (CGI)를 경유하지 않고 정적인 컨텐츠를 퍼다나르기 위한 방법으로 많이 사용되며, 이미지, 동영상, 다소 크기가 큰 클라이언트용 설치 파일과 같이 "자료"의 성격을 띄는 데이터들을 위한 것이 일반적입니다.

Windows Azure CDN에 대한 소개

이전 방명록 샘플 강좌에서 파일을 업로드하기 위하여 사용한 저장 공간인 Windows Azure Storage에 최근에 CDN 서비스가 추가되었습니다. Windows Azure Storage에서 CDN을 사용하는 것은 별도의 과금이 이루어지는 서비스이며, 기본적으로 제공되는 Storage Service 주소와는 별개로 CDN 서비스만을 위한 전용 도메인이 구분되어있습니다. 물론 Storage 서비스와 마찬가지로 CDN 서비스도 Custom Domain 구성이 가능합니다.

Windows Azure CDN의 동작 원리

Windows Azure CDN은 Windows Azure Storage의 컨텐츠를 기준으로 만들어지는 서비스로, 여러분이 수집하거나 배포하기 위하여 Storage에 올려놓은 자료들 중에서도 "Public Access" 퍼미션이 지정된 컨테이너내의 Block BLOB들을 자동으로 검색하여 CDN 배포 에이전트가 일정 주기로 미러링을 수행합니다. 이렇게 미러링된 파일은 지역별로 제일 빠른 서버에 의하여 클라이언트로 다운로드될 수 있도록 자동 구성됩니다.

참고로, 특별히 Block BLOB이라고 언급한 까닭은, Windows Azure Storage에서 취급할 수 있는 BLOB이 두 종류가 있기 때문인데, 크기가 매우 크기 때문에 한번에 취급할 수 없어서 마치 Win32의 메모리 맵 처럼 부분별로 나누어서 데이터를 저장하거나 관리해야하는 거대한 파일을 위한 Paged BLOB은 미러링 대상으로 적합하지 않기 때문입니다.

Windows Azure CDN의 과금 정책

Windows Azure CDN의 과금 정책은 2010년 10월 현재 다음과 같이 공시되어있습니다. (출처: http://www.microsoft.com/windowsazure/offers/popup/popup.aspx?lang=en&locale=en-US&offer=MS-AZR-0003P)

  • $0.15 per GB for data transfers from European and North American locations
  • $0.20 per GB for data transfers from other locations
  • $0.01 per 10,000 transactions
  • 그리고 CDN 서비스의 사용을 위하여 전제가 되는 Storage 서비스의 요금은 다음과 같습니다.

  • $0.15 per GB stored per month
  • $0.01 per 10,000 storage transactions
  • 위의 요금들을 기준으로 하였을 때, 동아시아 지역의 데이터 센터를 이용하도록 구매하였을 경우, 매 달 과금되는 요금은 1GB 당 0.15$이고, 아시아 내에서의 트래픽이 많이 발생할 것이므로 전송량 1GB당 0.2$가 과금될 것이며, CDN 서비스를 통하여 매 1만건의 트랜잭션이 발생할 때 마다 0.01$가 과금될 것입니다.

    이러한 기준으로 볼 때, 한달에 30MB 정도의 파일 5개가 각각 기간 내 누적 다운로드 회수가 10000여회 정도 된다고 가정하면, 약 1464GB의 트래픽이 발생한 것으로 볼 수 있고 금액은 약 292.81$, 대미환율이 1200원이라고 가정하였을 때 한달 35만원 정도의 비용이 과금되는 셈입니다. 어떤 CDN 서비스를 사용하는지에 따라서 이 가격에 이점이나 단점이 제각기 있을 수 있지만 확장성이나 사용 편리성 관점에서 보았을 때 그리 나쁘지 않은 가격대일 수 있습니다.

    결론

    Windows Azure CDN은 다른 Windows Azure 서비스와 마찬가지로 프로그래밍 방식으로 제어가 가능한 범위 안에 있는 솔루션입니다. 기존의 CDN으로 충족되지 않는 기능성을 모두 포함하면서도, World-wide class의 서비스를 제공할 수 있으므로 사업 영역을 확장하거나, 초기 투자 비용을 적게 만들 수 있는 방안으로서는 매우 이상적인 서비스입니다. 최근에는 대한민국 서울을 경유하는 회선도 추가되어 서비스 수준이 더욱 높아졌습니다.

    이는 동영상 서비스 제공, 자료실 운영과 같은 일반 사용자를 위한 서비스 제공에도 대응이 가능하면서, 좀 더 복잡한 요구 사항을 만족시킬 수 있는 방법을 제공함을 뜻합니다. 사용한 만큼 돈을 지불하는 과금 모델이므로 호스팅과는 달리 사용량이 적을 때에는 적은 운영 비용을 유지하는 것도 가능합니다.

    CDN 서비스의 특성상 기술적으로 이해하거나 학습해야 할 내용이 많은 것은 아니나 성공적으로 비즈니스를 시작할 수 있도록 도움을 주는데에는 그 가치가 충분하다고 생각되는 바 Windows Azure CDN 서비스의 배경과 특징을 설명하는 내용을 이번 시간에다루었습니다.

    감사합니다. :-)

    'Cloud' 카테고리의 다른 글

    SQL Azure Update (2)  (0) 2011.02.11
    SQL Azure Update (1)  (0) 2011.01.28
    SQL Azure 와 SQL Reporting Service  (0) 2010.09.30
    Windows Azure Update: myAzureStorage  (0) 2010.09.06
    Hello Windows Azure / Twitter 스타일 방명록 만들기 #3  (0) 2010.09.04