Vuonna 2026 raportoitiin päivässä 131% enemmän CVE:itä kuin edellisenä vuonna.

Kustannukset

GitHub Actionsin itse ylläpidetyt runnerit vs. hallinnoidut CRACI-runnerit

Itse ylläpidetyt runnerit näyttävät laskulla ilmaisilta. Todellinen kustannus on palvelimet, niiden päivittämiseen kuluvat tunnit ja koventaminen, jota GitHub itsekin sanoo niiden tarvitsevan. Tässä on, mitä omien runnereiden pyörittäminen vaatii, ja kustannusmalli, jonka voit täyttää omilla luvuillasi.

Päivitetty

Mikä on GitHub Actionsin itse ylläpidetty runneri?

Itse ylläpidetty runneri on kone, jonka otat käyttöön ja jota hallinnoit itse ja joka ajaa GitHub Actions -jobeja GitHubin ylläpitämän virtuaalikoneen sijaan. Se voi olla fyysinen palvelin, virtuaalikone tai kontti, omissa tiloissasi tai pilvitililläsi, ja GitHubin mukaan vastaat koneesta ja kaikesta sen ohjelmistosta.

  • Rekisteröinti: runneri rekisteröidään kerrallaan yhdelle repositoriolle, organisaatiolle tai enterpriselle. Rekisteröi organisaatiotasolla ja käytä runner-ryhmiä, kun haluat jakaa runnereita repositorioiden kesken.
  • Alustat: runner-sovellus tukee yleisiä Linux-jakeluita, Windows 10:tä, 11:tä ja Windows Serveriä sekä macOS 11:tä ja uudempia, x64- ja ARM64-arkkitehtuureilla.
  • Verkko: runneri muodostaa yhteyden GitHubiin lähtevällä HTTPS-yhteydellä porttiin 443.
  • Päivitykset: runner-sovellus on päivitettävä 30 päivän kuluessa uuden version julkaisusta. Se päivittää itsensä, ellet poista tätä käytöstä.
  • Rajat: jobi voi kestää enintään 5 päivää, kun GitHubin ylläpitämillä runnereilla raja on 6 tuntia, ja yli 24 tuntia jonossa ollut jobi epäonnistuu.
  • Skaalaus: Actions Runner Controller (ARC), Kubernetes-operaattori, skaalaa runner scale setejä käynnissä olevien työnkulkujen määrän mukaan. Valitsimella --ephemeral rekisteröidyt runnerit ottavat vain yhden jobin.

Miksi tiimit ylläpitävät runnereita itse

Tiimit ylläpitävät runnereita itse leikatakseen minuuttikustannuksia, päästäkseen sisäisiin järjestelmiin tai tiettyyn laitteistoon ja käyttääkseen kapasiteettia, josta ne jo maksavat. GitHubin isommat runnerit myös maksavat minuutilta sitä enemmän, mitä suurempia ne ovat, joten isot koneet tulevat kalliiksi ylläpidetyillä runnereilla.

GitHub ei tällä hetkellä laskuta itse ylläpidetyistä runnereista minuuttihintaa. Se ilmoitti itse ylläpidetyille runnereille $0.002:n minuuttikohtaisesta pilvialustamaksusta 1.3.2026 alkaen, mutta lykkäsi sitä arvioidakseen lähestymistapaansa uudelleen. Syyskuussa 2026 GitHubin laskutusdokumentaatio kuvaa itse ylläpidetyn käytön ilmaiseksi. Se, mistä GitHub ei maksa, on kaikki runnerin ympärillä.

Itse ylläpidon kustannusten kolme osaa

Itse ylläpidon kustannus koostuu infrastruktuurista, insinöörityöajasta ja tietoturvan koventamisesta. Vain ensimmäinen näkyy laskulla.

Infrastruktuuri

Maksat palvelimista, ajavat ne jobeja tai eivät, joten mitoitat ne kiireisimmän tuntisi mukaan. Lisää tähän tallennustila välimuisteille ja konttikuville, verkkoliikenne sekä se, millä valvot ja automaattisesti skaalaat koneistoa.

Insinöörityöaika

GitHubin dokumentaatio on suora vastuunjaosta: itse ylläpidetyillä runnereilla vastaat itse käyttöjärjestelmän ja kaiken muun ohjelmiston päivittämisestä. Käytännössä se tarkoittaa myös runnerin versiopäivityksiä, konttikuvien eriytymistä palvelinten välillä, levyjen siivousta, automaattisen skaalauksen skriptejä ja päivystäjää, kun jono pysähtyy.

Tietoturvan koventaminen

GitHubin tietoturvaohjeissa itse ylläpidetyille runnereille on kaksi varoitusta, jotka kannattaa lukea kokonaan:

Self-hosted runners should almost never be used for public repositories on GitHub, because any user can open pull requests against the repository and compromise the environment. GitHub Docs, Secure use reference
Self-hosted runners for GitHub do not have guarantees around running in ephemeral clean virtual machines, and can be persistently compromised by untrusted code in a workflow. GitHub Docs, Secure use reference

GitHub suosittelee just-in-time-runnereita, jotka ajavat enintään yhden jobin ennen kuin ne poistetaan. Tämän tekeminen hyvin tarkoittaa lyhytikäisiä koneita, jobien välistä eristystä, lähtevän verkkoliikenteen hallintaa ja salaisuuksien huolellista käsittelyä. Jokainen näistä on työtä, jonka suunnittelet, rakennat ja pidät käynnissä.

Parhaat käytännöt itse ylläpidetyille runnereille mittakaavassa

GitHubin tietoturvaohjeet ja AWS:n julkaisemat käytännöt runnereille mittakaavassa päätyvät samaan listaan. Jokainen kohta on oma projektinsa:

  • Lyhytikäiset runnerit: yksi jobi konetta kohden, jotta mitään ei siirry jobista toiseen.
  • Runner-ryhmät: erottele runnerit repositorion ja ympäristön mukaan, mieluiten eri tileille.
  • Lyhytikäiset tunnistetiedot: OpenID Connect pilveesi pitkäikäisten käyttöavainten sijaan.
  • Lähtevän liikenteen hallinta: rajaa, mihin jobi pääsee, eikä vain sitä, mitä se ajaa.
  • Käynnistysaika: lämpimät poolit ja omat konttikuvat, koska lyhytikäiset koneet käynnistyvät hitaammin.
  • Kustannukset: spot-instanssit ja varavaihtoehto pitkäkestoisille jobeille.
  • Valvonta: mittarit jonossa olevista, käynnissä olevista ja valmistuneista jobeista hälytyksineen.

CRACI:ssa ensimmäinen ja neljäs kohta tulevat runnerin mukana: jokainen jobi ajetaan eristetyssä virtuaalikoneessa egress-käytännön alla, joka validoidaan ennen jobin alkua ja joka estää liikenteen virhetilanteessa (fail closed).

Kustannusmalli, jonka voit täyttää

Itse ylläpidon kuukausikustannus = palvelinkustannus + (ylläpito- ja koventamistunnit × tuntikustannuksesi)

CRACI:n kuukausikustannus (2 vCPU:n runnerit) = build-minuutit × $0.004

CRACI-kaava käyttää hinnoittelusivun hintaa. CRACI laskuttaa vain build-minuuteista, ilman kuukausimaksua ja ilman SBOM-kohtaista maksua. Tarkista ajantasaiset luvut hinnoittelusivulta.

Esimerkki A

Havainnollistavia lähtötietoja, ei vertailutuloksia. 60 000 build-minuuttia kuukaudessa 2 vCPU:n runnereilla, $350 kuukaudessa runneripalvelimista ja 8 tuntia ylläpitoa kuukaudessa hintaan $85 tunnilta.

  • Itse ylläpidetty: $350 + (8 × $85) = $350 + $680 = $1,030 kuukaudessa
  • CRACI: 60 000 × $0.004 = $240 kuukaudessa

Esimerkki B

Havainnollistavia lähtötietoja, ei vertailutuloksia. Samat 60 000 minuuttia, mutta palvelimet maksavat $115 kuukaudessa ja ylläpito vie 2 tuntia hintaan $85 tunnilta.

  • Itse ylläpidetty: $115 + (2 × $85) = $115 + $170 = $285 kuukaudessa
  • CRACI: $240 kuukaudessa

Esimerkissä B vaihtoehdot ovat pelkän laskentakustannuksen osalta lähellä toisiaan. Se on todellinen tulos tiimeille, joilla on edulliset palvelimet ja vakaa kokoonpano. Löydät oman tasapainopisteesi vähentämällä palvelinkustannuksesi CRACI:n luvusta ja jakamalla tuloksen tuntikustannuksellasi. Esimerkin B palvelimilla se on ($240 miinus $115) ÷ $85 eli noin 1,5 tuntia ylläpitoa kuukaudessa.

Kaksi asiaa kaava ei näytä. Ensinnäkin CRACI:n luku sisältää muutakin kuin laskentaa (katso seuraava osio). Toiseksi tunnit ovat se lähtötieto, jonka useimmat tiimit aliarvioivat. Laske mukaan konttikuvien päivitykset, tietoturvapäivitykset, skaalaus, levyjen siivous ja epäonnistuneisiin jobeihin kuluva aika, ei vain alkuasennusta.

Mitä itse ylläpidetyt runnerit eivät anna

Itse ylläpidetty runneri ajaa jobisi, mutta se ei kirjaa, mitä jobi teki. CRACI-runnereilla jokainen buildi tuottaa näyttöä ajon aikana:

  • Buildin aikana tallennettu SBOM CycloneDX- tai SPDX-muodossa pakettitietoiselta välityspalvelimelta, joka havainnoi, mitä jobi hakee, myös CI-välimuisteista palautetut paketit. Kattavuus ilmoitetaan jobia ja välimuistia kohden.
  • Lähtevän verkkoliikenteen käytäntö, oletuksena estävä tai salliva, 24 valmiilla ohjelmistolähteiden esiasetuksella ja tyypitetyillä omilla lähteillä. Käytännöt validoidaan ennen jobin alkua, ja virhetilanteessa liikenne estetään (fail closed). Rikkomukset laukaisevat hälytykset.
  • Verkkojälki jokaisesta jobista, saatavilla API:n kautta.
  • Alkuperätiedot, saatavilla API:n kautta.
  • Haavoittuvuuksien seuranta buildien ja repositorioiden yli, ja valvotut SBOM:t arvioidaan jatkuvasti uudelleen.

Osan tästä voit rakentaa itse ylläpidetyille runnereille omalla välityspalvelimella, SBOM-työkaluilla ja verkon lokituksella. Jos teet niin, sen rakentamiseen ja ylläpitoon kuluva aika kuuluu yllä olevaan kustannusmalliin.

Ominaisuus CRACI Itse ylläpidetyt runnerit
Kuka päivittää käyttöjärjestelmän ja runnerin CRACI Sinä
Jobien eristys Jokainen jobi ajetaan eristetyssä virtuaalikoneessa Riippuu kokoonpanostasi; GitHub ei takaa lyhytikäisiä puhtaita koneita
Lähtevä verkkoliikenne Organisaation käytännöt, voi asettaa oletuksena estäviksi, validoidaan ennen jobin alkua, fail closed Mikä tahansa palomuuri tai välityspalvelin, jonka rakennat ja ylläpidät
SBOM Kirjataan buildin aikana, kattavuus ilmoitettu jobia ja välimuistia kohden Erillinen työkalu, jonka lisäät jokaiseen putkeen
Alkuperätiedot Alkuperätiedot API:n kautta; ei allekirjoitettu Allekirjoitus- ja attestaatiotyökalut, jotka lisäät itse
Laskutus Jobin ajoajan sekuntien mukaan Palvelimet maksavat saman, ovat ne käytössä tai joutilaina
Missä jobit ajetaan CRACI:n hallinnoidut runnerit eurooppalaisella bare metal -infrastruktuurilla Oma verkkosi, pilvitilisi tai laitteistosi
Käyttöjärjestelmät Linux x86-64:llä ja ARM64:llä nyt; Windows ja macOS tiekartalla Mikä tahansa kone, johon voit asentaa runnerin

Mitä CRACI ei tarjoa

CRACI ei tällä hetkellä tarjoa asiakkaan ylläpitämiä tai on-premise-runnereita; ne ovat Enterprisen tiekartalla. Buildit ajetaan CRACI:n hallinnoiduilla runnereilla eurooppalaisella infrastruktuurilla. Jos jobin on ajettava omassa verkossasi, omistamallasi laitteistolla tai eristetyssä (air-gapped) ympäristössä, pidä sitä jobia varten itse ylläpidetty runneri.

  • CRACI-runnerit ovat tällä hetkellä vain Linuxille; Windows ja macOS ovat tiekartalla. macOS- ja Windows-buildit pysyvät siellä, missä ne ovat.
  • x86-64 ja ARM64 ajetaan samaan hintaan.
  • Konttikuvat: CRACI Slim, CRACI Slim ARM64 ja GitHub-yhteensopiva Ubuntu 24.04 -kuva. Sisäkkäinen virtualisointi on saatavilla x86-64:llä ja esiversiona ARM64:llä.
  • GitHub Actions on tuettu CI-integraatio.

Yhdistelmäkokoonpano on yleinen. Jobin siirtäminen on muutos sen runs-on-riville, joten voit siirtää useimmat jobit ja pitää muutaman itse ylläpidetyillä runnereilla. Vain CRACI-runnereilla ajetut jobit saavat buildin aikaiset SBOM:t ja verkkokäytännön.

Miten päättää

Päätä omien lukujesi perusteella: viime kuun runnerikustannukset ja -tunnit, sinulta pyydetty näyttö ja yksi oikea työnkulku ajettuna kummallakin vaihtoehdolla.

  1. Laske yhteen viime kuun palvelinlasku ja tunnit, jotka tiimisi käytti runnereihin, häiriöt mukaan lukien.
  2. Laske build-minuuttisi.
  3. Sijoita molemmat yllä oleviin kaavoihin.
  4. Listaa sinulta pyydetty näyttö (SBOM:t, alkuperätiedot, verkon hallinta) ja se, mitä sen tuottaminen nykyisillä runnereillasi vaatisi.
  5. Varaa demo ja aja yksi oikea työnkulku CRACI:lla vertailun vuoksi.

Lisää runnereiden toiminnasta: CI/CD-integraatio, tietoturva CRACI:ssa ja dokumentaatio.

GitHub Actionsin itse ylläpidetyt runnerit: usein kysytyt kysymykset

Lyhyet vastaukset kustannuksista, käyttöönotosta, tietoturvasta ja rajoista.

Mikä on GitHub Actionsin itse ylläpidetty runneri?

Itse ylläpidetty runneri on koneesi, jonka otat käyttöön ja jota hallinnoit itse ja joka ajaa GitHub Actions -jobeja. Se voi olla fyysinen tai virtuaalinen kone tai kontti, omissa tiloissasi tai pilvitililläsi. Asennat siihen GitHubin runner-sovelluksen, rekisteröit sen repositoriolle, organisaatiolle tai enterpriselle ja ohjaat jobit sille määrityksellä runs-on: self-hosted tai omilla tunnisteillasi.

Ovatko GitHub Actionsin itse ylläpidetyt runnerit ilmaisia?

GitHub ei syyskuussa 2026 laskuta itse ylläpidetyistä runnereista minuuttihintaa. Se ilmoitti $0.002:n minuuttikohtaisesta alustamaksusta 1.3.2026 alkaen, mutta lykkäsi sitä arvioidakseen lähestymistapaansa uudelleen. Maksat silti koneista, niiden tallennustilasta ja verkosta sekä ajasta, joka kuluu niiden päivittämiseen ja suojaamiseen.

Voiko yksi itse ylläpidetty runneri palvella useita repositorioita?

Runneri rekisteröidään kerrallaan yhdelle repositoriolle, organisaatiolle tai enterpriselle. Jos haluat jakaa sen useiden repositorioiden kesken, rekisteröi se organisaatiotasolla ja hallitse pääsyä runner-ryhmillä, tai aja samalla koneella useita runneri-instansseja, joista kukin on rekisteröity erikseen.

Millä käyttöjärjestelmillä itse ylläpidetty runneri toimii?

GitHub tukee runner-sovellusta yleisissä Linux-jakeluissa, kuten Ubuntu 20.04 ja uudemmat, Debian 10 ja uudemmat sekä RHEL 8 ja uudemmat, Windows 10:ssä ja 11:ssä sekä Windows Server 2016–2022:ssa ja macOS 11:ssä ja uudemmissa. Se toimii x64- ja ARM64-arkkitehtuureilla, ja Linuxilla myös ARM32:lla.

Kuinka kauan jobi voi kestää itse ylläpidetyllä runnerilla?

Enintään 5 päivää, kun GitHubin ylläpitämillä runnereilla raja on 6 tuntia. Jobi, joka on jonossa yli 24 tuntia, epäonnistuu.

Ovatko itse ylläpidetyt runnerit turvallisia julkisille repositorioille?

GitHubin mukaan itse ylläpidettyjä runnereita ei pitäisi juuri koskaan käyttää julkisille repositorioille, koska kuka tahansa voi avata pull requestin ja ajaa koodia koneella. Sen suositus on lyhytikäiset just-in-time-runnerit, jotka ajavat enintään yhden jobin, sekä eristys, lähtevän liikenteen hallinta ja salaisuuksien huolellinen käsittely.

Mitä Actions Runner Controller tekee?

Actions Runner Controller (ARC) on Kubernetes-operaattori, joka orkestroi ja skaalaa GitHub Actionsin itse ylläpidettyjä runnereita. Runner scale setit kasvavat ja pienenevät käynnissä olevien työnkulkujen määrän mukaan. Klusteri, konttikuvat ja niitä ympäröivä verkko jäävät edelleen sinun ylläpidettäviksesi.

Voiko CRACI-runnereita ajaa omassa verkossani?

Ei tällä hetkellä. CRACI tarjoaa hallinnoituja runnereita eurooppalaisella infrastruktuurilla, ja asiakkaan ylläpitämät runnerit ovat Enterprisen tiekartalla. Jobit, joiden on ajettava verkkosi sisällä, voivat jäädä itse ylläpidetyille runnereille, kun muut jobit siirtyvät CRACI:lle.

Vertaa runnereita omalla kuormallasi

Varaa demo ja siirrä yksi oikea työnkulku CRACI:lle. Vertaa kustannuksia, nopeutta ja näyttöä, jonka kukin buildi tuottaa.

Varaa demo