Terraform self service -question

Hi Experts

I am looking into Terraform for Self Service Infrastructure for developers.
The backbone infrastructure will be created like AzureVnet,ResourceGroups,Subnets and NSG. Users only need to provision Virtualmachine. I created a terraform module for Azure VM creation. We just need to modify the input variables, like role,OS,subnet,RG etc.It works fine when i deploy it for the first time. When i again deploy it after changing the variable, the terraform plan shows that previous VM created will be replaced with the new one . Why this is happening ? Cant we keep on appending to the existing terraform config ?

If not, how does self service work ?