Microsoft MVP성태의 닷넷 이야기
안녕하세요 windows azure에 관해 질문했던 사람입니다. [링크 복사], [링크+제목 복사]
조회: 19604
글쓴 사람
김형진
홈페이지
첨부 파일
 


 안녕하세요

 지난번에 windows azure vm에 관련하여 질문 드렸던 사람입니다! ^^

 제가 azure를 이용하여 computing 시간을 줄이기 위하여 cloud computing을 이용하려 하는데요

 microsoft 웹상에서 나온 설명들을 살펴보니까 c#을 이용해서 web role, worker role을 지정하여 cloud에 올려서 실행을 하더라구요

 그리고! 저는 c++의 경우 콘솔응용프로그램만 다뤄보았습니다

 
 제가 잘 이해가 안되는 부분은

 1. c++ 같은경우 (콘솔응용프로그램에서) 소스파일에 c++파일을 추가하여 그 파일에 코드를 작성했는데, 여기서는 그런것을 어떻게 해야하는지 모르겠네요

 2. 만약 병렬처리가 가능하다면, cloud computing에서 작업을 나눌때 어떤식으로 해야할까요? 기존 사용한 코드를 다시 web role, worker role로 나눠지도록 변경을 해야하나요?

    아니면 다른 방법이 있는건가요?


 컴퓨터에 대한 지식이 얕은 관계로 많이 헤메이고 있는데 도움 부탁드립니다.




 ++) 질문할 사항이 더 생겨서 수정합니다

 3. http://www.windowsazure.com/en-us/documentation/articles/fundamentals-application-models/?fb=ko-kr에 보면 cloud service를 2가지로 설명하고 있습니다.

    하나는 Grouping VMs, 다른 하나는 지난번에 언급하셨던 PaaS. 그런데 이것의 차이점을 명확하게 설명해 주실 수 있으신가요? 제가 이해하는 것으로는 VM이 여러개가 묶여 있는데

    Grouping VMs에서는 요청을 VM에 뿌려주는것이고 PasS에서는 web role이 받아들여 worker role에게 전달해주는 것이다 이정도인데. 그게 그건것 같아서 혼란스럽습니다.

    저의 목적을 위해서는 어느 종류의 것을 사용하면 좋을까요?
 








[최초 등록일: ]
[최종 수정일: 3/4/2014]


비밀번호

댓글 작성자
 



2014-03-04 12시42분
클라우드 서비스의 관건은 인스턴스를 늘였다 줄였다 할 수 있는 건데요. 사실 마법은 없습니다. 응용 프로그램이 실행되는 VM의 수를 자유롭게 조절하려면 어떻게 해야할까요? 해당 응용 프로그램의 바이너리가 '마스터 원본'으로 하나가 있어야 합니다. 그리고 그 응용 프로그램은 현재 실행 중인 VM 환경에 어떠한 의존성도 가지면 안됩니다. 예를 들어 printf("test")라고 출력하는 응용 프로그램을 만들어 Azure의 PaaS에 등록해 두면, Azure는 사용자가 설정하는 인스턴스의 수에 따라 VM을 동적으로 조정하고 그 안에서 응용 프로그램을 실행시켜 둡니다.

사용자가 직접 구성하는 VM의 경우에는 마이크로소프트가 자동으로 할 수 있는 부분에 한계가 있습니다. 대신 "그룹" 단위를 제공하고 사용자로 하여금 VM을 만들어 해당 그룹에 추가할 수 있는 기능을 제공합니다. 쉽게 생각하면 기존의 L4 스위치로 부하분산하는 웹 서비스들을 생각하면 됩니다. 부가적으로, 실행될 VM의 수를 (추가된 VM들의 범위에서 쉽게) 가변적으로 조정하는 것이 가능합니다.

자, 그럼 이제 질문에 답해볼까요? ^^

1. 현재 C++로는 PaaS 유형에서 지원하지 않습니다. 대신 C# Worker Role에 태워서 C++을 실행시키는 방식으로 가능합니다. 다음의 글에 자세하게 나와 있습니다.

Using C++ in an Azure Worker Role for a Compute Intensive Task
; http://cloud-computing.learningtree.com/2010/10/22/using-c-in-an-azure-worker-role-for-a-compute-intensive-task/

2. 병렬 처리가 자동으로 가능한 것이 아닙니다. 단지 응용 프로그램이 호스팅되는 VM이 동적으로 조절되는 것 뿐입니다. 병렬처리를 위한 것은 스스로 구현해야 합니다. 예를 들어, 프로그램이 실행될 때마다 공용 DB 필드에 그 수를 카운팅하고 서로 그 조절값에 따라 적절하게 작업을 분배하는 처리를 해야 합니다. 즉, 기존 사용한 코드를 수정해야 할 가능성이 큽니다. (기존 코드가 어떻게 되어 있느냐에 따라 수정범위가 틀리겠지요. 기존에도 컴퓨터끼리 병렬처리를 하기 위해서는 서로 공유해야 할 데이터가 있었을 테고, Azure로 옮기게 되면 그 부분만 적절하게 변경해 주시면 됩니다.)

3. 이건 이미 위의 설명에서 답변이 되었습니다. 단지 PaaS에서 WebRole과 WorkerRole은 꼭 의존적인 것은 아닙니다. 서로 단독으로 할 수 있고 쉽게 생각해서 WebRole을 "웹 애플리케이션", WorkerRole을 "NT 서비스 유형의 프로그램"이라고 보시면 됩니다. 단지, PaaS는 정해진 바이너리가 있어서 마이크로소프트 측에서 VM을 동적으로 관리해 Web/Worker Role 프로그램을 실행해 주는 것을 대행해 줍니다.

정리해 보면, PasS로 서비스를 만들어 배포하면 운영체제를 관리할 필요가 없습니다. 그냥 응용 프로그램 바이너리만 통째로 Azure 쪽에 넘겨주면 나머지는 마이크로소프트 측에서 알아서 관리해 줍니다. 하지만 IaaS로 서비스를 만들게 되면 이후부터는 VM 자체를 순수하게 사용자 측에서 관리해 줘야 합니다. 왜냐하면 마이크로소프트는 IaaS에 속하는 VM에 대해서는 그룹핑을 통한 실행될 VM의 수를 관리하는 정도만 해줄뿐 그 안의 내용은 상관하지 않습니다.

질문하신 분의 프로그램이 단독으로 실행되는 경우라면 Worker Role로 하시면 됩니다. 하지만, 만약 MATLAB같은 프로그램에 의존적으로 실행이 된다면 MATLAB을 설치하는 것은 마이크로소프트의 VM 서비스에는 제공되지 않으므로 이런 경우에는 별도 VM 서비스를 사용해야 합니다. 여러개의 VM으로 계산 시간을 절약하겠다고 하셨으니, 원하는 수 만큼의 VM을 만들어서 하나의 "가용성 집합"에 넣고 관리해 주시면 됩니다.

마지막으로... 질문과 웹 검색으로 찾아보는 것도 좋지만 이런 경우는 직접 부딪쳐 보는 것이 좋습니다. Azure Free Trial도 있으므로 간단한 것 하나 만들어서 테스트 해보셨다면, 아마도 벌써 개념을 정리하셨을 것입니다. 직접 해보시면, 1주일씩 걸릴만한 어려운 개념이 아니었음을 아시게 될 것입니다.

정성태
2014-03-06 12시55분
[김형진] 답변 감사드립니다

아마도 정성태님이 생각하시는 것보다 제가 컴퓨터에 대한 지식이 부족해서 그런게 아닌가 싶네요 ㅜㅠ

테스트를 하고싶지만 어떻게 시작을 해야하는지 몰라 질문을 하고있답니다 ㅜㅠ

일단 되는대로 시작을 해보고 알려주신 답변을 참고하여 차근차근 알아가 봐야겠네요 ㅎㅎ

감사합니다~
[guest]

... 46  [47]  48  49  50  51  52  53  54  55  56  57  58  59  60  ...
NoWriterDateCnt.TitleFile(s)
3663Sung...12/10/201511740UWP 서버 프로그래밍 작업 중 [5]
3662Sung...12/9/201511592uwp앱에서 접속한 클라이언트 주소값을 받아서 표시하고 싶은데 어떤 메소드를 써야 할까요? [7]
3661김무진12/9/201510924Oracle 환경에서 데이터를 조회할때 한글이 ? 이렇게 표시가됩니다. [1]
3660질문자12/7/201512799OpenFileDialog 호출시 hang걸리는 문제 [4]
3659Sung...12/4/201512475UWP 앱에서 textBox로 클라에서 받은 값을 나타내고 싶은데 안되고 있습니다. [5]
3658강준12/3/201511681Visual Studio (Xamarin) vs Eclipse [2]
3656DEVY...12/1/201510649MasterPageFile 사용시 다국어 처리 질문입니다. [1]
3653DEVY...11/26/201512152ds:Signature 질문입니다. [7]
3654윤용한11/27/201511901    답변글 [답변]: ds:Signature 질문입니다. [3]
3657윤용한12/1/201514181    답변글 [답변]: ds:Signature 질문입니다. [1]
3651노태현11/20/201544886MariaDB - ASP.NET오류의 원인조차 못 찾고 있습니다.. [2]파일 다운로드2
3652노태현11/20/201511722    답변글 [답변]: MariaDB - ASP.NET오류의 원인조차 못 찾고 있습니다.. [3]
3649kokon11/17/201512185예제 파일 실행이 안 되네요 [5]
3647Sang...11/15/201510609Part 3 목차? [5]
3646힘찬도약11/13/201515463c# mscorlib System.IO IOException [8]파일 다운로드2
3644힘찬도약11/11/201514623c# user.config파일 [2]
3645spow...11/13/201511617    답변글 [답변]: c# user.config파일 - Json.NET을 이용한 설정파일 처리 [1]파일 다운로드1
3643힘찬도약11/11/201513426C# 함수의 processing time과 재호출 [14]
3642.net11/10/201512131c# 으로 작성된 com+ 에 대한 문제입니다. [2]
3641힘참도약11/9/201512558c# log file 관련해서 질문드립니다. [5]
3638윤창선11/4/201513125사설IP가 부여된 무선라우터간 영상전송 관련 문의 [8]
3634Hyun...11/2/201510694c# 에서 webkit browser에서 webgl을 이용하는 사이트에 접속이 안됩니다. [1]
3633힘찬도약10/31/201511308mysql insert where not exists [6]
3632힘찬도약10/27/201512017C# Lock 관련해서 질문드립니다. [6]
3655iwc11/30/201510138    답변글 [답변]: C# Lock 관련해서 질문드립니다.
3631강준10/26/201512979iis 8.5 preload 기능에 대해 질문이 있습니다. [9]
... 46  [47]  48  49  50  51  52  53  54  55  56  57  58  59  60  ...