Blog

10 kalleinta virhettä, jotka kannattaa välttää siirtäessäsi DevOps-työkalujasi AWS:ään

NOV 10, 2022

DevOps-työkaluketjun siirtäminen AWS:ään on erinomainen askel, mutta kyseessä on suuri hanke, jossa on helppo tehdä virheitä. Osa virheistä kostautuu heti – ja joitakin saatat katua ikuisesti.

Erik Badman

Erik is a Cloud Engineer at Eficode. He has worked in IT for +20 years and started by managing the IT environments of smaller companies. More recently, he has worked with various larger companies and helped them manage and improve their AWS environments.

Tiimini on opastanut yrityksiä tällä matkalla monta kertaa ja nähnyt, mitä virheitä tehdään.

Auttaakseni sinua välttämään samat virheet kirjasin ylös yleisimmät niistä sekä keinot niiden välttämiseen. Lue siis eteenpäin ja suojaudu virheiltä, jotka voivat johtaa siihen, että:

  • Maksat palveluista, joita et tarvitse tai käytä

  • Tarvitset myöhemmin enemmän ylläpitoa

  • Siirrät samat vanhat tehottomuudet pilveen

  • Jäät ilman ominaisuuksia, jotka voisivat helpottaa arkeasi huomattavasti

  • Lisäät työmäärää, jonka voisit helposti saada managed servicena

Maksat palveluista, joita et tarvitse tai käytä

Tarvitset myöhemmin enemmän ylläpitoa

Siirrät samat vanhat tehottomuudet pilveen

Jäät ilman ominaisuuksia, jotka voisivat helpottaa arkeasi huomattavasti

Lisäät työmäärää, jonka voisit helposti saada managed servicena

Sukelletaan aiheeseen.

1. Tietokantojen siirtäminen AWS:ään tarkastelematta vaihtoehtoisia tietokantamoottoreita

Olemassa olevan tietokannan siirtäminen sellaisenaan AWS:ään on helpoin vaihtoehto pilvimigraatiossa, jos et tarkastele vaihtoehtoja. Siirrät vain nykyisen tietokantasi pilveen sellaisenaan.

Tämä voi kuitenkin olla kallis virhe, sillä voit usein käyttää muita tietokantoja, joista ei aiheudu lisenssikustannuksia.

Esimerkki

Oletetaan, että käytössäsi on Microsoft SQL Server -tietokanta. Voit säästää mahdollisesti kymmeniä tuhansia dollareita vuodessa jo yhden palvelimen osalta käyttämällä sen sijaan AWS:n hallinnoimaa RDS-tietokantapalvelua.

Tee mieluummin näin

Selvitä, voitko siirtää kalliin tietokantasi edullisempaan vaihtoehtoon. AWS tarjoaa tähän työkaluja. Itse pidän erityisesti Aurora PostgreSQL:n AWS Babelfish -työkalusta. Sen avulla sovelluksesi voi keskustella AWS Aurora PostgreSQL -tietokannan kanssa, vaikka sovelluksesi olisi kirjoitettu Microsoft SQL Serverille, pienin tai ilman koodimuutoksia.

AWS tarjoaa tietokantamigraatioon myös muita työkaluja, kuten AWS Schema Conversion Tool. AWS:n hallinnoimat tietokannat ovat täysin AWS:n ylläpitämiä, mikä vapauttaa aikaasi. Niillä on myös monia muita etuja.

2. Palvelinten siirtäminen suoraan AWS:ään EC2-instansseina arvioimatta, mitä AWS-palveluita voisi käyttää

Älä siirrä EC2:een, jos sopiva hallinnoitu tai serverless-palvelu hoitaa saman työn ilman palvelimen ylläpitoa ja päivityksiä. Vähennä monimutkaisuutta aina, kun voit.

Esimerkki

Jos käytät AWS RDS -tietokantaa, AWS hoitaa päivitykset ja redundanssin, jos otat ominaisuuden käyttöön. Tähän on toki poikkeuksia, jotka sinun on arvioitava.

Saatat käyttää rahaa ja henkilöstöresursseja, jotka voisi käyttää paremmin muualla. Kuvittele pilvessä toimiva palvelu, jota sinun ei koskaan tarvitse paikata, päivittää tai ylläpitää, mutta joka hoitaa silti tehtävänsä.

AWS tarjoaa monia hallinnoituja palveluja, jotka voivat helpottaa arkeasi, ja niiden arvioimatta jättäminen on virhe.

Tee näin sen sijaan

Välttääksesi tämän selvitä, mitä AWS:n tarjoamia hallinnoituja ja serverless-palveluja voisit hyödyntää työkuormiesi hallinnan helpottamiseksi. Mieti esimerkiksi, mitä AWS:n hallinnoitujen tietokantojen tai serverless Kubernetes-klusterin käyttö merkitsisi sinulle.

Käytätkö viestijonopalvelua? AWS tarjoaa muutamia erilaisia hallinnoituja ratkaisuja, joita kannattaa harkita. Niiden avulla sinun ei tarvitse hallinnoida tätä varten palvelimia.

3. Kustannusten hallinnan laiminlyönti

AWS:n kustannukset voivat nousta nopeasti, jos et seuraa niitä tarkasti. Kehittäjäsi ovat ehkä käynnistäneet testejä varten muutaman kalliin palvelimen ja unohtaneet sammuttaa ne, tai varmuuskopioita ei poisteta oikein, jolloin kustannukset kasaantuvat.

Esimerkki

Kuvittele, että huomaat muutaman kuukauden jälkeen kuukausikustannustesi kasvaneen tasaisesti, mutta kuukausittaiset korotukset ovat olleet liian pieniä huomattaviksi. Havaitset, että resursseja on jäänyt käyttämättä, vaikka ne olisi pitänyt poistaa.

Kuukausikustannuksesi ovat nyt huomattavasti aiempaa korkeammat, koska maksat asioista, joita et käytä.

Tee näin sen sijaan

AWS tarjoaa työkaluja, joiden avulla voit seurata kustannuksiasi ja saada hälytyksiä, jos jokin vaikuttaa poikkeavalta. Työkalut pitää kuitenkin ottaa käyttöön.

Saatavilla on myös kolmannen osapuolen työkaluja, jotka seuraavat pilvikustannuksiasi, antavat suosituksia ja auttavat löytämään kohteita, joissa voit säästää.

Sinulla voi esimerkiksi olla palvelimia, joita käytetään vain maanantaista perjantaihin. Voisitko sammuttaa ne viikonlopuksi säästääksesi rahaa? Muista, että AWS:ssä maksat ajasta, jonka resurssisi ovat käynnissä. Kun sammutat palvelimen, et enää maksa sen laskenta-ajasta.

EC2 Windows -palvelin on myös kaksi kertaa kalliimpi kuin EC2 Linux -palvelin, koska maksat Windows-lisenssistä. Vältä Windowsin käyttöä, jos mahdollista, jotta voit pienentää kustannuksia.

Älä pelkää kokeilla uusia instanssityyppejä, kuten AMD-pohjaisia instansseja tai AWS Gravitonia. AMD on yleensä 5–10 % Inteliä edullisempi, ja AWS Gravitonilla voit säästää vielä enemmän, jos sovelluksesi toimii ARM-suorittimilla.

Tee sovelluksellasi vertailutestejä eri instanssityypeille ja selvitä, mikä toimii parhaiten.

4. Et huomioi, että instanssikokovaatimukset voivat muuttua ajan myötä

Jotkin sovellukset ja palvelut eivät käytä automaattista skaalausta, joten sinun on valittava instanssityyppi ja -koko. Palvelimen laskentavaatimukset voivat kuitenkin muuttua ajan myötä. Tietyllä palvelimella on voinut olla raskas kuormitus muutama kuukausi sitten, mutta nyt sen kuormitus on hyvin kevyt.

Tämä voi tarkoittaa, että maksat suuresta instanssista, vaikka pienempi riittäisi hyvin. Maksat AWS:lle nyt paljon enemmän kuin on tarpeen, vaikka niinkin yksinkertainen toimenpide kuin palvelimen pienentäminen voi puolittaa palvelinkustannuksesi tai pienentää niitä vielä enemmänkin!

Esimerkki

Sinulla voi olla esimerkiksi AWS RDS -tietokanta, jonka kokoa voit pienentää, tai EC2-palvelimella toimiva sovellus, joka käyttää vain 10 % käytettävissä olevista resursseista.

Tee näin sen sijaan

Arvioi instanssikokosi uudelleen muutaman kerran vuodessa varmistaaksesi, ettet maksa enempää kuin tarvitset. AWS tarjoaa tähän maksuttomia työkaluja, ja voit hyödyntää myös kolmannen osapuolen työkaluja instanssikokojen hallintaan.

5. Datansiirron kustannusten huomiotta jättäminen

Tiedonsiirto AWS:ssä maksaa usein lähteestä ja kohteesta riippuen. Tiedonsiirto internetistä AWS:ään on maksutonta, mutta datan lähettämisestä veloitetaan esimerkiksi seuraavissa tapauksissa:

  • AWS:stä internetiin

  • yhdeltä saatavuusalueelta toiselle 

  • toiselle AWS-alueelle

AWS:stä internetiin

yhdeltä saatavuusalueelta toiselle 

toiselle AWS-alueelle

Jos et tiedä tästä aloittaessasi AWS:n käytön, lasku voi tuoda ikävän yllätyksen. 

Esimerkki

Jos sinulla on esimerkiksi omassa konesalissa palvelin, joka lataa AWS:stä useita teratavuja dataa, kustannukset voivat nousta suuriksi.

Tee mieluummin näin

Arvioi verkkokustannukset ennen kuin aloitat rakentamisen. Ratkaisusi arkkitehtuurille voi olla parempi tapa. Voisiko palvelimen, joka lataa paljon dataa AWS:stä omaan konesaliin, siirtää pilveen?

6. Kehittäjät ottavat käyttöön tarpeettoman kalliita palveluita ja palvelimia

Kun otat AWS:ssä käyttöön palvelimen tai palvelun, on erittäin tärkeää, että kehittäjäsi ymmärtävät käyttöön ottamiensa ratkaisujen kustannukset.

Esimerkki

Jos otat käyttöön Microsoft SQL Enterprise -palvelimen, jossa on 16 CPU-ydintä, se maksaa noin 5 000 dollaria kuukaudessa. Voit ottaa käyttöön monia palveluita, joihin voidaan määrittää suuria instansseja ja kalliita asetuksia, kuten erittäin nopeaa mutta kallista tallennustilaa.

Tee mieluummin näin

Varmista, että kehittäjäsi ymmärtävät AWS:ssä käyttöön ottamiensa ratkaisujen kustannukset. Pilvessä palvelimen kokoa on helppo kasvattaa myöhemmin. Älä aloita suurella, ylimitoitetulla palvelimella, kuten ehkä tekisit omassa konesalissa.

Ota myös käyttöön hälytykset odottamattomista kustannusten nousuista, jotta voit havaita virheet ennen kuin ne tulevat kalliiksi.

7. Vankan ja toteuttamiskelpoisen suunnitelman puuttuminen

Tee vankka ja toteuttamiskelpoinen suunnitelma – toivo parasta, mutta varaudu pahimpaan.

Esimerkki

Jotkin yritykset alkavat kokeilla AWS:ää, ja kokeilusta tulee POC. Myöhemmin POC siirtyy tuotantoon. Kehitys-, validointi- ja tuotantoympäristöt ovat silloin todennäköisesti sekaisin – ja käsissäsi on sotku.

Tee mieluummin näin

Tee suunnitelma ja rakenna landing zone. Tarvitset vankan perustan ympäristösi rakentamiseen ja kasvattamiseen. Aluksi se on kalliimpaa, mutta vältyt ympäristösi uudelleenrakentamiselta myöhemmin. Lopulta säästät rahaa ja saat turvallisemman ympäristön, joka noudattaa parhaita käytäntöjä.

8. Palvelimiin/palveluihin kiintyminen

Palvelimet ja palvelut jäävät usein käyttöön liian pitkäksi aikaa, koska saatat tarvita niissä olevaa jotain tulevaisuudessa.

Tämä johtaa tarpeettoman suuriin kustannuksiin. Kun tarkastelet näitä kustannuksia vuoden ajalta, niistä kertyy yleensä suuri summa.

Älä nimeä palvelimiasi/palveluitasi äläkä kiinny niihin. Ne ovat kertakäyttöisiä resursseja. Uskalla poistaa arvokkaatkin resurssisi.

Tee näin sen sijaan

AWS:ssä palvelimen palauttaminen varmuuskopiosta on nopeaa. Jos sinulla on palvelimia, jotka haluat poistaa, älä odota liian kauan käyttämättömien palvelimien sulkemista. Ota varmuuskopio ja poista palvelin. Jokaiselta tunnilta, jonka palvelimesi on edelleen käynnissä, kertyy tarpeettomia kustannuksia.

9. Sen ymmärtämättä jättäminen, että (lähes) kaikella on hintansa

Pieni kustannus voi tuntua merkityksettömältä, mutta yhteenlaskettuna pienistä kustannuksista kertyy suuri lasku.

Esimerkki

Elastic IP on maksuton, kun se on liitetty NIC- tai EC2-instanssiin. Muussa tapauksessa siitä kertyy kustannuksia joka tunti. 

  • Muutama käyttämättä jäänyt EBS-taltio 

  • Muutama vanha snapshot 

…nämä asiat eivät yksinään välttämättä aiheuta suuria kustannuksia, mutta yhdessä ne voivat kasvattaa kulut nopeasti tuhansiin dollareihin.

Tee näin sen sijaan

Varmista, että poistat resurssit heti, kun niitä ei enää tarvita. Myös kolmannen osapuolen työkalu voi auttaa muistuttamalla käyttämättömistä resursseista.

10. Sen huomaamatta jättäminen, että migraatio on loistava tilaisuus siivota ympäristöä

Nykyisen on-prem-ympäristön siirtäminen pilveen sellaisenaan voi tuntua houkuttelevalta (ja helpommalta), mutta tämä on erinomainen tilaisuus siivota ympäristöä sekä karsia ja yhdistää tarpeettomia tai ylisuuria kokonaisuuksia.

Esimerkki

Saatat siirtää myös palvelimia, joita et edes käytä. Ehkä voisit toteuttaa jotain AWS:ssä toisin ja pienentää kustannuksia merkittävästi.

Tee näin sen sijaan

Hyödynnä pilveen siirtyminen tarpeettomien palvelimien poistamiseen ja ympäristösi optimointiin. Tämä liittyy joihinkin aiempiin kohtiin, mutta koska se on niin tärkeä (ja jää niin usein huomiotta), se ansaitsee oman paikkansa listallamme.

Yhteenveto

Olemme auttaneet lukuisia yrityksiä siirtämään DevOps-työkaluketjunsa AWS:ään ja nähneet kaikenlaista. Toivottavasti voin auttaa sinua välttämään kantapään kautta opittavat läksyt jakamalla nämä yleiset virheet. 

Otto von Bismarckin sanoin:

”Vain typerys oppii omista virheistään. Viisas oppii muiden virheistä.”

Onnistunutta migraatiota!

Kuuntele podcast täältä

  • DevOps
  • Cloud

Subscribe to our newsletter