Azure를 관리할 때 Resource Group 이용하기


Microsoft Public Cloud 서비스인 Azure에서 Virtual Machine을 생성할 때 Deployment model에서 Resource Manager를 선택하는 경우에는 반드시 Resource Group을 입력해야 한다.
이미지 1

제일 아래에 있는 그림처럼 Resource Group은 Storage Account, VM, Load Balancer, Virtual Network(여러 개의 Subnet) 및 NIC를 합쳐서 관리하는 것이다.

Resource Manager를 선택하는 경우에는 Class Model에 사용했는 Cloud Service는 사용할 수 없다.

만약에 VM을 새롭게 생성할 때 기존 Resource Group을 이용하면 추가적으로 Virtual Network 및 Storage Account를 생성할 필요가 없기 때문에 자원을 낭비하지 않게 된다. 즉, 비용을 절감할 수 있다. (강추: VM을 생성하기 전에 항상 먼저 Resource Group을 만들거나, 이미 있는 Resource Group을 이용하는 습관을 들인다)

Resource Group을 사용하면 비용 절감 뿐만 아니라 VM들을 관리할 때도 편리하다. 가령 VM1을 만들고 VM2를 생성할 때 VM1이 소속된 Resource Group을 선택하면 VM2와 VM1간에 통신이 된다.

또 하나를 언급하면 Azure를 Test용으로 사용하다가 더 이상 사용하지 않을 때는 모든 자원을 삭제해야 하는데 보통 사용자들은 자신이 만든 VM만 삭제하게 된다. 그러면 아직 남아 있는 Disk 등등의 자원 보존에 대한 비용을 지불하게 된다. 그래서 나중에 놀라게 된다.
이럴 때 Resource Group을 삭제하면 그 안에 포함된 모든 자원이 한꺼번에 삭제가 되는 효과를 누릴 수 있다

# 현재 가지고 있는 모든 Resource 확인하기
1

# rgYSLee11, rgYSLee22라는 Resource Group 삭제하기
먼저 있는 Resource Group이 있는지 확인하기
Get-AzureRmResourceGroup

이제 이러한 Resource Group을 삭제한다
Remove-AzureRmResourceGroup -Name rgYSLee11
Remove-AzureRmResourceGroup -Name rgYSLee22

# 다시 한 번 내가 가지고 있는 모든 Resource를 확인해보자
2

이렇게 모든 resource가 한꺼번에 삭제된 것을 알 수 있다.
앞으로는 Resource Group을 활용하는 것이 편리할 것이다.

# 아래 그림은 Resource Group이 모든 자원을 담고 있는 모습이다
arm_arch3

이미지 출처 및 내용 참고: https://azure.microsoft.com/en-us/documentation/articles/resource-manager-deployment-model/

 

How to manage remote systems on Windows and Linux


Windows Client 및 Server를 관리하기 위해서는 GUI 관리도구로 주로 한다. 하지만 여러 가지 제약이 있다. 이러한 것을 해결한 것이 바로 Powershell을 사용하여 WinRM 서비스로 접속하여 관리하는 것이다.
Linux는 주로 command로 관리하고 ssh로 접속하여 작업을 한다.
Windows와 Linux에서 원격 관리하는 방법을 알아보고자 한다.

  1. 1:1 관리
    1. Windows PowerShell을 사용하여 Enter-PSSession -ComputerName winserver1을 사용하여 접속하여 작업을 한다. 작업 후에는 Exit-PSSession으로 끊고 돌아 온다
    2. Linux에서는 ssh root@linuxserver1 를 사용한다. (가장 일반적인 작업)
  2. 1:n 관리
    1. Windows에서는 Invoke-Command -ComputerName (Get-Content c:\hostlist.txt) {mkdir c:\mydata}
    2. Linux에서는 cat /root/hostlist.txt | xargs -I{} ssh {} “mkdir /mydata/”

이렇게 원격에 있는 여러 대의 서버에 접속하여 작업을 하고 되돌아 오는 것은 매우 유용하다. 리눅스에서는 adminuser 계정에 대한 암호를 바꿀 때도 유용하다. 즉, 여러 대의 암호를 바꿀 때 일일이 접속해서도 가능하지만 이렇게 동시에 작업하면 매우 편리하다. xargs를 잘 활용하면 매우 유익하다.
cat hostlist.txt | xargs -I{} ssh {} “echo -e ‘Pa$$w0rd123\nPa$$w0rd123\n’ | passwd adminuser”

 

 

명령 프롬프트에서 파일 생성하기


명령어로 서버 컴퓨터를 관리할 때 파일을 신속하게 만들려고 한다. 그러기 위해서는 다음과 같은 방법을 사용하면 좋다.

  1. cmd.exe에서는 단순하게 text 파일을 생성하면서 내용도 입력하기
    copy con mydoc.txt
    “원하는 문장 입력”
    ctrl+c

  2. cmd.exe나 powershell.exe에서 어떤 종류의 파일(.avi, .mp3, .txt)만 생성하고 내용은 입력하지 않기
    fsutil file createnew mymovie.avi 102400000
    ** fsutil.exe는 테스트를 위해 대용량의 파일을 생성할 수 있다는 장점이 있다.
  3. powershell.exe에서 text 파일을 생성하면서 내용도 입력하기
    New-Item -Path c:\demo\mydoc1.txt -ItemType file -Value “원하는 문장 입력”
    New-Item -Path c:\demo -Name mydoc2.txt -ItemType file -Value “원하는 문장 입력”
    New-Item -Path c:\demo -Name mydoc3.txt -ItemType file
    New-Item -Path c:\demo -Name myfolder1 -ItemType directory
    ** New-Item을 사용하면 directory로 생성하고, Registry등도 생성할 수 있다. 특히 뒤에 -value를 사용하지 않으면서 반복문을 사용하면 한꺼번에 수십개의 파일도 생성할 수 있다