Slide 1

Slide 1 text

2025/4/27 アイレット株式会社 アジャイル事業部 IoTセクション 第160回 雲勉 それ、AWS Step Functions で置き換えれん?

Slide 2

Slide 2 text

2 自己紹介 名前:北野 涼平(ヤマダ) 所属:アジャイル事業部 IoTS IoTBG 趣味:LT、プリン、読書 愛S:Figma、AWS Fault Injection Service プロフィール

Slide 3

Slide 3 text

3 AWS Lambda 使ってますか?

Slide 4

Slide 4 text

4 AWS Lambda 使ってますか? ● サーバーレス ● サーバーを管理することなく、高可用性と耐障害性を実現 ● 組み込みのログ記録・モニタリング機能 ● スケーリング ● 従量課金制 →色々あると思います AWS Lambda を使うメリット

Slide 5

Slide 5 text

5 デメリットはあるのか?

Slide 6

Slide 6 text

6 AWS Lambda 使ってますか? ● プログラミング言語の知識が必要 ● 高い専門性 ● ランタイムのサポート廃止(Python3.9も2025年11月廃止予定) ● 複数の AWS Lambda を使用する場合は複雑になる ● 実行時間の上限 →中でもランタイムのサポートは思っているより早いです AWS Lambda を使うデメリット

Slide 7

Slide 7 text

7 なるべくなら使いたくない…!

Slide 8

Slide 8 text

8 AWS Step Functions に 置き換えられないか考えてみよう!

Slide 9

Slide 9 text

9 アジェンダ ● AWS Step Functions を採用するメリットについて ● JSONata について ● 実際に使ってみた話 今回お話すること ● 細かい設定値 ● プロンプトなど 話さないこと

Slide 10

Slide 10 text

10 AWS Step Functions とは

Slide 11

Slide 11 text

11 AWS Step Functions とは ● AWS提供のマネージドサービス ● ワークフローとして各サービスを連携できる ● 非常に多くのサービスに対応 <北野の偏見> Map処理したい時とか、 複雑な処理分岐にしか使ってはいけないのでは? AWS Step Functions とは ソンナコトナイヨ!

Slide 12

Slide 12 text

12 AWS Step Functions とは ● 処理の可視化 ● ワークフローがとっても視覚的! ● プログラミング言語の知識がなくても見れる(?) ● ちょっとした処理は JSONata が吸収 ● 自動スケーリング ● ランタイムのサポートを気にしなくていい! ● 非同期処理を作りやすい ● AWS Lambda や Amazon API Gateway の タイムアウトから解放 AWS Step Functions のメリット

Slide 13

Slide 13 text

13 実際に使ってみる

Slide 14

Slide 14 text

14 実際に使ってみる 構成図 実行時間に一抹の不安

Slide 15

Slide 15 text

15 実際に使ってみる 構成図 APIのレスポンスはすぐ来る

Slide 16

Slide 16 text

16 実践

Slide 17

Slide 17 text

17 実践 ● フローが目で見える ● 関連サービスがわかりやすい 処理の可視化(ワークフロー)

Slide 18

Slide 18 text

18 実践 ● JSONata でちょっとした処理を吸収 ● プロンプトを工夫したり、結果を入れる際の一手間など 処理の可視化(JSONata)

Slide 19

Slide 19 text

19 実践 JSONata とは ● AWS Step Functions には2024年11月に追加 ● JSONデータの軽量クエリおよび変換言語 ● JSONオブジェクトの複雑なデータ操作が可能 ● フローの中間ステートが不必要になった! 処理の可視化(JSONata)

Slide 20

Slide 20 text

20 実践 ● エラーによって細かく制御が可能 ● Amazon DynamoDB でエラーが あったら Fail 、なければ API 呼び出しが視覚的 処理の可視化(エラーハンドリング) タイムアウトなどのエラーに よって分岐を指定できる

Slide 21

Slide 21 text

21 実践 処理の可視化(エラーハンドリング) 通ってきた処理が色づく アクションをクリック して原因を究明

Slide 22

Slide 22 text

22 実践 ● アクションを選択 ● AWS Lambda の時のように 言語を気にしない ランタイムのサポート

Slide 23

Slide 23 text

23 実践 ● curl で API を実行 ● わざわざ書くほどのことでもないが、Slack に通知がきた ● 生成AIなど、実行時間を予測しづらい時に◎ 非同期処理

Slide 24

Slide 24 text

24 まとめ

Slide 25

Slide 25 text

25 まとめ ● 多くのサービスに対応し、処理の分岐も作りやすい ● ワークフローを視覚的に表現 ● エラーハンドリングも見やすく、原因調査もしやすい ● 生成AIとの相性がよい ● 非同期処理 ● Amazon Bedrock アクションも豊富 ● 簡単な処理は JSONata が吸収 ● プログラム風だが、慣れれば簡単(?) AWS Step Functions を使ってみた

Slide 26

Slide 26 text

26 まとめ もちろん AWS Lambda や別のアプローチのほうが良い場合も ありますが、AWS Step Functions を使用するメリットを理解 し、採用を検討してみてください。 私は並行処理や AWS Lambda を複数扱うためでしか使わない 方がいいのかなと思っていました。実際に触ってみるとワー クフローは視覚的であり、アクションも豊富でむしろ簡単な 処理にこそ向いているのではと思ったほどです! AWS Step Functions を使ってみた

Slide 27

Slide 27 text

27 まとめ お話したこと ● AWS Step Functions を採用するメリットについて ● JSONata について ● 実際に使ってみた話 今回作成した構成について、 iret.media にて詳細に記事にしようと思います! AWS Step Functions を使ってみた

Slide 28

Slide 28 text

28 ありがとうございました!