Announcements and Chatter
Vultr Server upgrade
Gravatar is a globally recognized avatar based on your email address. Vultr Server upgrade
  Rick Strahl
  All
  Aug 15, 2022 @ 08:52pm

For those of you that have been following me for a while you probably know that I've been a big fan of Vultr for hosting my servers. Unfortunately though recently Vultr decided to change over to a new Windows licensing scheme that charges per virtual CPU, which seems insane making most VM's more expensive for Windows licenses compared to the actual VM hosting.

I've hosted on Vultr for 5+ years now and the experience, performance and pricing has been excellent, but the new pricing scheme really pissed me off as the Windows licensing turns out to be more expensive than the actual hosting - again that seems fucking crazy. All that said - for a profitable business spending $50+ extra bucks for a VM is hardly a big hardship, but if you're hosting public service sites it seriously irks to spend an extra $800 a year.

Since I've been on Vultr and I started with a relatively small account, my box was also getting a bit crammed, so last week I decided to dump the standard Vultr Windows hosting and instead host my own Windows ISO instead. It's possible to host your own copy of Window Server - with your own license - which in the long run will be considerably cheaper than forking over more than $50 for a 4 core hosted machine. The end result is that I get to host a custom Windows image and get to upgrade to a newer - and apparently considerably faster - Virtual Machine at the same pricing I had previously (minus the cost of a Windows license). Do your own research on licensing though - I'm not exactly clear what the licensing is - I couldn't find anything that clearly states pricing for virtual machine hosting. Vultr says that normal Windows Server licenses don't apply to virtual machine ISO hosting - they provided me a link to general licensing, but I couldn't find anything that confirms VM specific licensing. Seems scammy to me that they wouldnt' point at the license language that points at this specific scenario since that is their business and it makes no sense that different licensing that's more restrictive for single machine VM hosting vs. hosting an actual phsyical machine...

IAC, if anybody's interested, Vultr has a page that shows how to set up a Windows ISO for Vultr:

Setting up a Windows ISO for Vultr

which allows you to run your own licensed copy of Windows. You only pay Vultr's hosting fee, but you're responsible for the Windows license.

This basically involves merging a Windows installer ISO with the Red Hat VirtIO drivers that Vultr uses for their VMs and control software for disk and network interface. This is easy to do but it takes a while as you have to:

  • Download the large ISOs
  • Copy the ISOs to disk and merge the VirtIO drivers into the Windows Installer
  • Create a new bootable ISO
  • Upload the ISO somewhere

The main issue here is that the final ISO is very large - it's over 6gb so finding a place to upload this thing is painful. I tried Dropbox and it choked for example. I ended up having to temporarily remove some stuff of my Website then upload it there. Seems lame they require that - and even more lame they don't provide a Windows pre-made ISO but it's clear they don't want you to do this on your own (they surely make some money off that $14 per CPU/VCPU license).

All in all this is time consuming but perhaps well worth the $50 a month it saves...

New Build is considerably faster

After installing the new VM I'm noticing that it's considerably faster than the old one. I noticed that Vultr is now using NVVM drives which likely are the reason for the improved performance.

The extra 80gb of disk space certainly will be nice and give me some breathing room - the old 100gb disk was just a little bit too small for my 20 site setup that's collected a lot of data junk over the years 😄

Upgrading 20 Web sites!

Ugh - while it's possible to get IIS to export and reimport Web sites and settings, I opted to do this manually to explicitly reconfigure and simplify some of my Application Pools, bindings etc. This is a tedious task and for some of the sites involves multi-step processes of making sure the data is in the right places (SQL Server, MongoDb, some shared FoxPro data) and sites storage are set up right.

Web Connection Site Updates - Easy!

In the past moving around Web Connection Web Sites was always a huge pain, but it turns out now, with the new modern project structure it's super easy to get a site up and running on a new machine:

  • Copy the entire project folder structure
  • Set up new Web Site and point at /web folder
  • Open terminal and run MyApp.exe CONFIG to configure IIS
  • Done!

This worked for me for 5 Web Connection sites I have running on this server.

Pointdexter!

A few pointers that make this sort of thing easier:

  • Put all Web Sites into a single location
    I have all my sites in a single base folder (c:\web sites\) that I can zip up or pick up as part of a backup and just plop into place on the new server. It's then simply a matter of mapping the sites to the appropriate paths.

  • Application Pools are a PITA
    This is probably the most time consuming and error prone - because I might forget - task. When you create a new Web Site by default it creates an Application Pool User account specific to that site - if you forget to explicitly provide one. Out of those 20 sites I forgot for 4 of the sites, and none of those worked initially because they didn't even have access to the folder where they were reading HTML resources. Also each pool's identity has to be reset and this is a manual process even if you copy over the previous IIS configuration as the account ACLs have to be updated to match the new machine.

    Another pisser with Application Pools if you use .NET Core as I do with several new applications like my new (not yet live) Web Store: A single Application Pool can only host a single .NET Core application. I run most of my content sites off my WebSite LiveReload Server engine which is basically a static site hoster along with scripting features and Markdown Page support that's awesome for static product sites. But unfortunately because these sites use .NET Core they require a dedicated Application Pool.

  • Changing DNS
    Changing DNS for 20 sites one at a time, making sure it rolls over only after creating test domains and matching IIS bindings. For some sites that are busy - like my web log and my store and my wife's site I had to set up shadow domains to test the app and then flip over the DNS once everything is working. It's not hard - but once again bloody time consuming when you have 20 sites to do this with. Some sites like all the product sites that don't use any data access it doesn't matter.

  • I love LetsEncrypt
    I have 20 sites on 6 different top level domains, and all of the sites use LetsEncrypt. I couldn't figure out how to move over my existing certificates and I also wanted so I ended up having to recreate all site certificates. LetsEncrypt thankfully makes this quick and easy - I just leave the Command Line utility running in a Powershell window and then update each site as I get there. Again, time consuming.

  • The Right Order
    Key thing is doing everything in the right order. Rather than doing everything all at once I basically move and update one site at a time. Then the process is:

    • Copy Web site files
    • Map IIS Mapping to the site
    • Pick up current Database backups
    • Restore database
    • Create IIS test host name for testing
    • Change DNS to test domain
    • Test the site
    • Fix the inevitable configuration errors
    • Once running update the actual DNS and point at new site

All said and done...

I've been wanting to upgrade my site to a larger partition and from Server 2016 to 2022 for quite a while and I've been dreading this task for literally a couple of years. As much as I hate doing all of the above, I'm pretty stoked I managed to get this done in essentially one full day.

New site's up and while there were a few 'in progress' hiccups, it looks like everything is up and running. The old site has been captured to a snapshot and I'll keep that around in case something is missing, but so far so good. All sites have been running for a half a day, with the Fox Web Connection apps running since last night...

Let me know if you see any problems...

+++ Rick ---

Gravatar is a globally recognized avatar based on your email address. re: Vultr Server upgrade
  Harvey Mushman
  Rick Strahl
  Aug 16, 2022 @ 04:35am

Interesting, this is about the same thing I'm doing but I'm starting from several different versions of Web Connect. (See my post about WC3.0) LOL

Also Interesting is installing from ISO, I thought the pricing seemed high when I signed up for just one license. I will start with the current pricing and after I figure out how to make the move perhaps do the ISO thing.

I did notice over the weekend some of your sites were down. I tried to PING your domain, does not respond. Not sure if this is a Vultr or way you setup your server?

Thanks for the update on your Vultr exploits... <G>

Gravatar is a globally recognized avatar based on your email address. re: Vultr Server upgrade
  Keith Hackett
  Rick Strahl
  Aug 22, 2022 @ 12:04pm

Thanks for the write-up, Rick.

As an aside for those who have "less demanding" Windows hosting needs, I downgraded from a 4-vCPU to 2-vCPU setup at VULTR when their prices jumped. I was very pleasantly surprised to see a noticeable performance increase AFTER I did! It turned out that the cost differential was pretty close to the same amount my old setup cost.

Downgrading in my case wasn't entirely painfree as I had to manually move everything over but not as painful as creating an entirely new ISO.:)

Otherwise, I'm still pleased with the price/performance from VULTR!

Gravatar is a globally recognized avatar based on your email address. re: Vultr Server upgrade
  Rick Strahl
  Keith Hackett
  Aug 22, 2022 @ 12:34pm

Yeah if you're running a single VFP application on a server I think 2 processors is plenty of horse power.

The perf boost you got most likely is due to the new hardware they are using, and especially the nvm disks compared to your old setup. I think Vultr actually moves VMs to different machines/configurations at times, but suspect they want to keep their old hardware running as long as possible.

As I said for a profitable business paying an extra $28 or even $56 should hardly be a deterrent, but my site host mostly free community stuff with the only commercial application being the store and licensing server. For me it's more about the principle of it - I think Vultr is milking the shady and vague licensing situation for extra license $$$.

+++ Rick ---

Gravatar is a globally recognized avatar based on your email address. re: Vultr Server upgrade
  Craig Tucker
  Rick Strahl
  Sep 2, 2022 @ 09:38am

Hi Rick, I just finished TODAY setting up a new Vultr server (WWC Multi-Language Web Store https://www.signlocker.com and Queue Message Manager https://qmm.signlocker.com ), VS Web Deploy (which is freaking awesome), SQL Server, LetsEncrypt on both sites, Chocolatey (again freaking awesome), and the works perfectly following your awesome blog https://www.west-wind.com/wconnect/weblog/ShowEntry.blog?id=956 post then I stumble upon this thread, LOL! DCOM on Corel bit my ass again, but thankfully I posted fix with your help on another thread from 8 years ago https://forum.oberonplace.com/showthread.php?p=37783. So far I can only say great things about Vultr, speed is good and the server management is crazy good as well. The pricing wasn't too bad so I'm going to stick with this for a while, especially since I just got it setup...

A couple things I did pick-up on in the thread though...

  • "use .NET Core as I do with several new applications like my new (not yet live) Web Store" WTF!, I like the sound of this!
  • "and my wife's site I had to set up shadow domains" CONGRATULATIONS!

Not sure what I'd do without West-Wind products and guidance. Thanks a ton, Craig

Gravatar is a globally recognized avatar based on your email address. re: Vultr Server upgrade
  Rick Strahl
  Craig Tucker
  Sep 2, 2022 @ 10:06am

Thanks for the kind words, Craig...

Yeah I really like Vultr's performance. My new server is considerably faster than the old one was and even that was very good when I ran comparisons against similar setups on Azure and AWS. Again the runtime license pricing probably isn't a big concern for typical companies that deploy applications and compared to Azure or AWS with similar hardware it's still a fraction of the cost there.

I thought you'd be excited about the new Webstore. Contact me privately and I can give you the low-down. I did end up reverting back to EF Core, mainly to not end up having to set up and maintain yet another server (PostGreSQL) on my site (already dealing with FoxPro, Sql Server, MongoDb)...

+++ Rick ---

Gravatar is a globally recognized avatar based on your email address. re: Vultr Server upgrade
  Craig Tucker
  Rick Strahl
  Sep 6, 2022 @ 10:18am

Hi Rick,
I'm REALLY looking forward to hearing all about the new WebStore! I will reach out to you this week!
CT

© 1996-2022