Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rust on Lambda 大きめCSV生成

Rust on Lambda 大きめCSV生成

「Rust、何もわからない... #3」資料

Atsushi Yokota

July 19, 2022
Tweet

More Decks by Atsushi Yokota

Other Decks in Programming

Transcript

  1. Atsushi Yokota バックエンドエンジニア 2 • 2020年10月 フルカイテン入社 • FULL KAITEN

    V3の新規開発に携わり、Rustによる GraphQLサーバーの構築やアーキテクチャーの設計を 行う • 現在は、データ基盤を担当し、ビックデータ処理を PySparkで構築、スクラムマスターも兼任している 自己紹介
  2. 5 アーキテクチャー概要 Frontend ・Next.js ・React etc データ変換 Athena Aurora PostgreSQL

    Redshift Fargate Python Step Functions SQS Lambda ETL 集計処理 データ基盤 Fargate Step Functions S3 Glue GraphQL APIサーバー Rust
  3. Webサーバーの安定化とCSV生成の高速化を実現 actix-web 7 Lambda導入後のCSV生成フロー[After] ブラウザ PostgreSQL 署名付きリンク GraphQL S3 Rust

    on Lambda SQS 書き込み CSV生成 アップロード 起動 CSVファイル (ポーリング) メッセージ送信 読み込み
  4. ▪ lambda_runtime ▪ tokio 10 AWS Lambdaのカスタムランタイムで実行 Rustのカスタムランタイム https://github.com/awslabs/aws-lambda-rust-runtime 依存

    ライブラリー カスタムランタイムとは Lambdaで標準でサポートされていない言語であっても、 ランタイムのコードと関数をアップロードすることで、Lambdaを使うことができる。 ▪ serde ▪ rusotoやaws sdk
  5. 13 RustでLambdaを使うメリット Lambdaの標準対応の言語ランタイム (Node.js、Python, Goなど) より起動が早い 出典: AWS Lambda battle

    2021: performance comparison for all languages (cold and warm start) メモリフットプリントが少な く、インスタンスサイズが 小さめでも問題がない Lambdaのイメージサ イズが他言語に比べ て小さい 仮想マシンが確保しや すい(はず) 01 02 03