DevOps perusteet 1: Virtuaalipalvelin pilveen

KansikuvaKansikuva

Tässä oppaassa:

  1. Alkusanat
    1. 1.1. Vaatimukset
    2. 1.2. Kulut ja pilvipalveluiden ilmaisjaksot
    3. 1.3. Tekijästä + kiitokset
  2. Microsoft Azure - Tilin luonti
    1. 2.1. Azure - Virtuaalipalvelimen luonti
    2. 2.2. Azure - Palvelimen DNS-osoitteen asettaminen
    3. 2.3. Azure - Palvelimen porttien konfigurointi
  3. Amazon Web Services (AWS) - Tilin luonti
    1. 3.1. AWS - Virtuaalipalvelimen luonti
    2. 3.2. AWS - Kiinteän IP-osoitteen asettaminen
    3. 3.3. AWS - Palvelimen porttien konfigurointi
  4. Google Cloud Platform (GCP) - Tilin luonti
    1. 4.1. GCP - SSH avainparin luonti
      1. 4.1.1. GCP - SSH avainparin luonti - Windows
      2. 4.1.2. GCP - SSH avainparin luonti - Linux/macOS
    2. 4.2. GCP - Virtuaalipalvelimen luonti
    3. 4.3. GCP - Kiinteän IP-osoitteen asettaminen
    4. 4.4. GCP - Palvelimen porttien konfigurointi
  5. SSH-yhteys palvelimeen
    1. 5.1. SSH-yhteys palvelimeen - Windows
    2. 5.2. SSH-yhteys palvelimeen - Linux/macOS
  6. Palvelimen päivittäminen
  7. Node.js:n asennus ja testaus
    1. 7.1. Node/Express palvelin ja "Landing page"-verkkosivu
  8. Tietoturva
  9. Loppusanat, mihin tästä?
  10. Extrat
    1. 10.1. Data-levyn lisääminen - Azure
    2. 10.2. Data-levyn lisääminen - AWS
    3. 10.3. Data-levyn lisääminen - GCP
    4. 10.4. Data-levyn konfigurointi Ubuntussa
    5. 10.5. Parempi komentorivi Linuxiin

1. Alkusanat

Tervetuloa ensimmäiseen DevOps perusteet -kurssiin! Tässä kurssissa lähdemme liikkelle ruohonjuuritasolta eli yksittäisen virtuaalipalvelimen perustamisesta. Käymme prosessin läpi kolmen isoimman pilvipalvelun osalta: Microsoft Azure, Amazon Web Services (AWS) ja Google Cloud Platform (GCP)

Perustamme siis itse hallitun Ubuntu Linux -palvelimen. Näin saamme heti perustason full stack -osaamista virtuaalikoneiden ja Linuxin tasolla. Samalla saamme omalle sovellukselle kunnollisen julkaisupaikan. Kun perustaso on hallussa, voi myöhemmin laajentaa esimerkiksi hallittuihin eli managed ratkaisuihin.

Kurssissa luomme virtuaalipalvelimen, konfiguroimme verkkoasetukset, yhdistämme palvelimelle SSH:lla ja katsomme miten palvelimen käyttöjärjestelmä päivitetään. Lopuksi asennamme Node.js:n paikalliselle käyttäjälle ja teemme yksinkertaisen "Landing page" Node/Express-sovelluksen. Käymme myös läpi mitä tietoturvan näkökulmasta on hyvä ottaa huomioon.

Jatkokurssissa DevOps perusteet 2: Websovellus Linux-palvelimelle luomme palvelimelle tuotantokäyttöä kestävän full stack -pinkan, johon kuuluu Nginx, Docker, Node.js ja MongoDB. Lisäksi katsomme miten oma verkkotunnus ja DNS asetukset konfiguroidaan Cloudflare-palvelussa. Kurssi #2 sisältää myös kokonaisen full stack -esimerkin perinteisen TODO-sovelluksen muodossa. Jos käytössäsi on jo palvelin, joka täyttää Kurssi #2:n vaatimukset, voit hypätä suoraan tuohon kurssiin.

Voit perustaa pilvipalvelimen veloituksetta kaikkiin kolmeen pilvipalveluun. Luethan kuitenkin Kulut ja pilvipalveluiden ilmaisjaksot osion alempana.

Kaikki palvelusopimukset ovat kurssin kävijän (Sinun) ja pilvitarjoajien (Azure, AWS, GCP) välisiä. Kurssin tekijätaho (Nurminen Development Oy Ltd) ei vastaa kuluista, joita sinulle mahdollisesti tulee ko. tarjoajien palveluiden käytöstä.

Huomaa, että vaikka tästä kurssista löytyy sekä Node.js että HTML/CSS/Javascript koodia, niin kurssi ei ole koodausopas. Tarvittavat esimerkit löytyvät kurssista, mutta tämän syvemmälle itse koodauksen ei tämän kurssin puitteissa mennä. Varsinaisen koodauksen opettelun jätämme kurssisarjan myöhempiin osioihin. Esimerkkejä voit kuitenkin käyttää ponnahduslautana, jos haluat lähteä opettelemaan backend- tai frontend-koodausta.

1.1. Vaatimukset

Cloud-tilien luontia varten tarvitset luottokortin tai debit-pankkikortin verkkomaksuominaisuudella. Lisäksi seuraavat taidot ovat hyödyllisiä, mutta eivät pakollisia:

  • Kokemus Linuxin komentorivistä
  • Kokemus Node.js ohjelmoinnista, esim. Node/Express
  • Kokemus HTML/CSS/JavaScript -ohjelmoinnista

Tärkeintä on aito kiinnostus kurssissa käsiteltäviin asioihin sekä kyky itseoppimiseen ja opitun soveltamiseen.

1.2. Kulut ja pilvipalveluiden ilmaisjaksot

Azure ja AWS tarjoavat 12kk ilmaisjakson uusille käyttäjille. Google menee vielä askeleen pidemmälle ja tarjoaa kevyeen käyttöön pysyvästi ilmaisen virtuaalikoneen. Googlen ilmaiskoneen voi kuitenkin perustaa ainoastaan US west, US central tai US east datakeskuksiin. Toisaalta Google on kolmikosta ainoa, jolta löytyy Suomen datakeskus Haminasta. Jos siis haluat, että palvelimesi sijaitsee Suomessa, valitse Google.

Huomaa, että vaikka kurssin esimerkeissä pyrimme luomaan ilmaisjaksoihin soveltuvan palvelimen, kannattaa varautua muutamien eurojen veloituksiin, kun joku täppä jossain on vahingossa jäänyt väärään asentoon. Käytännössä monen euron vahinkoa tästä ei synny, mutta asia on hyvä tiedostaa. Teoriassa, jos seuraat kurssin ohjeita tarkasti, kuluja ei pitäisi syntyä.

Seuraavassa taulukossa on esitelty eri pilvitarjoajien ilmaispalvelut (free tier). Ilmaispalvelut saattavat muuttua milloin tahansa. Tämä opas pyrkii olemaan ajan tasalla, mutta varmista aina viimeisin tilanne suoraan tarjoajien omilta sivuilta:

Ilmaispalvelut, päivitetty elokuu 2024:

Ilmaisjakson pituus VM:n tyyppi VM:n fyysinen sijainti vCPU Muisti Tallennustila (levyt, disks) Liikenne ulospäin / kk IP-osoite
Azure 12kk B1s Valittavissa, esim. North Europe 1 1 GB 2x "P6" 64GB Premium SSD1 100GB Dynaaminen2
AWS 12kk t3.micro Valittavissa, esim. eu-north1 (Tukholma) 2 1 GB 30GB General Purpose SSD3 100GB Staattinen
GCP Toistaiseksi e2-micro Vain US west, central, east 2 1 GB 30GB Standard Persistent Disk3 200GB4 Staattinen

1 Pienemmät levyt, esim. "P4" Premium SSD 32GB eivät kuulu ilmaisjaksoon

2 Azuressa voi kuitenkin tehdä dynaamiselle IP:lle pysyvän DNS-osoitteen, jolloin esim. domain-hostaus onnistuu Cloudflaren "CNAME flattening" ominaisuuden ansiosta. Palaamme tähän jatkokurssissa DevOps perusteet 2: Websovellus Linux-palvelimelle.

3 Voi jakaa esim kahteen 15gb levyyn

4 200GB/kk kun käytetään Standard Tier -verkkoa. Premium Tier verkossa ilmaisraja 1GB/kk. Standard Tier täytyy muistaa valita virtuaalipalvelinta luodessa erikseen. Google Cloud Network Service Tiers.

Jos haluat, että korttiasi ei veloiteta, täytyy virtuaalipalvelin perustaa tarkasti ilmaisjaksoon kuuluvilla parametreillä. Käytännössä kannattaa varautua, että joku asetus jossain jää väärään asentoon ja kuluja voi tulla euro tai pari kuussa.

Ilmaisjaksojen ulkopuolella perustason tuotantokäyttöön soveltuva full stack palvelin maksaa kaikissa kolmessa pilvessä karkeasti n. 10-30€/kk. Oman verkkotunnuksen (domain.com, domain.net, domain.org, ...) rekisteröinti maksaa alkaen n. 6€/vuosi, riippuen halutusta päätteestä.

1.3. Tekijästä + kiitokset

Aloitin webbikoodauksen 2000-luvun alussa. Silloin tech stäkki oli PHP/MySQL/HTML/CSS. Javascript oli vielä paha sana ja sitä vältettiin. Opettelin kaiken itse; jo silloin oppaita sun muita alkoi löytyä netistä. *NIX käyttisten kanssa säätämisen alotin samoihin aikoihin; käytössä on ollut mm. Red Hat, Debian ja Net/Free/OpenBSD. Kaikkeen oli hirveä kiinnostus ja tekemisen meininki.

Ekan ihan oikean kaupallisen käytön "web sovelluksen" tein vuosina 2003-2005 Raskassarja Groupille, se oli tilausjärjestelmä heidän jäsenyritysten sisäiseen käyttöön. Sitä tehdessä taisin olla jotain 16-18 kesäinen. Yhtäjaksoisesti en ole ollut alalla, sanoisin että tänä päivänä kokemusta on yhteensä n. 10 vuotta.

Nykyisin asun Hollolassa maaseudulla avopuolisoni ja kahden koiran kanssa. Minulla on "yhden miehen" osakeyhtiö Nurminen Development Oy Ltd ja teen konsulttimuotoisesti tuntitöitä IT-alan yrityksille. Lisää minusta ja töistäni voi lukea virman sivuilta osoitteesta https://nurminen.dev. Vapaa-ajalla tykkään "harrastella" mm. puutöitä.

RikuRiku
Riku

Kurssin teossa ovat auttaneet

2. Microsoft Azure - Tilin luonti

Jos haluat tehdä palvelimesi AWS:ään, hyppää osioon Amazon Web Services (AWS) - Tilin luonti.

Jos haluat tehdä palvelimesi GCP:hen, hyppää osioon Google Cloud Platform (GCP) - Tilin luonti.

Mene osoitteeseen https://azure.microsoft.com ja klikkaa "Try Azure for free" -> "Start free". Tämä vie kirjautumissivulle josta klikataan "Luo tili". Tili vahvistetaan ensin sähköpostiin saapuvalla koodilla, tämän jälkeen puhelimeen saapuvalla tekstiviestikoodilla, ja sen jälkeen vielä luotto/pankkikortilla. Huomaa että puhelinnumero kirjoitetaan kenttään ilman maatunnusta sekä ilman ensimmäistä nollaa varsinaisen puhelinnumeron eteen. Tämä jäi itsellä vähän epäselväksi ja homma jumitti kun jäin odottelemaan koodia jota ei koskaan ollutkaan tulossa.

Maksuton kurssi

Rekisteröidy ilmaiseksi tai kirjaudu sisään, niin näet kurssin sisällön.

Rekisteröityessä hyväksyt postituslistalle liittymisen. Saat sähköpostia kun uusia kursseja julkaistaan. Sähköpostia ei jaeta muille tahoille. Tietosuojaseloste

Kirjaudu sisään

PALVELINVIRHE; Kurssin avaus pois käytöstä. Yritä ladata sivu uudelleen. Jos ongelma jatkuu, ota yhteys kurssit@nurminen.dev tai 050 505 4611 / Riku (arkisin klo 14 jälkeen).