이번 3차 온라인 캠프에서는 이전과 비슷하게 두 대의 VM이 제공되었다. 특히 Server OS의 가장 최신 버전인 Windows Server 2012를 사용해 볼 수 있는 기회였다.

 

Windows Azure(이하 애저)에서는 잘 아는 것과 같이 VM 관리를 위하여 RDP로 접근을 하게 된다. 만약 현재 자신의 클라이언트 OS가 Windows7이라면, Windows 2012에서 제공하는 RDP 8.0 버전을 효과적으로 사용하기 위해서 클라이언트 윈도우 업데이트를 받기를 권장 한다.

 

 

업데이트를 완료하고 RDP로 접근을 하게 되면 아래 그림과 같이 원격 화면 상단 메뉴에서 쉽게 [참 메뉴]와 같은 기능을 바로 실행할 수 있는 메뉴를 볼 수 있다.


1.png

 

Windows Server 2012는 많은 변화가 있겠지만, 개발자 입장에서는 IIS8 과 PowerShell 3을 주의 깊게 살펴볼 수 있을 것 같다.

 

[Tip. 데스크톱 화면에서 장치관리자등 단축 메뉴 바로 보이기]

모던UI도입등으로 윈도우에서 가장 친숙했던 시작버튼이 사라져, 장치관리자 등(특히 서버의 경우 사용 빈도가 높은) 기능을 검색 혹은 모던UI로 이동하여 찾아야 했다. 하지만 바탕화면에서 [윈도우키+X] 를 누르면 아래 그림과 같이 사용 빈도가 높은 메뉴를 바로 실행할 수 있는 목록을 볼 수 있다.


2.png

 

[Windows Server 2012 VM에 웹사이트 배포]

IIS 8참고 링크 : 4. What's New in IIS 8?

기본적으로 IIS가 설치되어 있지 않을 것이다. 서버의 Role 추가를 통해 아래와 같이 IIS를 추가해 준다. 그리고 ASP.NET 4.5 등 Application Server Role로 추가로 설치하였다.


3.png

 

4.png

 

IIS 설치 완료되면 아래 그림과 같이 IIS Manager를 실행하여 올바르게 완료가 되었는지 확인해 보기 바란다.

 

5.png

 

기본 웹사이트를 중지하고 테스트로 새로운 웹사이트를 하나 추가를 하였다. 현재 개발된 사이트에 맞는 App Pool의 .NET Framework 버전을 선택하면 되며, 테스트에서는 .NET Framework 4.5를 선택하였다.

 

6.png

 

이제 마지막으로, 애저 VM을 외부에서 접근하기 위해서는 반드시 ENDPOINTS에서 외부 접근이 필요한 포트를 설정해 주어야 한다. 해당 VM에서 웹사이트를 배포하였다면 적당한 포트(아마도 기본으로는 80 혹은 443 이겠지만)를 열어 주어야 한다. ENDPOINTS 추가 방법은이전 애저 사용 후기 설명을 참고해 주기 바란다.

HTTP 80으로 접근을 위해 다음과 같이 설정을 추가해 준다.


7.png

 

외부에서 접근을 해보도록 하겠다. 만약 외부에서 접근을 위한 DNS 을 정확히 모르겠다면, 애저 Dashboard에서 확인이 가능하다. (혹시나 해서 말씀 드리지만, 아래 DNS는 이번 온라인 캠프를 위한 임시 DNS이다. 몇 일 후면 자동 삭제 되므로 브라우저에서 주소를 입력해도 접근이 되지 않을 것이다.)


8.png

 

자 이제 브라우저에서 URL을 입력해 보자. 아주 훌륭하게 접근이 되는 것을 볼 수 있다. -_-;


9.png

 

[PowerShell 3.0 Preview]

이제는 Windows 플랫폼의 자동화를 위한 중요한 요소로 자리잡은 PowerShell이 벌써 3.0 버전으로 업그레이드 되었다. PowerShell은 윈도우뿐만 아니라 SQL Server, Sharepoint등 각 응용 서버 제품을 위한 추가 모듈도 제공해 주고 있어 다양한 분야에서 서버 관리를 좀더 쉽게 자동화 할 수 있다. 물론 애저를 위한 PowerShell도 존재한다.

 

 

지금은 PowerShell 3.0의 재미있는 새로운 기능에 대해 몇 가지 짤막하게 살펴보자.

 

  • Show-Command

    많은 cmdlet(커맨드랫) 모듈을 다 기억 할 수는 없을 것이다. 이럴 경우 cmdlet 창에서 Show-Command를 입력해 보기 바란다. 아래와 같이 여러 명령어를 쉽게 검색하고 옵션을 지정하여 실행할 수 있는 창을 볼 수 있다.


    10.png

     

  • ConvertTo-Json

    보통은 처리된 결과를 리스트 형태로 아래와 같이 확인 할 것이다. 현재 물리적인 드라이브 정보를 출력해 보았다.

     

    [Get-PSDrive]

     

    11.png

     

    하지만 처리한 결과를 데이터화 하여 재활용하기에는 부족한 점이 많다. 그리고 웹으로의 출력이 이루어 진다면 더더욱... 현재 웹에서 데이터 전달을 위해 가장 많이 사용되고 있는 형식인 JSON 포맷으로 위의 처리 결과를 변경해 보자. 기존 cmdlet에 ConvertTo-Json 를 추가해 주면 된다. 데이터 재활용 측면에서는 획기적이다. ConvertTo가 있다면 기존 JSON 형식을 가져 오는 것은? 눈치 빠른 사람은 이미 감 잡았을 것이다. To가 있으면 From이 있겠다. ConvertFrom-Json을 확인해 보면 된다. 자세한 내용은 Get-Help ConvertFrom-Json으로 확인 가능하다.

     

    [Get-PSDrive | ConvertTo-Json]

     

    12.png

     

  • Get-ControlPanelItem, Show-ControlPanelItem

    서버 관리에서 가장 많이 접근하는 기능 중에 각종 설정을 보거나 변경하기 위한 제어판이 있을 것이다. 물론 위에서 언급한 단축키를 통한 접근이나 메뉴를 통해서 접근을 할 수도 있지만, PowerShell을 통해서도 목록을 보고 직접 창을 띠울 수 있다. 만약 지금 다양한 서버 설정 작업 중에 빨리 특정 제어판 메뉴로 가기를 원한다면 유용할 것이다.

     

    [Get-ControlPanelItem]

    제어판 목록 확인, CanonicalName을 주의 깊게 보기 바란다.

     

    13.png

     

    바로 화면을 띄울 항목을 확인 했으면 다음과 같이 입력하면, 컴퓨터 정보의 시스템 화면이 바로 보일 것이다. (물론 Name으로도 가능하다.)

    [Show-ControlPanelItem -CanonicalName Microsoft.System] 혹은 [Get-ControlPanelItem -CanonicalName Microsoft.System | Show-ControlPanelItem]

     

    14.png

     

  • Windows PowerShell ISE 인텔리센스

    작업표시줄에서 오른쪽 마우스를 하면 아래 그림과 같이 PowerShell GUI 개발 환경인 Windows PowerShell ISE 를 실행 할 수 있다.

     

    15.png

     

    Visual Studio를 사용하는 개발자들은 잘 알겠지만, 기존 ISE에서 아쉬운 점이 인텔리센스 미지원 이었다. 하지만 PowerShell 3 버전에서는 인텔리센스 지원 및 개발 편의성 관련 하여 많은 추가가 이루어 졌다. 물론 Visual Studio를 사용했다면 PowerGUI 같은 3rd 파티 툴을 사용할 수 도 있었지만.... 중요한 것은 기본 지원 이라는거.

     

    16.png

     

    ISE 커맨드 창에서 "\"를 입력하면 폴더에 대한 자동 완성 기능을 볼 수 있다. 폴더간 이동이 잦을 경우 상당히 유용한 기능이다.

     

    17.png

     

PowerShell 관련해서는 언급되지 않은 많은 기능들이 존재 한다. 관심 있으신 분들은 MSDN, TechNet등 온라인 리소스를 확인해 보면 좀더 많은 내용을 확인 할 수 있을 것이다.





profile

Microsoft Visual C# MVP since 2007

Microsoft Certified Trainer