AWS vs Azure … round 1, fight!

So, for whatever reason, I need to move some virtual machines and things from AWS (EC2, RDS), to an Azure. I have a few years experience with AWS, but until recently I’ve not really used Azure ….

Here are some initial notes……

  • AWS tooling feels more mature (with the ‘stock’ ansible that ships with Ubuntu 20.10, I’m not able to create a virtual machine in Azure without having python module errors appear)
  • AWS EBS disks are more flexible – I can enlarge and/or change their performance profile at runtime (no downtime). With Azure, I have to shutdown the server before I can change them.
  • AWS SSL certificates are better (for Azure I had to install a LetsEncrypt application and integrate it with my DNS provider ( e.g. https://github.com/shibayan/keyvault-acmebot ). AWS has it’s certificate service that issues free certs built in, and if the domain is already in Route53 there’s hardly anything to do.
  • Azure gives you more control over availability (with its concept of availability sets, it allows you to have some control over VM placement and order of updates being applied). It also gives Placement Groups – allowing you to influence physical placement of resources to reduce latency etc.
  • Azure feels more ‘commercial’ (with the various different third party products appearing in the portal when you search etc).
  • Azure has worse support for IPv6 (e.g. if you have a VPN within your Virtual Network you can’t have IPv6).
  • Azure doesn’t seem to offer ARM based Virtual Machines and fewer AMD equivalents (see also: EC2 Graviton 2).
  • Azure’s pricing feels harder to understand – there’s often a ‘standard’ and ‘premium’ option for most products, but the description of differences is often buried in documentation away from the portal ….. I often see ‘Pricing unavailable’.
    • Do I want a premium IP address?
    • Do I need Ultra or Premium SSDs or will Standard SSD suffice? Will I be able to change/revert if I’ve chosen the wrong one without deleting and recreating something?
    • Why do I need to choose a VPN server SKU?
  • Azure networks all have outbound NAT based internet access by default – so even if you’ve not assigned a public IP address to the resource, it can reach out. At the same time, you can also buy a NAT Gateway. If you give a VM a public IP address then it will use that for it’s outbound traffic.
  • Azure has a lot of services in ‘preview’ (to me beta). At the time of writing (March 2021), it doesn’t yet offer a production ready ….
    • MySQL database service that has zone redundancy (i.e. no real high availability)
    • Storage equivalent of EFS (NFS is in preview)
  • Azure does provide a working serial console for VMs, which is quite handy when systemd decides to throw a fit on bootup (2021/04/02 – AWS apparently now provides this too!).
  • Azure doesn’t let you detach the root volume from a stopped server to mount it elsewhere (e.g. for maintenance to fix something that won’t boot up!).
  • When deleting a VM in Azure, it’s necessary to manually delete linked disks. In AWS they can be cleaned up at the same time.

Packer and Azure

I needed to build some Virtual Machine images (using packer) for work the other day.

I already have a configuration setup for packer (but for AWS) and when trying to add in support for an ‘azure-arm‘ builder, I kept getting the following error message in my web browser as I attempted to authenticate packer with azure :

“AADSTS650052: The app needs to access to a service (https://vault.azure.net) that your organization \”<random-id>\” has not subscribed or enabled. Contact your IT Admin to review the configuration of your service subscriptions.”

This isn’t the most helpful of error messages, when I’m probably meant to be the “IT Admin”.

After eventually giving in (as I couldn’t find any similar reports of this problem) and reaching out to our contact in Microsoft, it turns out we needed to enable some additional Resource Providers in the Subscription…. and of course the name has to be slightly different 😉 (Microsoft.KeyVault). Oh well….

Having done this, Packer does now work (Hurrah!)

Hopefully this will help someone else in the future.

Asus PN50 Desktop review

A few weeks ago I bought an ASUS PN50 as a new desktop (to replace an aging Intel Skull Canyon NUC, which was starting to crash once a week – presumably with a hardware fault).

I’d given up waiting for Intel to release a new NUC version – but of course a few weeks after I took the plunge they did release a new version…. Oh well.

Anyway, why this PN-50 thing ?

  • Relatively low power consumption
  • Hopefully quiet(ish)
  • Doesn’t take up much room (smaller than most Intel NUCs)
  • Faster than previous computer (and more processor cores)
  • Supports up to 64Gb RAM (I wanted something with at least 32Gb)
  • I could re-use the memory and m.2 storage from the skull canyon (although it only supports one of my two m.2 drives 🙁 )
  • Supports up to 4 monitors (I have 3×27″ Dell UHD monitors) out of the box (HDMI and displayport over USB C)
  • Integrated graphics etc
  • Easy to setup/install – it’s effectively an AMD “NUC”.

So, here’s a non-scientific review …

Setup – this was fairly straight forward, although I did need to update the BIOS for some reason (perhaps as I was trying to get multi-monitor support working? Initially it wasn’t behaving, until I started using the DisplayPort MST functionality of my Dell monitor to daisy chain one monitor off the other…..).

Performance – it seems fairly quick (quicker than my Skull Canyon) but in the process of ‘upgrading’ I changed from Debian Buster to Ubuntu 20.10 …. so it’s possible I’m not quite comparing like-for-like. I also don’t have any test values to support any statement(s).

Quietness – the BIOS allows for setting quiet / performance / normal fan behaviour. When the fan is busy, it is noisier than the skull canyon. This has made me realise just how quiet the skull canyon was in comparison. It’s crashed a couple of times – with no kernel trace given – so I’ve recently changed from ‘quiet’ to ‘performance’ setting to see if this would make any difference and so far it seems to be OK.

Hardware wise – my Dell USB soundbar seems to reset itself every 30+ minutes when I’m on a video call – what I experience is the sound turning off for about 3-4 seconds (presumably while the USB stack or hardware reset itself). I’m not sure if this has fixed itself yet – as I applied a BIOS update a few days ago and haven’t had many calls since.

So as a rubbish summary – it’s a shame ASUS didn’t put better heat sinks in / improve the thermal design of it ….. it could have been better (in terms of quietness). It feels like there are a few BIOS related issues to solve (USB/Soundbar etc), but hopefully they’ll get resolved soon. Once they are, it’ll become a near perfect ‘desktop’ for me.