Evaluating the use of Rust in AWS Lambda : performance, cost and development efficiency
Ravi, Miika (2025)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2025061823302
https://urn.fi/URN:NBN:fi:amk-2025061823302
Tiivistelmä
Serverless-laskentapalvelut, kuten AWS Lambda, mahdollistavat sovellusten automaattisen skaalaamisen ja funktioiden suorittamisen vastauksena erilaisiin tapahtumiin. Yksi tapa optimoida Lambda-funktioita on valitsemalla suorituskykyinen ohjelmointikieli, mikä voi parantaa suoritusaikaa ja vähentää kylmäkäynnistysviivettä – näin käyttökustannukset voivat myös pienentyä.
Tämä opinnäytetyö analysoi Rust-ohjelmointikielen käyttöä Lambda-funktioissa SADE Booster IoT Asset-järjestelmässä ja arvioi sen mahdollisia etuja sekä haittoja. Tavoitteena oli arvioida, miten suorituskykykriittisten Node.js-pohjaisten Lambda-funktioiden uudelleenkirjoittaminen Rustilla vaikuttaisi suorituskykyyn, käyttökustannuksiin ja kehitystehokkuuteen.
Testitulokset osoittivat, että Rust-pohjaiset Lambda-funktiot paransivat suorituskykyä merkittävästi, erityisesti kylmäkäynnistyksissä ja muistinkäytössä. Tämä johti alhaisempiin käyttökustannuksiin, etenkin optimoiduilla muistiasetuksilla. Rust voi siis olla kannattava valinta suorituskykykriittisiin Lambda-funktioihin, vaikka kehitys vaatiikin enemmän aikaa ja resursseja. Serverless computing services, like AWS Lambda, enable applications to automatically scale and execute functions in response to different events. One way to optimize Lambda functions is by choosing a high-performance programming language, which can improve runtime speed and reduce cold start latency – potentially leading to lower operational costs.
This thesis analyzes the use of the Rust programming language in AWS Lambda functions within the SADE Booster IoT Asset system and evaluates its potential benefits and drawbacks. The aim was to evaluate how rewriting the most performance-critical Node.js-based Lambda functions with Rust would affect performance, costs, and development efficiency.
The test results showed that Rust-based Lambda functions offered significant performance improvements, especially in cold start times and memory usage. This led to lower operational costs, especially when using optimized memory configurations. Rust can therefore be a worthwhile choice for performance-critical Lambda functions, despite the additional development time and effort.
Tämä opinnäytetyö analysoi Rust-ohjelmointikielen käyttöä Lambda-funktioissa SADE Booster IoT Asset-järjestelmässä ja arvioi sen mahdollisia etuja sekä haittoja. Tavoitteena oli arvioida, miten suorituskykykriittisten Node.js-pohjaisten Lambda-funktioiden uudelleenkirjoittaminen Rustilla vaikuttaisi suorituskykyyn, käyttökustannuksiin ja kehitystehokkuuteen.
Testitulokset osoittivat, että Rust-pohjaiset Lambda-funktiot paransivat suorituskykyä merkittävästi, erityisesti kylmäkäynnistyksissä ja muistinkäytössä. Tämä johti alhaisempiin käyttökustannuksiin, etenkin optimoiduilla muistiasetuksilla. Rust voi siis olla kannattava valinta suorituskykykriittisiin Lambda-funktioihin, vaikka kehitys vaatiikin enemmän aikaa ja resursseja.
This thesis analyzes the use of the Rust programming language in AWS Lambda functions within the SADE Booster IoT Asset system and evaluates its potential benefits and drawbacks. The aim was to evaluate how rewriting the most performance-critical Node.js-based Lambda functions with Rust would affect performance, costs, and development efficiency.
The test results showed that Rust-based Lambda functions offered significant performance improvements, especially in cold start times and memory usage. This led to lower operational costs, especially when using optimized memory configurations. Rust can therefore be a worthwhile choice for performance-critical Lambda functions, despite the additional development time and effort.
