There are multiple parts to this question, and lets start with the migration. Only Reserved IP Addresses are available for migration from classic to ARM. You can take an existing cloud service IP Address and make it reserved using Azure PowerShell.
I assume that you have gotten this far, as you speak about the limit with Cloud Services.
There are 2 types of Public IP Addresses for Classic VMs, Cloud Service Public IPs and Instance Level Public IPs. Instance Level Public IPs are not able to be migrated to ARM.
The easiest way to tell which type of Public IP you have is to check the public IP of the cloud service the VM is in, or use the following PowerShell Script:
#Get the associated iInstance Level Public IP Name for a virtual machine Get-AzureVM -ServiceName "MyCloudservice" -Name "VMname" | Get-AzurePublicIP
This will output an Instance Level Public IP if attached to the VM. If this does not output your IP Address, it means that the public IP is on a Cloud Service, and can be converted to a reserved IP Address.
If you can convert the IP to a Reserved IP Address, you can migrate the VM and IP Address to ARM, then switch the Public IPs. There will be a small downtime associated with the switch, typically no more than a minute.
If the IP Address is an Instance Level Public IP, there is no way to migrate the IP Address. In the future, it is highly suggested to use a DNS name when entering addresses into applications, that way IP swaps are a simple switch on a DNS entry instead of having to change code on several different applications.
The IP Address of the Cloud Service and VM, both are same. The output of the above statement is nothing.
The question now is, can I create a new VM (ARM) and complete my testing and switch the Public IP to the Reserved IP? According to my understanding, the Reserved IP can only be assigned to the Cloud Service (so only to a Classic VM) and one can only create a new VM using the Reserved IP, not assign later. Correct me if I am wrong.
Please take note, I am not using the option 'Migrate to ARM' for the migration of Classic VM. I am creating a new VM (ARM) and need testing including customer testing/scanning..etc.
@pituach, Sorry if my question is wrong. I have 3 such Classic VMs, created in 2014. I cannot remember, if ARM was available then and why I did not consider using it. Besides, the devices using the IP Address do not support URLs. If there is no option but to use URL, then will close this thread.
I think that I was not clear :-)
Your question is perfectly clear and it is a very common requests. My message above was simply a general comment to clarify that I think that we should always prefer using DNS over IP. In most cases it is not a good idea to count on your IP Address while DNS is more reliable.
I search a bit online and I did not find any post which cover your request, so I wrote one. I will add the link as an answer to your question in few seconds 🙂