Azure 리소스 그룹 간에 리소스를 이동하는 단계 식별
이 단원에서는 리소스 그룹 간에 리소스를 이동하기 위해 수행해야 할 수 있는 단계 및 사용할 수 있는 도구에 대해 알아봅니다.
리소스 이동 이해
이동 작업을 시작하면 리소스를 포함하는 리소스 그룹과 새 대상 리소스 그룹이 잠깁니다. 이동 작업이 종료될 때까지 리소스 그룹에 대한 쓰기 또는 삭제 작업을 수행할 수 없습니다. 리소스는 영향을 받지 않지만 해당 리소스 그룹의 리소스는 추가, 삭제 또는 업데이트할 수 없습니다.
이동한 리소스는 위치를 변경하지 않습니다. 예를 들어 미국 동부 지역에 스토리지 계정이 있고 해당 계정을 다른 리소스 그룹으로 이동하는 경우 미국 동부 지역 위치를 유지합니다.
구독 간에 리소스 이동
리소스 종류에 따라 구독 간에 또는 동일한 구독 내의 리소스 그룹 간에 리소스를 이동할 수 있습니다.
이 시나리오에서는 스토리지 계정 쌍을 동일한 구독 내의 다른 리소스 그룹으로 이동하면 됩니다. 청구 이유로 인해 Azure 웹앱과 모든 종속 리소스를 다른 구독으로 이동해야 하는 경우 해당 프로세스에는 더 많은 단계가 포함될 수 있습니다. 단원 2에서 설명한 대로 모든 종속 리소스를 하나의 리소스 그룹으로 이동해야 합니다. 그런 다음, 해당 리소스를 다른 구독의 새 리소스 그룹으로 이동할 수 있습니다. 다음 다이어그램에서는 수행해야 하는 단계를 보여 줍니다. 이 예제에서는 하나의 종속 리소스가 있는 리소스를 별도 리소스 그룹에 포함합니다.
- 리소스와 함께 종속 리소스를 하나의 리소스 그룹으로 이동합니다.
- 리소스 및 종속 리소스를 원본 구독에서 대상 구독으로 함께 이동합니다.
- 필요한 경우 대상 구독 내의 다른 리소스 그룹에 종속 리소스를 재배포합니다.
리소스를 이동하는 방법
이동하려는 리소스를 식별한 후 해당 리소스가 이동할 수 있는지 확인합니다. 리소스 그룹을 만들고 리소스를 해당 리소스 그룹으로 이동할 수 있습니다.
Azure Portal, Azure CLI, PowerShell 또는 Azure REST API를 사용하여 리소스를 이동할 수 있습니다. 다음 단원에서는 Azure Portal을 사용하여 스토리지 계정을 새 리소스 그룹으로 이동합니다. 따라서 이번 단원에서는 Azure CLI 또는 PowerShell을 사용하여 리소스를 이동하는 데 사용하는 명령을 알아보겠습니다.
Azure CLI를 사용하여 리소스 이동
다음 명령은 Azure CLI를 사용하여 리소스를 이동하는 방법을 보여 줍니다.
리소스 그룹을 만듭니다.
az group create --name <destination resource group name> --location <location name>
리소스를 가져옵니다.
yourResource=$(az resource show --resource-group <resource group name> --name <resource name> --resource-type <resource type> --query id --output tsv)
리소스 ID를 사용하여 리소스를 다른 리소스 그룹으로 이동합니다.
az resource move --destination-group <destination resource group name> --ids $yourResource
리소스 그룹의 모든 리소스를 반환하여 리소스가 이동되었는지 확인합니다.
az resource list --resource-group <destination resource group name> --query [].type --output tsv | uniq
리소스를 참조하는 모든 도구 및 스크립트의 리소스 ID를 업데이트합니다.
Azure PowerShell을 사용하여 리소스 이동
다음 명령은 Azure PowerShell을 사용하여 리소스를 이동하는 방법을 보여 줍니다.
리소스 그룹을 만듭니다.
New-AzResourceGroup -Name <destination resource group name> -Location <location name>
리소스를 가져옵니다.
$yourResource = Get-AzResource -ResourceGroupName <resource group name> -ResourceName <resource name>
리소스 ID를 사용하여 리소스를 다른 리소스 그룹으로 이동합니다.
Move-AzResource -DestinationResourceGroupName <destination resource group name> -ResourceId $yourResource.ResourceId
리소스 그룹의 모든 리소스를 반환하여 리소스가 이동되었는지 확인합니다.
Get-AzResource -ResourceGroupName <destination resource group name> | ft
리소스를 참조하는 모든 도구 및 스크립트의 리소스 ID를 업데이트합니다.