Slide 1

Slide 1 text

Step Functions Kazuno Fukuda Distributed Map を使ってみた! 2022.12.23 JAWS-UG 名古屋 2022 年 "re:Invent" の復習~ 忘年会~

Slide 2

Slide 2 text

株式会社コラボスタイル 開発部 サービスチーム チームマネージャー 業務では使ってません @codemountains 好きな言語は Rust です。 かるく自己紹介 Kazuno Fukuda

Slide 3

Slide 3 text

開催地・コラボベース枠... あるらしいよ? 社外のLT... 初挑戦です。 頑張ります や、やります...!!

Slide 4

Slide 4 text

Step Functions Distributed Map で 大規模な並列処理ができるようになったらしい。 最大 40 が 10,000 ってマジ?

Slide 5

Slide 5 text

Tutorial: Copying large-scale CSV data using Distributed Map https://docs.aws.amazon.com/step-functions/latest/dg/tutorial- get-started-distributed-map.html

Slide 6

Slide 6 text

全体の流れ Workflow を作成する Map の必須項目を設定する 追加オプションの設定する Lambda 関数を作成する Lambda Invoke に関数を設定する States Language の定義を確認する ステートマシンの実行

Slide 7

Slide 7 text

Workflow を作成する

Slide 8

Slide 8 text

Workflow を作成する CSV ファイルの項目ごとに 一連のステップを実行してみる!!

Slide 9

Slide 9 text

Map の必須項目を設定する 分散モードを選択

Slide 10

Slide 10 text

追加オプションを設定する ▼ samples.csv

Slide 11

Slide 11 text

追加オプションを設定する 1000 を設定

Slide 12

Slide 12 text

Lambda 関数の作成・Lambda Invoke に関数を設定する

Slide 13

Slide 13 text

States Language の定義を確認する ▼ Workflow Studio ▼ 定義のグラフビュー

Slide 14

Slide 14 text

実行の開始!

Slide 15

Slide 15 text

同時実行数: 1000 同時実行数: 1

Slide 16

Slide 16 text

Map Distributed Map 最大同時実行数 40 10,000 インプット 前のステートから渡された JSON の配列のみ S3 オブジェクトのリスト JSON の配列またはファイル CSV ファイル S3 イベントリ ペイロード 256KB ファイルへの参照や単一レコードを受け取る Step Functions 側での制限なし (Lambda のストレージやメモリの上限がある) 実行履歴 ステートマシン全体で25,000 イベント 子プロセス毎にそれぞれ 25,000 イベント Express モードで実行する場合は制限なし Map と Distributed Map の比較 引用: https://dev.classmethod.jp/articles/new-feature-step-functions-distributed-map-reinvent2022/ Lambda のデフォルトの同時実行数は 1,000

Slide 17

Slide 17 text

Step Functions と Lambda で大量のデータを 並列処理できるのは、非常に便利そう! まとめ 処理に 30 秒かかるログファイルが 1,000 個あったとして、 順次処理した場合、8 時間以上かかる。 でも、並列に実行すれば 30 秒で終わってしまう。 できるエンジニアは並列処理やで。 知らんけど。

Slide 18

Slide 18 text

No content