Google Compute Engine – creating a DNS server

In under 10 minutes, I built a very small, authoritative DNS server. It is not large as it handles only about 80 domains and does not offer recursive services.

This is the smallest instance available from Google:

  • 1 vCPU core
  • 600 MiB RAM
  • 10 GiB persistent storage (boot disk)

I estimate my price per month to run this dedicated DNS server at $14.08 per month (it is a f1-micro instance).After I installed the SDK, I ran the following commands:

% gcloud config set account ACCOUNT_NAME
% gcloud auth login
% gcutil addinstance ns3-geeks-org --project ivory-tower-001 --machine_type=f1-micro --image=debian-7 --on_host_maintenance=migrate --automatic_restart
% gcutil --project=ivory-tower-001 addfirewall icmpfirewall --allowed=icmp
% gcutil --project=ivory-tower-001 addfirewall dnsfirewall --allowed="udp:53,tcp:53"
% gcutil --project=ivory-tower-001 addfirewall snmpfirewall --allowed="udp:161" --allowed_ip_sources=IP_NETWORK,IP_NETWORK2

So, Debian based system. I’ll need to build my custom image for other distributions (Ubuntu is the only version I can really stomach) or try for a FreeBSD build.

Additional items on the server:

% sudo su - root
# apt-get install bind9 dnsutils snmpd

and configure appropriately.

I’ll lock down SSH later today as well via gcutil updates.

I use LogicMonitor to do the monitoring of my running systems that aren’t just out there to test with. I am going to leave this system running for a while as a third authoritative DNS server while I dig into how to build my own images for deployment.

Hat top Bob and Jeremy for the inspiration for the name of my initial project.