𝕏 f B! L
案件・求人数 12,345
案件を探す(準備中) エージェントを探す(準備中) お役立ち情報 ログイン
案件・求人数 12,345
AWS Step Functionsの基礎と実践|SES案件で使える設計術

AWS Step Functionsの基礎と実践|SES案件で使える設計術

AWSStep FunctionsサーバーレスSES案件Lambda
目次
⚡ 3秒でわかる!この記事のポイント
  • Step Functionsはサーバーレスワークフローを視覚的に設計・実行できるAWSサービス
  • Lambda・S3・SESとの連携で実用的なパイプラインを構築可能
  • SES案件では月単価70〜100万円レンジで需要が増加中

「Lambdaを複数組み合わせた処理の管理が煩雑」「非同期処理のエラーハンドリングが難しい」——サーバーレスアーキテクチャを扱うSESエンジニアなら、こうした課題に直面したことがあるのではないでしょうか。

AWS Step Functionsは、複数のAWSサービスをステートマシンとして統合し、ワークフローを視覚的に設計・管理できるサービスです。 Lambda単体では複雑になりがちなオーケストレーション処理を、宣言的に記述できます。

この記事でわかること
  • Step Functionsの基本概念と2つのワークフロータイプ
  • ASL(Amazon States Language)の書き方
  • Lambda・S3・SESとの連携パターン
  • エラーハンドリングとリトライ戦略
  • SES案件での活用シーンと単価相場

AWS Step Functionsとは?

AWS Step Functionsは、ビジュアルワークフローサービスです。AWSの各サービスをステップとして組み合わせ、複雑なビジネスロジックを状態遷移図(ステートマシン)として定義・実行できます。

ステートマシンの基本概念

Step Functionsのワークフローはステートマシンとして表現されます。

主要なステートタイプ:

ステート機能用途
TaskAWSサービスの呼び出しLambda実行、DynamoDB操作等
Choice条件分岐入力値による処理の振り分け
Parallel並列実行独立した処理の同時実行
Map配列の反復処理リスト内の各要素に処理を適用
Wait待機指定時間の待機
Passデータ変換入出力のフィルタリング・変換
Succeed/Fail終了状態正常終了 / 異常終了

Standard vs Express ワークフロー

Step Functionsには2つの実行モードがあります:

特性StandardExpress
最大実行時間1年5分
実行保証Exactly-onceAt-least-once / At-most-once
料金体系状態遷移ごと実行数×時間
実行履歴90日間保持CloudWatch Logsへ出力
適用シーン長時間バッチ、承認フローAPI統合、リアルタイム処理

選択の指針: 処理時間が5分以内で高頻度実行ならExpress、それ以外はStandardを選択します。

Step Functionsの基本的な使い方

ASL(Amazon States Language)の書き方

Step FunctionsのワークフローはASLというJSON形式の言語で定義します。

{
  "Comment": "注文処理ワークフロー",
  "StartAt": "ValidateOrder",
  "States": {
    "ValidateOrder": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:ap-northeast-1:123456789:function:validate-order",
      "Next": "CheckInventory",
      "Catch": [{
        "ErrorEquals": ["ValidationError"],
        "Next": "OrderFailed"
      }]
    },
    "CheckInventory": {
      "Type": "Choice",
      "Choices": [{
        "Variable": "$.inStock",
        "BooleanEquals": true,
        "Next": "ProcessPayment"
      }],
      "Default": "OutOfStock"
    },
    "ProcessPayment": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:ap-northeast-1:123456789:function:process-payment",
      "Next": "SendConfirmation"
    },
    "SendConfirmation": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:ap-northeast-1:123456789:function:send-confirmation",
      "End": true
    },
    "OutOfStock": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:ap-northeast-1:123456789:function:notify-out-of-stock",
      "End": true
    },
    "OrderFailed": {
      "Type": "Fail",
      "Error": "OrderProcessingFailed",
      "Cause": "注文バリデーションに失敗しました"
    }
  }
}

マネジメントコンソールでのビジュアル設計

2026年時点のStep Functionsコンソールでは、Workflow Studioというビジュアルエディタが利用できます。

  • ドラッグ&ドロップでステートを配置
  • 接続線で状態遷移を定義
  • 各ステートのプロパティをGUIで設定
  • リアルタイムにASLを生成・プレビュー

ビジュアルエディタで設計 → ASLを確認・調整 → デプロイという流れが効率的です。

Lambda・S3・SESとの連携パターン

データ処理パイプライン

S3にアップロードされたCSVファイルを処理するパイプライン:

S3 Upload Event → Step Functions起動
  → [Lambda] CSVパース&バリデーション
  → [Choice] バリデーションOK?
    → Yes: [Lambda] DynamoDBに登録 → [Lambda] 完了通知
    → No:  [Lambda] エラーレポート生成 → [SES] 管理者にメール通知
{
  "StartAt": "ParseCSV",
  "States": {
    "ParseCSV": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:ap-northeast-1:123456789:function:parse-csv",
      "InputPath": "$.detail",
      "ResultPath": "$.parsed",
      "Next": "ValidateData"
    },
    "ValidateData": {
      "Type": "Choice",
      "Choices": [{
        "Variable": "$.parsed.isValid",
        "BooleanEquals": true,
        "Next": "SaveToDB"
      }],
      "Default": "NotifyError"
    },
    "SaveToDB": {
      "Type": "Task",
      "Resource": "arn:aws:states:::dynamodb:putItem",
      "Parameters": {
        "TableName": "ProcessedData",
        "Item": { "id": { "S.$": "$.parsed.id" } }
      },
      "Next": "NotifySuccess"
    },
    "NotifySuccess": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:ap-northeast-1:123456789:function:notify-success",
      "End": true
    },
    "NotifyError": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:ap-northeast-1:123456789:function:notify-error",
      "End": true
    }
  }
}

メール通知ワークフロー

Amazon SES(Simple Email Service)と連携したメール通知フロー:

  • ユーザー登録 → ウェルカムメール送信
  • 注文完了 → 注文確認メール → 3日後にレビュー依頼メール
  • バッチ処理完了 → 管理者への結果レポートメール

Wait ステートを使えば、「3日後に自動メール」のような時間ベースのワークフローも簡単に構築できます。

Step Functionsの連携パターン

エラーハンドリングとリトライ戦略

Catch/Retryの設定

Step Functionsの強力なエラー処理機能:

{
  "ProcessPayment": {
    "Type": "Task",
    "Resource": "arn:aws:lambda:...",
    "Retry": [{
      "ErrorEquals": ["States.TaskFailed", "Lambda.ServiceException"],
      "IntervalSeconds": 3,
      "MaxAttempts": 3,
      "BackoffRate": 2.0
    }],
    "Catch": [{
      "ErrorEquals": ["States.ALL"],
      "ResultPath": "$.error",
      "Next": "HandlePaymentError"
    }],
    "Next": "SendConfirmation"
  }
}

Retryのベストプラクティス:

  • 一時的なエラー(ネットワークタイムアウト等)にはRetryを設定
  • BackoffRateは2.0(指数バックオフ)を推奨
  • MaxAttemptsは3〜5回が一般的

タイムアウトとフォールバック

{
  "LongRunningTask": {
    "Type": "Task",
    "Resource": "arn:aws:lambda:...",
    "TimeoutSeconds": 300,
    "HeartbeatSeconds": 60,
    "Catch": [{
      "ErrorEquals": ["States.Timeout"],
      "Next": "TimeoutFallback"
    }]
  }
}

HeartbeatSecondsを設定すると、Lambda関数が定期的にハートビートを送信する必要があり、応答がない場合はタイムアウトとして処理されます。

SES案件での活用シーンと求められるスキル

Step Functionsが求められるSES案件の典型例:

  • EC系: 注文処理ワークフロー、在庫管理、配送ステータス管理
  • FinTech系: 決済処理、KYC/AML審査フロー
  • データ基盤系: ETLパイプライン、データ品質チェック
  • 業務システム系: 承認ワークフロー、ドキュメント処理

求められるスキルセット:

  • AWS Lambda + Step Functionsの実装経験
  • ASLの読み書き
  • サーバーレスアーキテクチャの設計
  • CloudFormation / CDKでのIaCスキル
  • DynamoDB, S3, SQS, SNS等の関連サービス知識

Step Functions案件の単価相場と需要

Step Functionsのスキルを持つエンジニアの単価相場:

経験レベル月単価レンジ備考
Lambda + Step Functions 1年65〜80万円基本的なワークフロー構築
サーバーレス設計 3年80〜100万円アーキテクチャ設計を含む
テックリード 5年+100〜120万円チーム指導・技術選定

Step Functions単体というよりも、サーバーレスアーキテクチャ全体の設計力が評価されます。Lambda・DynamoDB・API Gatewayなどの周辺サービスとセットで習得するのが効率的です。

SES BASEでAWS関連案件を検索して、最新の需要動向を確認してみてください。

AWS Step Functionsのアーキテクチャ図解

まとめ

AWS Step Functionsは、サーバーレスワークフローの標準的な選択肢として、SES案件でも需要が拡大しています。

  • ステートマシンベースでワークフローを視覚的に設計
  • Standard / Expressの2モードを用途で使い分け
  • Lambda・S3・SESとの連携パターンが豊富
  • Retry/Catchで堅牢なエラーハンドリング
  • SES案件では月単価70〜120万円レンジ

AWSのサーバーレスエコシステムに携わるエンジニアにとって、Step Functionsは必修スキルです。

参考文献:

関連記事:

SES案件をお探しですか?

SES記事をもっと読む →
🏗️

SES BASE 編集長

SES業界歴10年以上のメンバーが在籍する編集チーム。SES企業での営業・エンジニア経験、フリーランス独立経験を持つメンバーが、業界のリアルな情報をお届けします。

📊 業界データに基づく記事制作 🔍 IPA・経済産業省データ参照 💼 SES実務経験者が執筆・監修