Haluaisitko pienentää Azure ASP.NET Core web app – sovellustesi ajokustannuksia? Kuulostaisiko 9 euroa kuukaudessa hyvältä? Onnistuu, jos et tarvitse PaaS palvelun hienouksia, ja olet valmis ajamaan sovellustasi Azuren virtuaalikoneessa.

Pienimmän tuotantokelpoisen App Servicen hinta Azuressa on noin 60 euroa kuukaudessa (Sisältäen B1 App Service, SSL sertti ja Azure DNS). Joissain tapauksissa hinta tuntuu hieman suurelta: Jos sovellusta käytetään verrattain harvoin tai pienellä kuormalla, sovellus ei ole kovin kriittinen tai tarvitset sovellusta varten SSL-sertifikaatin. Et oikeastaan kaipaa autoskaalautumista, deployment sloteja tai muita PaaSin hienouksia. Haluaisit kuitenkin sovelluksen olevan aina käynnissä käyttäjiä varten. Miten kustannusta voisi pienentää?

Vastaus on ajaa sovellusta Azuren (halvassa) virtuaalikoneessa. PaaS palvelun hienoudet eivät ole tällöin käytössäsi, ja joudut tekemään hieman käsitöitä saadaksesi homman toimimaan. Mutta ASP.NET Core Web Appin ajokustannus putosi yhdeksään euroon kuukaudessa.

ASP.NET Core sovellusten hostaaminen itse

Luo virtuaalikone, konfiguroi koneeseen sopiva ympäristö sovellusten ajamista varten, paketoi ja siirrä ajettava sovellus koneeseen ja käynnistä. Pieni vertailu siitä mitä sait ja mitä hävisit:

Hienoa

  • Erittäin houkutteleva hinta. Alkaen noin 9 euroa kuussa (B1S CentOS VM)
  • Sovellus on aina käynnissä (always on).
  • Voit käyttää ilmaisia Certbot serttejä.
  • Voit käyttää VM:n levyjä ja käyttöjärjestelmän palveluita suoraan sovelluksesta jos on tarvetta.
  • Mahdollisuus: Koska sovellusta ajetaan nyt vnetissä, voit rajata käyttäjäkunnan sisäverkkoosi – sovelluksen ei tarvitse näkyä internetiin lainkaan ellet halua.

Vähemmän mukavaa

  • Olet vastuussa koko virtuaalikoneen ylläpidosta (pystytys, asennus, suojaus, automaattipäivitykset jne.)
  • Ei autoskaalausta (ellet toteuta tätä itse – keinot on olemassa)
  • Ei easy auth-toimintoa. Toteutettava itse sovelluskoodissa.
  • Ei deployment sloteja, eikä helppoa vaihtoa sovelluksen eri versioiden välillä.
  • Ei Azuren hallitsemia sertifikaatteja.
  • Voit saada SLA:n virtuaalikoneelle, mutta et itse sovellukselle.
  • Koneen pystytys ja huolto vievät aikaa, ja vaativat hieman laajempaa osaamista.
  • PaaS sovellus pystytetään minuuteissa, tämän pystyttäminen ottaa vähintään muutaman päivän.
  • Kukaan ei oikeastaan haluaisi ylläpitää virtuaalikoneita. Se vaan ei ole hauskaa, eikä edes tuottavaa työtä.

Ok, näytä miten tämä tehdään!

Koko Microsoftin ohjeistus löytyy tästä. Päätä ensin mikälaisessa virtuaalikoneessa haluat sovellustasi ajaa, vaihtoehtosi ovat periaatteessa listattu alla. Dotnet core – sovellusten ajaminen Linuxissa on hieman halvempaa kuin Windowsissa (Windows lisenssihinta), ja kyllä – se toimii erittäin hyvin.

Sovellus valmistellaan annettujen ohjeiden mukaan (julkaise hakemistoon – publish to a folder), virtuaalikone konfiguroidaan Kestrel-sovellusten ajamista varten, sovellus kopioidaan virtuaalikoneen hakemistoon – ja käynnistetään koneet!

Miltä näin ajettu sovellus tuntuu tuotannossa? Kokeile  Retrocket – verkkokauppaani!