2022/12/23 JAWS-UG 名古屋 2022年 "re:Invent"の復習~忘年会~ での LT 登壇資料「Step Functions Distributed Map を使ってみた!」です。
Step FunctionsKazuno FukudaDistributed Mapを使ってみた!2022.12.23JAWS-UG名古屋 2022年 "re:Invent"の復習~忘年会~
View Slide
株式会社コラボスタイル開発部 サービスチームチームマネージャー業務では使ってません@codemountains好きな言語は Rust です。かるく自己紹介Kazuno Fukuda
開催地・コラボベース枠... あるらしいよ?社外のLT... 初挑戦です。 頑張りますや、やります...!!
Step FunctionsDistributed Mapで大規模な並列処理ができるようになったらしい。最大 40が 10,000ってマジ?
Tutorial: Copying large-scale CSV datausing Distributed Maphttps://docs.aws.amazon.com/step-functions/latest/dg/tutorial-get-started-distributed-map.html
全体の流れWorkflowを作成するMapの必須項目を設定する追加オプションの設定するLambda関数を作成するLambda Invokeに関数を設定するStates Languageの定義を確認するステートマシンの実行
Workflowを作成する
Workflowを作成するCSVファイルの項目ごとに一連のステップを実行してみる!!
Mapの必須項目を設定する分散モードを選択
追加オプションを設定する▼ samples.csv
追加オプションを設定する1000を設定
Lambda関数の作成・Lambda Invokeに関数を設定する
States Languageの定義を確認する▼ Workflow Studio▼ 定義のグラフビュー
実行の開始!
同時実行数: 1000同時実行数: 1
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
Step Functionsと Lambdaで大量のデータを並列処理できるのは、非常に便利そう!まとめ処理に 30秒かかるログファイルが 1,000個あったとして、順次処理した場合、8時間以上かかる。でも、並列に実行すれば 30秒で終わってしまう。できるエンジニアは並列処理やで。知らんけど。