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
Related blogs