Slide 1

Slide 1 text

Step Functionsと少し仲良くなってみ た!
 2024/6/28 生成AIの話をしたら即終了!ランチタイムLTイベント 株式会社エーピーコミュニケーションズ 升谷直緒

Slide 2

Slide 2 text

2
 所属 株式会社エーピーコミュニケーションズ @apc_tweet
 自己紹介


Slide 3

Slide 3 text

3
 少し宣伝
 【6月中旬発売予定】カプセルトイ 『手のひらネットワーク機器2』 を企画・監修しました! 
 本企画は、総合監修を務める当社 が 「ITインフラを一般の方にも 知ってもらい、業界を盛り上げた い という想いから立案し、これに 共感した A10ネットワークス様・ シスコ様・古河電工様の協力によ り実現に至りました。

Slide 4

Slide 4 text

4
 自己紹介
 株式会社 エーピーコミュニケーションズ システム基盤サービス事業本部 クラウド事業部 IaC技術推進部 升谷直緒 ● 2020年入社 ● SIerとして5年目 ● AWSは使い始めて4年目 ● CI/CDの導入支援 ● Webアプリの改善運用 ● リモートワーク @masuchoku


Slide 5

Slide 5 text

5
 アウトプット 
 ● ブログ ○ 月1程度で更新したい ● LT ○ AWS関連のコミュニティ ■ 社外の人と関われる貴重な機会 ■ 普段使わないAWSサービスに触れる ■ さまざまな支部があるから色々参加してみ るのと楽しい ○ Women Developers Summit 2023 ■ 女性エンジニアのイベント ■ アウトプットしよう!というテーマでLT

Slide 6

Slide 6 text

6
 AWS Summit 2024行きましたー! 


Slide 7

Slide 7 text

7
 今日のテーマ 
 Step Functionsを使ったLambdaを複数呼び出す
 アーキテクチャに携わった!
 ↓
 Step Functions
 の魅力をLT!
 AWS初心者の方へ届け!


Slide 8

Slide 8 text

AWS Cloud 8
 AWS Step Functions workflow EventBridge
 Lambda
 Redshift
 S3
 Lambdaを複数呼び出すアーキテクチャ 
 API Gateway
 1. EventBridgeから StepFunctionsを呼び出す
 
 2. Lambdaを使ってAPI Gatewayから複数のデータを 取得し、S3へ格納
 
 3. 後続Lambdaは並行で実行さ れS3のデータ一つ一つを加工 し、DBへ保存
 入力
 出力
 入力
 出力
 入力
 出力
 入力
 出力


Slide 9

Slide 9 text

9
 今日のアジェンダ 
 1. Step Functionsとは何者!?
 2. 初心者の方へ伝えたい推しポイント
 3. Step Functionsの細かい特徴


Slide 10

Slide 10 text

10
 ドラッグアンドドロップ
 で視覚的に
 ワークフローが作れる
 ので本当に簡単
 
 jsonが自動で作成される ので勉強になる
 1. Step Functionsとは何者!? 
 分散アプリケーションの ための
 視覚的なワークフロー
 
 AWSの公式サイト


Slide 11

Slide 11 text

11
 2. 初心者の方へ伝えたい推しポイント 
 Lambdaを連続で実行するワークフローを 作成できるのはもちろんのこと、 ● 一つ前のLambdaの出力が次のLambdaの入 力として使える ● フロー機能の中のMapを使うことで一つの Lambdaを並行実行できる ● パターン機能の中のProcess S3 Objectを使 うことでS3バケットの中身を自動的に入力 として使うことができる

Slide 12

Slide 12 text

12
 2. 初心者の方へ伝えたい推しポイント 
 ワークフローの中に組み込める アクションはLambdaに限らず、 220以上のAWSサービスをローコード(ノーコード!?)で ワークフローを作り自動化ができる。 ● Lambdaで実装しようと思っていた処理が実は、Step Functionsを使うとノーコードで実装できる可能性がある

Slide 13

Slide 13 text

13
 2. 初心者の方へ伝えたい推しポイント 
 Systems Managerで「EC2インスタンスのyum updateを定期実行させる」処理を実装した が、一部をStep Functionsで置き換えが可能そう! 定期実行は EventBridge
 にお願いしな いといけない
 点では
 Systems Manager
 の方がいいの か?
 インスタンス
 起動停止の
 設定は StepFunctions
 の方が楽そうだ


Slide 14

Slide 14 text

14
 3. Step Functionsの細かい特徴 
 "ItemBatcher": { "MaxItemsPerBatch": 3 // 受け取った入力を1回のLambda処理で何個ずつ処理するか }, "MaxConcurrency": 10, // 何個のLambdaを並行で実行するのか "Retry": [ { "ErrorEquals": [ "States.ItemReaderFailed" // 何のエラーの場合リトライするのか ], "IntervalSeconds": 1, "MaxAttempts": 3, // 何回までリトライするのか "BackoffRate": 2 } ], "Catch": [ { "ErrorEquals": [ "States.ALL" ], "Next": "異常終了" } ], 
 入力
 [
 {
 "nervous": "true", 
 "lt_date": "4/16/2024", 
 "whats_lt_about": "api_gateway" 
 },
 {
 "nervous": "true", 
 "lt_date": "10/25/2023", 
 "whats_lt_about": "appsync" 
 },
 {
 "nervous": "true", 
 "lt_date": "3/29/2023", 
 "whats_lt_about": "systems_manager" 
 }
 ]
 
 
 出力
 入力
 出力
 入力
 出力
 "MaxConcurrency" 


Slide 15

Slide 15 text

15
 3. Step Functionsの細かい特徴 
 AWS Step Functions で Task の出力を保持しておき後の Task で参照する 出力
 入力
 入力
 出力
 入力
 出力
 入力
 出力
 ● Workflow Studio の初期設定のままだと直 前のステートの結果しか残らない ● 出力(特に ResultPath と OutputPath) をきちんと設定すればあるステートでの 出力を保持してしばらく後のステートで も参照できる チームメンバーの ブログへ飛びます!

Slide 16

Slide 16 text

16
 Thank you! 
 ご静聴ありがとうございました!
 
 Step Functions
 楽しみましょう!