Azure VM Part 2 – Create a development network

…or create a small customer network, for that matter…

The last month is been dedicated to learning more about Windows Azure, and how to facilitate features like SQL databases, web sites, virtual network, DNS servers and virtual machines to be able to create my own optimized development environment.  I have been playing around with my work MSDN subscription and measured the cost for a small environment – with its own domain controller, web and SQL server.

Basic CPUs RAM Price/month
A0 (Extra Small) 1 768mb $15
A1 (Small) 1 1.75gb $55
A2 (Medium) 2 3.5gb $110

When creating such an environment in Windows Azure, you should do the following:

  1. Create Affinity Group
    1. Select the datacenter nearest your location. Mine is North Europe.
  2. Create Storage Account
    1. Select affinity group from (1) as Region/Affinity Group.
    2. Also choose Geo-Redundat as replication
  3. Register DNS server
    1. Set internal IP address to
  4. Define Virtual Network.
    1. Remember to select affinity group from (1) and DNS server from (3)
    2. Cost is about $50/month
  5. Create VM for AD
    1. Select “basic” tier
    2. It’s enough with a size on “A0 (shared core, 768MB memory)” for a development environment ($15/month), opposite to $55/month for A1. This can be changed in 5 minutes (including reboot).
    3. Set local administrator username and password
    4. Write the global name for the AD machine
    5. Select the virtual network defined in (4)
    6. Select the storage account defined in (2)
    7. Validate IP for AD (should be 10.0.04)
    8. install the AD domain services role and promote VM to a domain controller
    9. Create administrator and service accounts
  6. Create VM for SQL Server
    1. Create a new VM from gallery (SQL Server 2014 Web Edition)
    2. Select “Basic” tier. You don’t need load balances and auto-scaled development environment
    3. Select Basic-A1 size (easily changed to Basic-A2 og Standard-A5 for that matter)
    4. Select administrator username and password
    5. Select the virtual network defined in (4)
    6. Select the storage account defined in (2)
    7. Create a 1433 (standard MS SQL port) endpoint
    8. Join the server in created domain from (5.8)
    9. Add SQL administrator with sysadmin
    10. Create an inbound rule in the firewall for SQL Server
    11. Configure SQL Server “Max memory” (70-80% of total memory)
    12. If production server, you should add two disks for data and log formatted with 64k block size.
  7. Cerate VM for Web server
    1. Create a new VM from gallery (Windows Server 2012 R2 Datacenter)
    2. Select Basic-A0 or Basic-A1 size
    3. Same as 6 d-f
    4. Create http and https endpoints
    5. Join the server in created domain from (5.8)
    6. Install IIS web role and install software for web deploy

Powershell commands for (5.8) – install AD and promote as domain controller:

Set-DnsClient –InterfaceAlias "Ethernet*" –ConnectionSpecificSuffix 
Install-WindowsFeature AD-Domain-Services –IncludeManagementTools 
Install-ADDSForest –DomainName

Powershell command for joining a computer to domain (as in 6.8 and 7.5):

Set-DnsClient –InterfaceAlias "Ethernet*" ` –ConnectionSpecificSuffix 
Add-Computer –Domain 

The cost for this setup is about $130-$250, depending on server configuration you need:

  • Small development
    • AD + VN = Basic-A0 + $50
    • Web = Basic-A0
    • SQL = Basic-A1
    • Cost = $50 + 2*A0 + 1*A1 = $50 + $30 + $55 = $135/month
  • Small production
    • AD + VN = Basic-A0 + $50 = $65
    • Web = Basic-A1 = $55
    • SQL = Basic-A2 = $110
    • Cost = $65 +$55 + $110 =  $230/month

Now you should be ready for coding…




Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s