안녕하세요. 김대우입니다.

고객사나 파트너사 분들과 회의를 진행하면서 Windows Azure 도입을 검토 할때 자주 질문 받는 내용이에요.

바로 특정 TCP나 UDP 포트를 Windows Azure에서 개방하는 방법이지요. 이럴 경우에는 끝점(Endpoint)을 이용하시면 됩니다.

가상머신 자체의 방화벽에서도 포트 개방이 필요하지만, 추가적인 보안으로 이렇게 끝점을 이용한 보안 구성도 가능합니다.

 

그런데, 생각보다 많은 포트를 노출시켜서 현재 On-premise나 IDC에서 서비스 하는 분들이 많이 계시는 것 같아요.

 

Windows Azure에서는 가상머신 앞단의 보안 기능으로, 끝점(End point)를 열어 줘야 하는데요. 

2014년 3월 현재, Windows Azure 관리 포털 GUI에서는 TCP나 UDP 포트를 개별적으로 열어주도록 설정이 되어 있어요.

 

 image_thumb.png

이런 형태로 끝점들이 구성 되어 있지요. 여기에 끝점을 추가 하려면.

 

 image_thumb_1.png

추가 버튼을 누르고 진행하면 됩니다.

네, 2014년 3월 현재, UI로 끝점을 구성해 가상머신의 개별 포트를 열어야 합니다.

 

하지만, 한 두개의 포트가 아니라 여러 개의 포트를 열어 줘야 하는 경우라면 이야기가 틀려 집니다.

예를 들어 20대의 VM에서 30개의 포트를 열어야 한다면? UI로 하는 것 자체가 어렵겠지요.

이럴 때 파워쉘 스크립트를 이용하시면 편리 합니다.

 

파워쉘에 대한 기본 설정이나 파워쉘 최초 구성을 시작하기 위해서는 아래 링크를 참조하세요.

Windows Azure 관리 자동화 파워쉘(Powershell) 스크립트 실행 준비 절차

 

파워쉘 스크립트를 이용해 여러 개의 끝점을 여는 방법 스크립트

$i=[START PORT]
do
{ Get-AzureVM -ServiceName "[CLOUDNAME]" -Name "[MACHINENAME]" | Add-AzureEndpoint -LocalPort $i -PublicPort $i -Name [NAME]$i -Protocol [PROTOCOL] | Update-AzureVM; $i+=1}
until ($i -gt [END PORT] )

위의 명령은 실행 되지 않습니다. - 이런 패턴 형태로 스크립트를 이용 가능해요. do until로 내부에서 루프를 돌면서 필요한 수만큼 추가하는 단순한 루틴입니다.

 

파워쉘 실행코드

$i=2000
do
{ Get-AzureVM -ServiceName "server1" -Name "server1" | Add-AzureEndpoint -LocalPort $i -PublicPort $i -Name MW3Port$i -Protocol TCP | Update-AzureVM; $i+=1}
until ($i -gt 2010 )

포트 2000번부터 2010번까지 끝점을 생성하려면, 위의 방식을 쓰면 되지요.

만약, “ServiceName”이나 “Name”이 뭔지 모르겠다면, 파워쉘에서 Get-AzureVM 실행하시면 현재 구독의 VM 리스트를 볼 수 있습니다. 해당 VM을 선택해 위에서 파라미터로 넣으시면 됩니다.

 

아래의 링크는 또 다른 방식의 파워쉘 기반 끝점을 열어 주는 스크립트 입니다. Load Balancer 끝점 추가도 가능하고, CSV 파일을 엑셀에서 편집 후 파워쉘에서 바로 내용을 가져와 실행하는 스크립트 입니다.

Adding multiple endpoints to your Windows Azure Virtual Machines by using a CSV file

도움 되시길 바랍니다.

 

Windows Azure 관리자 포털에서 UI로 끝점 구성을 위한 범위(Range) 지정

2014년 3월 현재 Windows Azure는 끝점을 범위(Range)로 추가할 수 없어요, 하지만 곧 범위지정이 가능해 질 예정이라고 하니 많은 도움 되시길 바랍니다.

 

참고링크 :

파워쉘 스크립트를 이용해 여러 개의 끝점을 여는 방법

Adding multiple endpoints to your Windows Azure Virtual Machines by using a CSV file 

Windows Azure 관리 자동화 파워쉘(Powershell) 스크립트 실행 준비 절차

How to Set Up Endpoints to a Virtual Machine

파워쉘을 이용한 Windows Azure 가상머신 생성과 삭제 - Create or Delete Virtual Machines Using Windows Azure Cmdlets

파워쉘을 이용한 Windows Azure 가상머신 관리 - Manage Virtual Machines Using Windows Azure Cmdlets