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

Step Functions Distributed Map を使ってみた

Step Functions Distributed Map を使ってみた

2022/12/23 JAWS-UG 名古屋 2022年 "re:Invent"の復習~忘年会~ での LT 登壇資料「Step Functions Distributed Map を使ってみた!」です。

kazuno fukuda

December 23, 2022
Tweet

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

  4. Step Functions
    Distributed Map

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

    View Slide

  5. Tutorial: Copying large-scale CSV data

    using Distributed Map


    https://docs.aws.amazon.com/step-functions/latest/dg/tutorial-

    get-started-distributed-map.html

    View Slide

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

    View Slide

  7. Workflow
    を作成する

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  14. 実行の開始!

    View Slide

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

    View Slide


  16. 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

    View Slide

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

    View Slide

  18. View Slide