호스팅2009. 4. 1. 16:28

웹 개발 해야지, 하고 마음먹으신 후 해야할 일들을 나열해 볼까요?

PC에 윈도우는 깔려있다고 가정해보죠. IIS 웹서버, DBMS, .NET Framework, 개발툴 등을 별도의 사이트를 찾아다니면서 다운로드 받아서 설치하셔야 하는데, 쉽게 말해 번거롭죠. 시간도 많이 걸리고.
결국 microsoft.com, download 사이트, codeplex.com 등 여기 저기 찾으셨어야 하죠.

마이크로소프트 웹 플랫폼 설치기 2.0 하나면 이런 고민이 다 해결됩니다.
Web Platform Installer 2.0
http://www.microsoft.com/web/downloads/platform.aspx


위의 설치기를 이용하면 PHP 커뮤니티 버전 (5.2.9-1) 역시 함께 설치 됩니다.

  • Internet Information Services (IIS) 5.1 on Windows XP SP3
  • IIS 6.0 on Windows Server 2003 SP2
  • IIS 7.0 on Windows Vista SP1 and Windows Server 2008
  • SQL Server 2008 Express
  • .NET Framework 3.5 SP1
  • Visual Web Developer 2008 Express Edition
  • Various IIS Extensions
  • ASP.NET and features such as ASP.NET MVC
  • Silverlight Tools for Visual Studio

이런 웹 플랫폼 위에서 구동되는 다양한 애플리케이션들을 사용하실 수 있습니다.
http://www.microsoft.com/web/gallery/Categories.aspx
바로 위의 링크를 클릭하시면 찾아 보실 수 있죠.

제로보드, TextCube 등 우리나라에서 인기있는 애플리케이션은 어디 있냐고요?
http://www.windowslovephp.co.kr 에 가시면 매뉴얼을 확인하실 수 있습니다.
PHP on Windows, ASP, ASP.NET on Windows가 이제는 모두 가능하게 된거죠.

Posted by 조이트리
호스팅2009. 1. 29. 17:07

2주에 한 번씩 위와 같은 Training을 진행하고 있습니다. 호스팅 비즈니스도 변화의 시기가 왔습니다. 웹호스팅,
서버호스팅  외에 애플리케이션 호스팅 등의 영역이 추가되었습니다. 누가 먼저 선점하는지 지켜봐야 할 것 같습니다. 

오늘 진행한 세미나에서는 Windows Server 2008 + IIS7 + PHP + MySQL 환경에서 구동되는 www.zconvert.com 사이트를 소개해 드렸습니다. 이 사이트는 Windows Server 2008의 가상화, Hyper-V 기반위에서 구동되고 있는데 사이트 속도를 보시면 굉장히 빠른 것을 보실 수 있습니다.
PHP on Windows가 좋은 궁합이라는 것을 보여주는 사례라고 할 수 있죠. 

또한, 많은 분들이 잘 모르고 계시는 대역폭을 절감할 수 있는 IIS7의 Bit Rate Throttling 을 통한 비용절감 방안, 애플리케이션 호스팅의 가능성 및 최초 적용 솔루션으로 Dynamics CRM에 대한 소개 등의 시간을 가졌습니다. 
이후에 일정이 잡히면 공지하도록 하겠습니다. 많은 참여 부탁 드립니다. 


Posted by 조이트리
호스팅2008. 11. 25. 11:38

웹 사이트 개발을 시작하려고 할 때 뭐가 필요할까요? 개발도구, 프레임웍, 데이터베이스, 웹서버 등이 있어야 합니다.
이런 다양한 도구들을 사용하려면, 해당 파일이 있는 곳을 찾아서 다운로드, 설치, 셋팅하는 과정을 거쳐야 합니다.
무척 번거롭고 시간이 소요되는 작업입니다. 라이선스까지 필요하다면 더욱 복잡해지죠.

여기서 잠깐! 마이크로소프트의 무료 개발도구, 데이터베이스가 있다는 사실, 설마 아직도 모르시는 건 아니겠죠?
Visual Web Developer 2008 Express SP1, SQL Server 2008 Express Edition이 바로 그 주인공이죠.
물론 Visual Web Developer 2005 Express, SQL Server 2005 Express Edition도 있습니다.
여기에 .NET Framework 3.5 SP1, IIS6.0 이나 IIS7.0이 있다면 웹 개발이 바로 가능해집니다.
ASP.NET만 쓸 수 있는 것 아니냐고요? 천만예요. IIS6.0에는 장착이 필요하지만, IIS7.0에는 이미 내장된 FastCGI 모듈을
사용하면 PHP를 최고의 성능과 안정성을 제공 받으며 개발할 수 있습니다.

그런데, 앞에서 언급했 듯 각각의 도구를 개별적으로 다운, 설치하려면 불편하다는 겁니다.
이런 개발자들의 고민을 단번에 해결해드리는 "마이크로소프트 무료 웹 플랫폼 설치기"가 나왔습니다.
이 설치기를 이용하시면 위에서 언급한 개발에 필요한 모든 도구들을 한 번에 다운받아, 설치할 수 있게 됩니다.

위의 링크에서 Install Now (지금 설치하기)를 누르시면 됩니다. (현재까지는 Release Candidate 버전입니다)
이후의 과정은 "Your Choice"를 선택하신 후 원하는 도구, 프레임웍, 기능들을 선택하신 후 진행하시면
원하는 도구가 다운로드, 설치되는 지 확인하시면 모든 준비가 완료됩니다.


Posted by 조이트리
호스팅2008. 11. 17. 11:36

 웹에서 비디오를 서비스하는 것은 가장 일반적인 시나리오 중의 하나가 되었습니다. 상품에 대한 설명 비디오, 동영상 교육 비디오, 광고, UCC 동영상, 뮤지비디오 등 정말 다양합니다.

그런데 한가지 이슈가 있죠. 네트웍 대역폭은 IT에서 가장 비용이 많이 드는 항목 입니다. 또한, 고화질을 원한다면 그 비용은 훨씬 더 비싸지죠.

그렇다면, 위와 같은 동영상을 호스팅 하는 방법과 그 비용을 줄일 수 있는 방법에 관심이 갈 수 밖에 없을텐데요, 그 부분을 오늘 설명드리도록 하겠습니다.

1. 무료 미디어 호스팅 서비스를 사용하는 방법
    - YouTube, 마이크로소프트 Silverlight 스트리밍 서비스, NHN의 블로그에 연계하는 방법 등 다양하죠. 즉, 비디오 컨텐츠를 다른 회사의 네트웍을 이용해서, 그 회사가 대역폭 비용을 내도록 하는 방법이죠. 그 회사는 광고등으로 수익을 얻게 되는 방식 입니다. 마이크로소프트의 Silverlight 스트리밍 서비스는 10G의 컨텐츠까지 업로드할 수 있고, 한달에 5TB까지는 무료로 다운로드 가능하도록 제공 되는 서비스 입니다. (최대 1.4 Mbps Bit-rate 제공)

2. 자체 서버에서 미디어를 호스팅 하는 방법
  
- 미디어에 인증을 부여하고 싶거나, 큰 동영상을 서비스하는 경우, 또는 비디오에 광고를 넣고 싶은 경우에는 직접 호스팅을 하고 싶어질 겁니다. 컨트롤을 해야 하기 때문이죠.

이때는 두가지 옵션이 있습니다.
    1) 스트리밍 서버 시나리오
       . 스트리밍 시나리오에서는 클라이언트 (Silverlight, 윈도우 미디어 플레이어, 플래쉬 등)가 스트리밍 서버에 연결을 하게 됩니다. 스트리밍 서버가 비디오 스트림을 내려 보내고, 사용자는 앞으로 가거나 뒤로 돌려보기, 정지, 멈춤 등을 자유롭게 할 수 있습니다. 사용자가 브라우저를 닫거나, 다른 페이지로 이동하면 비디오 스트림이 자동적으로 데이터 보내는 것을 멈추게 되죠.
Windows Media Services (WMS)는 윈도우에서 무료로 다운받아 사용할 수 있는 스트리밍 서버이고, 윈도우 미디어 플레이어나 크로스 플랫폼 기능이 제공되는 Silverlight 등의 클라이언트를 사용할 수 있습니다. 웹에서 비디오 스트리밍을 제공할 때 가장 확장성이 뛰어나고 비용 효율적인 방식이며, 온디맨드 스트리밍, 또는 실시간 스트리밍 등의 방식으로도 사용될 수 있습니다. 또한, Windows Server 2008 Web Server 에디션에서도 구동 가능합니다.

   2) 프로그레시브 다운로드 시나리오
       . 프로그레시브 다운로드 시나리오에서 클라이언트 (플래쉬, Silverlight)는 웹서버에 직접 연결되어 비디오를 다운로드 받기 시작하며, 충분한 양이 다운로드 되면 바로 플레이가 가능합니다. 이 방식의 장점은 웹서버에 설정하는 것이 정말 쉽습니다. 웹서버에 해당 미디어를 복사한 후, URL 주소만 정해지면 클라이언트 비디오 플레이어가 플래이 합니다. 웹서버에 설정이 필요없고, 스트리밍 서버 셋업등의 과정이 불필요합니다.

프로그레시브 방식의 단점은 웹서버가 최대한 빨리 파일이 다운로드 한다는 것입니다. 사용자가 사이트에서 비디오 보기를 클릭하면 웹서버가 클라이언트로 해당 파일을 최대한 빠르게 보내기 시작합니다. 사용자가 처음부터 끝까지 비디오를 본다면 별 문제가 없지만, 비디오를 보다가 중간에 멈추거나, 다른 페이지로 옮겨 가면 보지도 않는 파일이 다운로드가 된다는 불합리한 부분이 있습니다. 보지도 않는데 다운로드 되는 내용이 수 메가바이트나 된다면, 그 만큼의 돈을 낭비하고 있는 셈이 되는거죠.

3. 그래서, IIS7.0 비트 레이트 Throttling 모듈 (Bit Rate Throttling Module)이 있습니다.
     - 해당 모듈은 미디어 유형에 관계없이 Bandwidth, 즉 대역폭의 낭비를 막아줍니다. 최초로 마임타입 확인 후, 파일에 대해 Bit-rate 인코딩을 한 후 최초 20초간 플레이 할 수 있는 양의 미디어를 최대한 빠르게 전송합니다. 일단 20초 만큼의 미디어가 다운된 이후 부터는 Bit Rate Throttling 모듈이 전송되는 양을 제어하기 시작합니다. 그러면서, 클라이언트가 플레이어를 멈추거나 다른 페이지로 옮겨가는 것을 모니터링 하다가 사용자가 시청을 멈추는 순간 자동적으로 파일 보내기를 멈추게 하는 역할을 합니다.

예를들면, 35MB짜리 비디오 파일이 500Kbps의 속도로 인코딩되어 상영되면, IIS는 20초에 해당하는 만큼의 파일을 즉시 내려보낸 후 (20초 * 500Kbps, 1.25MB), 이후에는 초당 500Kbps의 컨텐츠를 내려보냅니다. (20초 만큼의 버퍼만 갖도록 유지, 사용자가 보다가 버퍼링이 일어나지 않도록 하기 위함)

만약, 1분 후에 사용자가 비디오 보기를 멈추거나 다른 페이지로 옮겨 가면, IIS가 상황을 인지하고 컨텐츠 전송을 멈추게 됩니다. IIS는 단지 80초에 해당하는 비디오만 다운로드 했기 때문에 전체 35MB 중 (5M, 즉 80초 * 500kbps)의 대역폭만 사용한 셈이 되는 것이죠. 이 30MB가 수백번 반복 된다면 대역폭, 즉 비용을 엄청나게 절약할 수 있게 되는 것입니다.


  • Bit Rate Throttling Module Setup
  • Bit Rate Throttling Configuration Walkthrough
  • Bit Rate Throttling Extensibility
  • ScottGu's의 블로그를 참고하여 글을 정리하였습니다.

    Posted by 조이트리
    호스팅2008. 8. 14. 15:23

    성능 최적화는 여러 부분에서 다루어질 수 있겠지만 운영체제, 드라이버 최적화가 가장 큰 영향을 주게 되는데, 마이크로소프트의 Hyper-V는 바로 이곳에 초점을 맞추어서 개발되었습니다. 또한 64 bit 아키텍처로 Host, Guest 머신에 64 bit 운영체제 설치가 가능하고 Guest(가상)머신에 최대 4개 까지의 CPU를 사용 가능하며, 메모리 역시 Enterprise, Data Center Edition은 64G, Standard는 32G 까지 지원 가능하게 설계가 되어 있습니다. 또한, synthetic IO (즉, 가상 머신이 Input/Output 채널에 이전 같은 에뮬레이션 방식이 아닌, Windows 드라이버에 대해 Native하게 빠르게 접근할 수 있도록 구성된) 방식을 통한 빠른 성능이 가능해 졌습니다.
     - Synthetic I/O 구조에서 Hyper-V는 클라이언트 서버 방식의 아키텍처를 사용하는데, Kernel Level에서 Root 영역에서는 Virtual Service Provider의 역할, 클라이언트
       영역에서는 Virtual Service Client가 I/O를 주고 받으므로 훨씬 효과적인 I/O가 가능해졌습니다.

    또한, Hyper-V는 Bare Metal (즉, 순수 하드웨어 장비) 위에서 구동이 되는데 최적의 속도와 확장성을 가지는 아주 가벼운 소프트웨어 Layer로 이루어져 있습니다. 실제 크기가 800K 바이트 밖에 되지 않죠. 경쟁사 제품이 32M 바이트인 것에 비하면 훨씬 가볍고, 또한 Windows Server 2008 Server Core 버전에서 구동될 경우 훨씬 더 적은 자원을 사용하며 운영될 수 있습니다. (Server Core 버전은 그래픽 인터페이스를 사용하지 않는 커맨드라인으로 제어가 가능한 아주 가벼운 운영체제 입니다)

    Posted by 조이트리
    호스팅2008. 8. 13. 13:25
    Hyper-V 기반 가상머신에서의 MSSQL 2005 정상 구동 여부는 아직 테스트가 완료 되지는 않았지만,
    SQL Server 2005를 가상머신에 구동할 수는 있습니다.
    만약, 문제가 발생할 경우 경우 MSSQL Server 2005의 코드 수정이 필요하지 않는 정도는 Microsoft의 CSS 서비스를 받으실 수 있습니다.
     
    가상머신으로 구동하는 동안 문제가 발생하면 일단은 CSS를 통해 문제 해결을 시도하고, 가상머신이 아닌 물리적 서버로 이전해 본 후
    동일한 문제가 발생하는지 여부를 확인하여, 가상머신과 물리적 서버 환경에서 똑같은 오류가 발생하면 SQL Server 프로덕트 그룹에
    이슈를 제기하여 버그를 해결할 수 있습니다.
     
    지속적으로 MSSQL Server 2005가 가상머신에서 구동될 수 있도록 테스트가 진행중이고,
    향후 완전히 지원될 SQL 버전은 아래와 같습니다. 최종 테스트가 완료되면 다시 글을 올리도록 하겠습니다.
     
    - Microsoft SQL Server 2005 Workgroup Edition
    - Microsoft SQL Server 2005 Standard Edition
    - Microsoft SQL Server 2005 Developer Edition
    - Microsoft SQL Server 2005 Enterprise Edition

    개인적으로 Transaction이 빈번한 DB서버는 가상화 환경으로 구축하지 않는 것을 권고합니다. 성능상의 이슈가 있을 수 있습니다. 어느 가상화 제품을 이용하든 말이지요.

    참고하세요.

    Posted by 조이트리
    호스팅2008. 7. 31. 15:39
    Integrated Components의 설치 방법을 알려달라는 분이 계셔서 글을 올립니다.
    Hyper-V를 설치하는 것 까지는 하셨다고 하셨기에 가상머신을 생성하는 방법부터 올리도록 하겠습니다.

    단계1: 가상머신 생성 (이미 완료하신 경우 단계2로 넘어갑니다)
      CD/DVD 또는, ISO 파일 있죠?
      1) Hyper-V 관리자를 엽니다. (시작 - 관리도구 - Hyper-V 관리자 선택)
      2) Action 메뉴에서 새로만들기를 선택 후 가상머신(VM)을 클릭합니다.
      3) 메모리에 충분한 크기를 할당합니다.
      4) 네트워크 설정은  리스트 중에서 원하는 어댑터를 선택합니다.
      5) 원격지의 이미지 서버를 통해 가상머신을 설정하려면 외부 네트웍을 선택해야 합니다.
      6) 가상 하드 디스크(VHD) 연결에서 이름, 위치, 디스크의 크기를 정합니다.
      7) 설정 옵션에서 CD/DVD-ROM, .iso 파일 중 선택합니다.
      8) 완료되면 끝내기를 클릭합니다.
      9) 가상머신을 생성한 후 새로 시작하면 운영체제를 설치합니다.

    단계2: 통합 컴포넌트 설치
      통합 컴포넌트를 설치하는 것이 마지막 단계입니다. 설치하지 않으시면 가상머신에 마우스가 넘어가지 않는
      현상이 나타날 수 있습니다.

      셋업 단계 중에 통합 컴포넌트 설치는 가상서버와 가상머신(클라이언트)간의 통합이 원활히 이루어지도록
      소프트웨어 패키지를 선택하게 됩니다.
      1) 가상머신의 이름을 오른쪽 마우스 버튼 클릭 후 연결을 클릭합니다.
      2) 가상머신 연결도구가 열립니다.
      3) 작업 메뉴에서 통합서비스 설치 디스크 삽입을 클릭합니다. 이때 가상 DVD드라이브에 설치 디스크가 삽입
          됩니다.
      4) 자동 설치가 이루어지는데, 운영체제의 종류에 따라 수동시작이 필요할 수 있습니다.
          만약, 자동설치가 안되면 가상머신의 운영체제 CD/DVD 드라이브로 이동하여 설치 디스크를 수동 시작
          합니다.
       
     감사합니다. (WS2008 Hyper-V Step By Step 가이드 첨부합니다. 영문)
    Posted by 조이트리
    호스팅2008. 7. 11. 10:24
    안녕하세요, 7월 10일 섬유센터 세미나실에서 KIDC와 마이크로소프트 호스팅 세미나를 진행했습니다.
    많은 분이 참석하셔서 열정적으로 질문하시는 모습에 큰 감명을 받았습니다.

    어제 설명드린 발표자료 공유합니다. 참고하세요.
    Posted by 조이트리
    호스팅2008. 7. 10. 10:25

    가상화에 대해 설명해 보시겠습니까? 가상화에는 서버 가상화만 있을까요?
    아니 가상화가 왜 등장하게 되었을까요?

    사용자 삽입 이미지
    엑셀이라는 어플리케이션이 운영체제에 설치되면 레지스트리에 값을 설정하고, 여러 DLL 파일을 사용하게 되는 등 밀결합됩니다. 운영체제 역시 하드웨어에 아주 밀접하게 붙어 있죠. 운영체제를 바로 떼내서 다른 하드웨어로 옮기는 것은 여간 복잡한 일이 아니지요. 오류 가능성도 존재하게 되고요.
    이렇게 프로그램과 운영체제, 하드웨어 간의 밀접한 연결고리를 떼내서 서로 독립적인 존재로 만들어주면 아주 유연하게 IT를 사용할 수 있게 되지 않을까요? 이런 Concept을 Dynamic IT라고 이야기 합니다.
    Dynamic IT를 가능하게 하는 핵심 기술이 바로 가상화가 되는 것이죠. 그렇다면 가상화는 어떤 것들이 있을까요? 우리가 익숙한 환경이 바로 클라이언트, 즉 데스크탑이 있고 어플리케이션, 서버 등이 대표적이지요. 이런 각각의 단위마다 가상화가 가능합니다.

    예를들면 "윈도우 서버를 10분 안에 바로 사용했으면 좋겠어. 기술 지원에 관해 엔지니어들이 접하는 다양한 질의 응답을 이 웹사이트에서 구동해야 하거든", "Visio 어플리케이션을 지금 바로 사용했으면 좋겠어. 조직도를 그려야 하는데 그리기가 영 쉽지 않네. ER 다이어그램 역시 ...", "1번 웹서버에 요청이 너무 많아. 새로운 서버를 바로 추가해야 하는데 어쩌지? 다운 될 것 같아", "우리 회사는 엑셀,파워포인트 2003을 사용하고 있는데 고객이 2007로 파일을 보내왔네. 도저히 읽을 수가 없어. 2003으로 다시 보내달라고 하기 좀 그런데. 근데 나는 2003도 필요하고 2007도 필요한데. 쩝" 이와 같은 다양한 요구를 바로 수용 가능하여 직원의 업무 생산성을 높일 수 있는 기술, 이것이 바로 가상화 입니다.

    Posted by 조이트리
    호스팅2008. 7. 2. 14:57

    앞의 글에서 PHP 관련하여 적어보았습니다. FastCGI 설정하는 법과 PHP를 설정하는 법을 살펴보겠습니다.
    서버관리자 - 롤 서비스에서 CGI를 선택하세요. CGI와 FastCGI 서비스를 모두 설치합니다.


    이제 PHP 엔진이 필요하죠. http://www.php.net/downloads.php를 클릭하셔서 non-Thread safe 버전의 PHP를 다운 받으세요. non-Thread safe와 FastCGI를 함께 사용하셔야 최적의 성능을 보장받을 수 있습니다. Thread safety check를 할 필요가 없기에 시간이 단축되는 것이죠.

    1. 파일을 압축해제하세요. C:\PHP 디렉토리를 만드시는 것이 좋습니다. 또한, php.ini-recommended를 php.ini로 파일명을 바꾸세요
    2. php.ini 파일을 오픈 한 후 몇 가지 파라미터의 주석을 해제하세요.
        - fastcgi.impersonate = 1
        - cgi.fix_pathinfo = 1
        - cgi.force_redirect = 0
        - open_basedir 설정 (웹 사이트 컨텐츠가 있는 폴더나 네트웍 경로)
    3. PHP가 제대로 설치되었는지 확인을 위해 명령문에 아래와 같이 입력
        C:\PHP> php -info

    IIS가 PHP 어플리케이션을 처리하기 위해 처리기 매핑(Handler Mapping)을 설정해야 합니다. 주요 목적은 PHP 파일의 요청을 FastCGI를 통해 PHP 엔진으로 보내는 것입니다.




    요청 Path: *.php
    모듈: FastCGIModule
    실행파일: C:\php-cgi.exe
    이름: PHP via FastCGi (원하는데로 설정)

    대화상자에서 OK를 선택하시면 됩니다.

    이후에 c:\inetpub\wwwroot 폴더에 phpinfo.php 파일을 하나 생성합니다.
    내용: <?php phpinfo(); ?>

    브라우저를 연다음 http://localhost/phpinfo.php를 입력하면 설정이 제대로 되었다면 php에 대한 정보를 보여주는 화면이 나옵니다.

    이제 다 끝났습니다. 마지막으로 PHP와 FastCGI 리사이클링을 위한 설정을 해보죠
    FastCGI는 native PHP 리사이클링이 이루어지기 전에 php-cgi.exe 프로세스들을 리사이클링 시킵니다. 바로 이 리사이클링은 설정 프로퍼티, instanceMaxRequests에 의해 조절됩니다. 이 값은 FastCGI가 리사이클링 되기 전에 몇개의 요청을 처리할 것인지를 정하는 것이죠. PHP 역시 비슷한 설정값을 가지고 있는데, PHP_FCGI_MAX_REQUESTS가 바로 그것입니다. 만약 instanceMaxRequests의 값을 PHP_FCGI_MAX_REQUESTS의 값보다 작거나 같게 설정하면 PHP의 리사이클은 절대 발생하지 않을 것입니다.
    만약, 파라미터 값이 설정되지 않으면 디폴트 값을 사용하게 됩니다.
    instanceMaxRequests: 200, PHP_FCGI_MAX_REQUESTS: 500 (대부분의 PHP 빌드에서)

    파라미터 값을 설정하려면 아래와 같은 명령문을 사용하시면 됩니다.
    c:\>%windir%\system32\inersrv\appcmd set config -section:system.webServer/fastCGI /[fullPath='c:\{php_folder}\php-cgi.exe'].instanceMaxRequests:10000

    c:\>%windir%\system32\inersrv\appcmd set config -section:system.webServer/fastCGI /
    [fullPath='c:\{php_folder}\php-cgi.exe'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']

    www.iis.net에서 참조

    Posted by 조이트리