Slide 1

Slide 1 text

2024.09.25 JAWS-UG 東京 #15 s.hiruta (@web_se) WebAssembly workloadをEKSでネイティブに動かす には

Slide 2

Slide 2 text

アジェンダ • WebAssemblyについて • CRI • EKS環境で動かすには • まとめ 2

Slide 3

Slide 3 text

Self introduction 【名前】 s.hiruta ( @web_se ) 【仕事】 コンテナ、マイクロサービス基盤構築 【興味分野】 Containers、WASM+LLM、 Github clouddev-code zenn clouddevcode 3

Slide 4

Slide 4 text

Previous LT Slide https://speakerdeck.com/cloudevcode 4

Slide 5

Slide 5 text

WebAssembly workloadをネイティブに動かしたい。 5

Slide 6

Slide 6 text

セッションの目的 概要 • Web Assemblyについて • EKSにwasm workloadを動かすには 6

Slide 7

Slide 7 text

WebAssemblyて? • ブラウザに読み込んで動作する • Google Meet、Google Map • ブラウザ外でも動かせる • Wasm 0.2だとWasm Componentsもあり 7

Slide 8

Slide 8 text

WebAssemblyではEdgeでも動かせる • Fastly Compute • Cloudflare workers 8

Slide 9

Slide 9 text

axum framework 9 ● Rustのweb application framework

Slide 10

Slide 10 text

axum+Rust 10 https://kluften.dev/blog/nebula_chapter1

Slide 11

Slide 11 text

demo

Slide 12

Slide 12 text

wasmtime ● wasm はそのまま実行することはできない ● Java Runtimeのようなものが必要 https://wasmtime.dev/?_fsi=Lcp1SSNJ&_fsi=Lcp1SSNJ

Slide 13

Slide 13 text

13 Benefit of WASM • Typescript、JavaScriptからwasmにビルドできる • ポータビリティ • 起動がはやい

Slide 14

Slide 14 text

14 WASMでできないこと • Socket • tokio • aws-sdk-bedrockruntimeもtokioのfull featureと依存するの で利用不可 tokioは、Rustプログラミング用の非同期ランタイムです。WebAssembly 用のtokio_wasiあるが、sync,macros,io-util,rt,timeのfeatureのみ利用 可

Slide 15

Slide 15 text

CRI https://kubernetes.io/blog/2017/11/containerd-container-runtime-options-kubernetes/

Slide 16

Slide 16 text

WebAssembly Runtime

Slide 17

Slide 17 text

Kubernetes • bottlerocket • AmzonLinux2023 • Fargate Profile 17

Slide 18

Slide 18 text

18

Slide 19

Slide 19 text

How to Run webassembly workload on EKS • containerd-slim-wasmedgeを入ったWorker Nodeを 作る必要あり 19

Slide 20

Slide 20 text

EKSクラスタ環境 • 20

Slide 21

Slide 21 text

finch • wasm OCI artifactのイメージをECRにプッシュ 21

Slide 22

Slide 22 text

Wasmedge workload • 22

Slide 23

Slide 23 text

 まとめ • wasmがポータビリティがあり、Startupがはやいな ので今後期待できる • Socketなど使えない機能もある 23

Slide 24

Slide 24 text

 索引 • How to Run WebAssembly on Amazon EKS https://aws.amazon.com/blogs/containers/16532-2/ • WASM Component https://zenn.dev/ciscorn/scraps/c0de8cd3804ebd • AXUMでWASM   https://qiita.com/ringo-apo/items/b2ccf1668bc6f21e5f4a • Lightning Talk: The Future of Wasm at Fastly https://www.fastly.com/jp/video/lightning-talk-the-future-of-wasm-at-fastly/ 24

Slide 25

Slide 25 text

25