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

Step Functionsと少し仲良くなってみた

Step Functionsと少し仲良くなってみた

2024/6/28開催の生成AIの話をしたら即終了!ランチタイムLTイベントでの登壇資料です!

Nao Masuya

June 28, 2024
Tweet

More Decks by Nao Masuya

Other Decks in Technology

Transcript

  1. 4
 自己紹介
 株式会社 エーピーコミュニケーションズ システム基盤サービス事業本部 クラウド事業部 IaC技術推進部 升谷直緒 • 2020年入社

    • SIerとして5年目 • AWSは使い始めて4年目 • CI/CDの導入支援 • Webアプリの改善運用 • リモートワーク @masuchoku

  2. 5
 アウトプット 
 • ブログ ◦ 月1程度で更新したい • LT ◦

    AWS関連のコミュニティ ▪ 社外の人と関われる貴重な機会 ▪ 普段使わないAWSサービスに触れる ▪ さまざまな支部があるから色々参加してみ るのと楽しい ◦ Women Developers Summit 2023 ▪ 女性エンジニアのイベント ▪ アウトプットしよう!というテーマでLT
  3. 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へ保存
 入力
 出力
 入力
 出力
 入力
 出力
 入力
 出力

  4. 10
 ドラッグアンドドロップ
 で視覚的に
 ワークフローが作れる
 ので本当に簡単
 
 jsonが自動で作成される ので勉強になる
 1. Step

    Functionsとは何者!? 
 分散アプリケーションの ための
 視覚的なワークフロー
 
 AWSの公式サイト

  5. 11
 2. 初心者の方へ伝えたい推しポイント 
 Lambdaを連続で実行するワークフローを 作成できるのはもちろんのこと、 • 一つ前のLambdaの出力が次のLambdaの入 力として使える •

    フロー機能の中のMapを使うことで一つの Lambdaを並行実行できる • パターン機能の中のProcess S3 Objectを使 うことでS3バケットの中身を自動的に入力 として使うことができる
  6. 13
 2. 初心者の方へ伝えたい推しポイント 
 Systems Managerで「EC2インスタンスのyum updateを定期実行させる」処理を実装した が、一部をStep Functionsで置き換えが可能そう! 定期実行は

    EventBridge
 にお願いしな いといけない
 点では
 Systems Manager
 の方がいいの か?
 インスタンス
 起動停止の
 設定は StepFunctions
 の方が楽そうだ

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

  8. 15
 3. Step Functionsの細かい特徴 
 AWS Step Functions で Task

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