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


 안녕하세요

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

... 31  32  33  34  35  36  37  [38]  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
490510/25/20178323watermark 관련문의 [1]
4903Ho10/25/20178724간단한 서버를 구현해 보고 싶습니다. [2]
4902황재승10/22/20179754C# 7.1 프로그래밍 왕초보자도 이해할 수 있는 수준인가요? [1]
4901김레오10/17/201714456c# 프로그램 난독화 도구인 confuserex라는 도구를 사용하다 여쭙습니다. [2]
4900황준범10/12/201710208ClickOnce 배포관련 질문드립니다. [1]
4899Ques...9/28/201712624C# 프로그램이 "응답 없음" 시에도 계속 독립적으로 돌아가는 타이머 생성법 [3]
4898ssdrm9/27/20179410Clickonce 실행시 보안에 막힙니다 ㅠ [1]
4897김태진9/23/20179593윈도우7 작업관리자의 상세(details)탭 생성에 대해 여쭙습니다. [1]
4896장진국9/19/201710950안녕하세요 WPF 에서 Window객체가 가비지 콜렉션에 의해 수집되지 않는거 같아서 문의드립니다. [1]
4895Ques...9/18/201710596Generic 에 관하여 질문드립니다. [5]
4894얼마전6...9/14/201712469C# 7.1에서 보강된 부분만 PDF로 제공하는 건 아니되나요? [2]
4893BigII9/14/201711513타 언어(JAVA, PHP 등)에서 받은 RSA 개인키 문자열을 이용하여 내용 복호화 가능 여부 [4]
4892Ques...9/13/201710547서브 폼에서는 무거운 작업을해도 속도가 빠를까요 ?? [1]
4891윤현수9/11/201711197Taskbar에 관한 질문입니다. [5]
4890제발9/11/20179711 시작하세요! C# 6.0 프로그래밍 책이 절판됐나요? [5]파일 다운로드1
4889낙낙이9/7/20179154안녕하세요! xsl관련 이야기입니다. [1]
4888heyh...9/6/20178981클릭원스를 수동으로 배포 시 업데이트 할 때 [1]
4887이경현9/4/20179545Windows server 2012 파일 없어짐 현상... [1]
4886질문자9/1/201711409disconnecteditem에 대하여 아시나요? [4]파일 다운로드1
4883솔솔8/30/20179890dataview에서 select한 index 가져오기 [1]
4882user8/30/201712563UI 변경 작업 여러개를 동시에 사용하려면 어떻게 해야되나요 ?? [7]
4884user8/31/20179182    답변글 [답변]: UI 변경 작업 여러개를 동시에 사용하려면 어떻게 해야되나요 ??파일 다운로드1
4881kmi8/30/20179376진행속도가 중간에 더뎌지는 문제가 있는데 해결할 수 있는 방법이 있나 궁금합니다. [3]
4880김호종8/29/20179789HTTP JSON POST 관련 질문 드립니다. [1]
4879aos8/27/20179971DateTime 표시할 때 포맷 설정시 밀리초까지 포함하는 법이 궁금합니다 [1]
4878heyh...8/25/201710044프로세스의 프로세스 찾기(?) [2]
... 31  32  33  34  35  36  37  [38]  39  40  41  42  43  44  45  ...