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

 안녕하세요

 지난번에 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에게 전달해주는 것이다 이정도인데. 그게 그건것 같아서 혼란스럽습니다.

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




donaricano-btn



[최초 등록일: ]
[최종 수정일: 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분
[김형진] 답변 감사드립니다

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

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

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

감사합니다~
[손님]

... 31  32  33  34  35  [36]  37  38  39  40  41  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
1309서동원8/12/20145901안녕하세요. embeded dll과 관련하여 질문드립니다. [4]
1308김솔8/11/20149943리스트뷰에서 중복파일체크를 하고싶습니다. [3]
1306이상현8/7/20144809Entity 프레임웍에서 테이블만 추가로 등록하는 방법
1307이상현8/7/20144651    답변글 [답변]: 자답이네요. [1]
1305popo8/7/20146208wpf UserControl List 바인딩 질문 입니다. [1]
1304민경수8/7/20148206네이버 카페에 구글 스프레드 시트 삽입 [1]
1303김동진8/7/20145787vmware환경에서 Guest IP를 192대역으로 받을 수 있는 방법은 없을까요~? [3]
1302김문경7/31/20145364스마트클라이언트 오라클 연결 [1]
1314이재균8/20/20144688    답변글 [답변]: 스마트클라이언트 오라클 연결
1300아로스7/28/201415544c# 인터넷 임시 파일 삭제 문의 [12]파일 다운로드1
1299서동원7/28/20144939안녕하세요. 혹시 Internet_Zone과 관련된문제인가 해서 질문드립니다. [1]
1298(none)7/25/20149101(글쓴이의 요청으로 삭제합니다.) [15]
1295서동원7/22/20145935안녕하세요. 스마트클라이언트에 대해 질문드립니다. [2]파일 다운로드1
1294(none)7/21/20145549(글쓴이의 요청으로 삭제합니다.) [2]
1293VS20137/20/20146513VS2013 Ultimate에 Windows Phone 프로젝트 템플릿 추가 방법 문의 [1]파일 다운로드2
1292(none)7/21/20144533(글쓴이의 요청으로 삭제합니다.) [2]
1291zino7/16/20144778chromium 배포본 만들기~ [1]
1290(none)7/13/20145678(글쓴이의 요청으로 삭제합니다.) [3]
1288박주만7/8/201414797C# 서비스 기반 데이터베이스(mdf) & InstallShield Limited Edition 설치 및 배포 [2]파일 다운로드1
1287김용환7/8/201412299오라클 db 사용관련 문의입니다. [4]파일 다운로드1
1286C#조으다7/8/20145049WebBrowser 공유기 관리 웹 페이지 인증 [3]
1285C#조으다7/5/20145891IE DocumentComplete 이벤트가 발생되지 않습니다. [2]
1284(none)7/4/20145552(글쓴이의 요청으로 삭제합니다.) [3]
1283김영대7/3/20147656안녕하십니까 정성태님 죄송하지만 SmartClient 에 관한 질문이 있습니다. [9]
1282(none)7/2/20144819(글쓴이의 요청으로 삭제합니다.) [2]
1281(none)7/1/20145308(글쓴이의 요청으로 삭제합니다.) [4]
... 31  32  33  34  35  [36]  37  38  39  40  41  42  43  44  45  ...