자습서: Azure Automation으로 Azure HDInsight 클러스터 만들기
Azure Automation을 사용하면 클라우드에서 실행되는 스크립트를 만들고 주문형 또는 일정에 따라 Azure 리소스를 관리할 수 있습니다. 이 문서에서는 PowerShell Runbook을 만들어 Azure HDInsight 클러스터를 만들고 삭제하는 방법을 설명합니다.
이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.
- HDInsight와 상호 작용하는 데 필요한 모듈 설치
- 클러스터를 만드는 동안 필요한 자격 증명을 만들고 저장
- 새 Automation Runbook을 만들어 HDInsight 클러스터를 만듭니다.
Azure 구독이 아직 없는 경우 시작하기 전에 무료 계정을 만듭니다.
필수 조건
- 기존 Automation 계정입니다.
- 클러스터 스토리지로 사용할 수 있는 기존 Azure Storage 계정 입니다.
HDInsight 모듈 설치
Azure Portal에 로그인합니다.
Automation 계정을 선택합니다.
공유 리소스에서 모듈 갤러리를 선택합니다.
상자에 AzureRM.Profile을 입력하고 검색하려면 Enter 키를 선택합니다. 사용 가능한 검색 결과를 선택합니다.
AzureRM.profile 화면에서 가져오기를 선택합니다. 확인란을 선택하여 Azure 모듈을 업데이트한 다음 확인을 선택합니다.
모듈 갤러리로 돌아갑니다. 공유 리소스에서 모듈 갤러리를 선택합니다.
HDInsight를 입력한 다음, AzureRM.HDInsight를 선택합니다.
AzureRM.HDInsight 창에서 확인 가져오기>를 선택합니다.
자격 증명 만들기
공유 리소스에서 자격 증명을 선택합니다.
자격 증명 추가를 선택합니다.
새 자격 증명 창에 필요한 정보를 입력합니다. 이 자격 증명은 클러스터 암호를 저장하는 데 사용됩니다. 이를 사용하여 Ambari에 로그인합니다.
속성 값 속성 cluster-password
User name admin
암호 SECURE_PASSWORD
암호 확인 SECURE_PASSWORD
만들기를 실행합니다.
사용자 이름 sshuser 및 선택한 암호를 사용하여 새 자격 증명 ssh-password에 대해 동일한 프로세스를 반복합니다. 만들기를 실행합니다. 이 자격 증명은 클러스터에 대한 Secure Shell 프로토콜 암호를 저장하는 데 사용됩니다.
클러스터를 만드는 Runbook 만들기
프로세스 자동화 아래에서 Runbook을 선택합니다.
Runbook 만들기를 선택합니다.
Runbook 만들기 창에서 runbook의 이름(예: hdinsight-cluster-create)을 입력합니다. Runbook 유형 드롭다운 목록에서 PowerShell을 선택합니다.
만들기를 실행합니다.
PowerShell Runbook 편집 화면에서 다음 코드를 입력한 다음 게시를 선택합니다.
Param ( [Parameter (Mandatory= $true)] [String] $subscriptionID, [Parameter (Mandatory= $true)] [String] $resourceGroup, [Parameter (Mandatory= $true)] [String] $storageAccount, [Parameter (Mandatory= $true)] [String] $containerName, [Parameter (Mandatory= $true)] [String] $clusterName ) ### Authenticate to Azure $Conn = Get-AutomationConnection -Name 'AzureRunAsConnection' Add-AzureRMAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint # Set cluster variables $storageAccountKey = (Get-AzureRmStorageAccountKey –Name $storageAccount –ResourceGroupName $resourceGroup)[0].value # Setting cluster credentials #Automation credential for Cluster Admin $clusterCreds = Get-AutomationPSCredential –Name 'cluster-password' #Automation credential for user to SSH into cluster $sshCreds = Get-AutomationPSCredential –Name 'ssh-password' $clusterType = "Hadoop" #Use any supported cluster type (Hadoop, HBase, etc.) $clusterOS = "Linux" $clusterWorkerNodes = 3 $clusterNodeSize = "Standard_D3_v2" $location = Get-AzureRmStorageAccount –StorageAccountName $storageAccount –ResourceGroupName $resourceGroup | %{$_.Location} ### Provision HDInsight cluster New-AzureRmHDInsightCluster –ClusterName $clusterName –ResourceGroupName $resourceGroup –Location $location –DefaultStorageAccountName "$storageAccount.blob.core.windows.net" –DefaultStorageAccountKey $storageAccountKey -DefaultStorageContainer $containerName –ClusterType $clusterType –OSType $clusterOS –Version “3.6” –HttpCredential $clusterCreds –SshCredential $sshCreds –ClusterSizeInNodes $clusterWorkerNodes –HeadNodeSize $clusterNodeSize –WorkerNodeSize $clusterNodeSize
클러스터를 삭제하는 Runbook 만들기
프로세스 자동화 아래에서 Runbook을 선택합니다.
Runbook 만들기를 선택합니다.
Runbook 만들기 창에서 runbook의 이름(예: hdinsight-cluster-delete)을 입력합니다. Runbook 유형 드롭다운 목록에서 PowerShell을 선택합니다.
만들기를 실행합니다.
PowerShell Runbook 편집 화면에서 다음 코드를 입력한 다음 게시를 선택합니다.
Param ( [Parameter (Mandatory= $true)] [String] $clusterName ) ### Authenticate to Azure $Conn = Get-AutomationConnection -Name 'AzureRunAsConnection' Add-AzureRMAccount -ServicePrincipal -Tenant $Conn.TenantID -ApplicationId $Conn.ApplicationID -CertificateThumbprint $Conn.CertificateThumbprint Remove-AzureRmHDInsightCluster -ClusterName $clusterName
Runbook 실행
이 섹션에서는 Runbook을 실행하는 방법을 설명합니다.
클러스터 생성
Automation 계정의 Runbook 목록을 봅니다. 프로세스 자동화 아래에서 Runbook을 선택합니다.
hdinsight-cluster-create 또는 클러스터 만들기 Runbook을 만들 때 사용한 이름을 선택합니다.
시작을 선택하여 Runbook을 즉시 실행합니다. 주기적으로 실행되도록 Runbook을 예약할 수도 있습니다. 자세한 내용은 Automation에서 Runbook 예약을 참조 하세요.
스크립트에 필요한 매개 변수를 입력하고 확인을 선택합니다. 이 단계에서는 CLUSTERNAME 매개 변수에 지정한 이름으로 새 HDInsight 클러스터를 만듭니다.
클러스터 삭제
만든 hdinsight-cluster-delete Runbook을 선택하여 클러스터를 삭제 합니다. 시작을 선택하고 CLUSTERNAME 매개 변수를 입력한 다음 확인을 선택합니다.
리소스 정리
리소스가 더 이상 필요하지 않은 경우 의도하지 않은 요금을 방지하기 위해 만든 Automation 계정을 삭제합니다. Azure Portal로 이동하여 Automation 계정을 만든 리소스 그룹을 선택하고 Automation 계정을 선택한 다음 삭제를 선택합니다.