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


 안녕하세요

 지난번에 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]

... 16  17  18  19  20  [21]  22  23  24  25  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
5402민성11/5/20207751안녕하세요 책을 보고 질문하나만 드릴깨요 [2]
5401민성11/3/20206812안녕하세요 이번에도 질문 하나만 드리겠습니다. [2]
5400진우10/29/20206514SQL Server 관련 몇가지 문의 [2]
5399Wpf개...10/21/20206705Binding 된 항목의 갱신 시 간헐적 끊어짐 발생 문제. [2]
5397나그네10/15/20206183.net Core 3.1 에서 Entity Framework 와 ADO.NET 선택에 관해 여쭤봅니다. [2]
5396여정욱10/15/20206277CLR heap 관련 질문 2 [2]
5395여정욱10/14/20208043CLR heap 관련 질문 [2]
5394진우10/12/202011478닷넷코어 (닷넷5) winform wpf는 리눅스/맥에서도 가능한가요? [2]
5393김세용9/23/20207980C#에서 대량의 클래스를 빠르게 생성하는 방법이 없을까요? [6]
5392전경호9/22/20207625WPF에서 WindowsFormsHost의 메모리 누수 문제 때문에 문의드립니다. [1]파일 다운로드1
5391민성9/22/20206944안녕하세요 항상 감사드립니다. 하나 질문 드리겠습니다. [1]
5390alow...9/18/20209823System.AccessViolationException 보호된메모리 부분 예외처리 [1]
5389C# 8...9/18/20208061후위 증감 연산자 오버로딩 방법 좀 알려주세요 [4]
5388영귤9/17/20209003Nullable reference type 에 Non-nullable reference type 을 대입해도 경고가 발생하지 않습니다. [2]
5387하태9/17/20207446안녕하세요! 비동기 통신과 관련하여 질문하나만 드리겠습니다! [3]
5386박민웅9/16/20209222정성태 스승님 안녕하세요 !! [1]
5385영귤9/12/202067103항 연산자에 ref 지원? [1]
5384guest9/10/20206588시작하세요! C# 8.0 프로그래밍 책에 오타가 있는 것 같습니다. [3]
5383민성9/8/20208082안녕하세요 자주 도움을 주셔서 감사드립니다. WPF에서 크롬 브라우저 삽입에 대하여 [1]
5382정씨9/4/20207250[C#] 시리얼통신 수신된 데이터를 그리드뷰에 뿌르는데 일정 시간이 지나면 버벅 거리는 이유가 뭘까요?? [3]
5381질문 있...9/4/20207024웹으로 사용하는 c#과 응용프로그램으로 사용하는 c#이 많이 다른가요?? [2]
5380yeon9/3/20207093winform 의 datagridview는 바인딩이 안 되나요? [1]
5379guest9/2/20209745시작하세요! C# 8.0 프로그래밍 책에 오타가 있습니다. [3]
5378net9/2/20207248mes 응용프로그램을 .net 웹폼으로 만들기도 하나요? [2]
5377net9/2/20206657.net 사용한 웹폼으로 응용프로그램을 만들경우 [1]
5376영귤9/1/20207041nullable 타입간의 비교연산은 그냥 가능한 건가요? [1]
... 16  17  18  19  20  [21]  22  23  24  25  26  27  28  29  30  ...