Sain kesälomani aikana päätökseen projektin, jossa siirsin tämä blogin julkisen osuuden kokonaan Amazonin S3:een. Blogi on nyt tallennettu staattisina tiedostoina S3-palveluun, jolloin erillistä web-palvelinta ei enää tarvita. Kustannus on karkeasti arvioiden luokkaa 50 snt / miljoona sivulatausta, eli tällaisessa kevyessä käytössä paljon vähemmän kuin oman virtuaalipalvelimen jatkuva pyörittäminen.
Tarvitsen tosin edelleen yhtä virtuaalipalvelinta, tai tarkemmin sanoen Docker-konttia, joka pyörittää blogin ylläpitokäyttöliittymää. Ideana on, että ylläpito hoidetaan tämän erillisen palvelimen kautta ja muutokset julkaistaan S3:een. Tarkoitus on ennen pitkää päästä eroon myös ylläpitopalvelimesta ja hoitaa sisällönhallinta kokonaan selaimessa, sekä tallentaa sisällöt Amazonin DynamoDB:hen.
En ole kylläkään kovin suuri DynamoDB:n ystävä. Se on kehittäjän näkökulmasta hankala ja jäykkä, ja luo samalla tiukan toimittajaloukun. Amazonin muut tietokantaratkaisut (MySQL, Postgres, Aurora, Redis, Redshift) ovat puolestaan kiinteän hintaisia, eli niissä maksetaan jatkuvasti päällä olevasta palvelimesta. Amazonin pitäisi tarjota pienimuotoiseen käyttöön yksinkertaista ja skaalautuvaa MongoDB-palvelua, josta maksettaisiin jälkikäteen toteutuneen käyttöasteen mukaan.
Mainittakoon vielä blogin tekniikasta, että se on nyt kokonaan React-pohjainen ja käyttää URL-reititykseen React Routeria. Pienen säätämisen jälkeen sain kaiken toimimaan siten, että React-komponentit renderöidään selaimessa valmiiksi HTML-tiedostoiksi ja tallennetaan S3:een. Kun React-sovellus latautuu S3:sta, se kiinnittää event-kuuntelijat olemassaolevaan DOM-puuhun, eli sivujen ei pitäisi latauksen yhteydessä välähtää tyhjinä.