ホーム モダナイゼーション戦略

サーバーレス化 — Lambda移行パターンと実行時間制約への対応

イベント駆動への再設計、既存バッチ処理のLambda化における制約(実行時間等)を解説します。

最終更新: 2026-07-28 カテゴリ: モダナイゼーション戦略

モダナイゼーションの中でも、運用負荷を最も大きく削減できる可能性があるのが サーバーレス化です。ただし、既存システムをそのままLambdaに移行しようとすると、 いくつかの制約に直面します。本記事ではその移行パターンと注意点を解説します。

SAA レベル:基礎概念

サーバーレス化が適する既存ワークロード

  • 間欠的に実行されるバッチ処理(夜間集計処理等)
  • イベント駆動で発生する処理(ファイルアップロード時の変換処理等)
  • トラフィックが予測しづらいAPIバックエンド

SAA 試験のポイント

Lambda関数の実行時間制限は最大15分です。既存のバッチ処理をそのままLambda化しようとして、処理時間が15分を超える場合は、そのままでは移行できないという制約がSAAで頻出します(2-1のサーバーレス記事でも触れた基本制約)。

SAP レベル:高度な設計シナリオ

イベント駆動への再設計

SAP 試験のポイント

既存の同期的でシーケンシャルな処理フロー(バッチ処理がステップを順番に実行する構成)を、そのままLambda関数1つに移植しようとすると、実行時間制約に抵触します。SAPレベルでは、処理を複数の小さなステップに分解し、Step Functionsでオーケストレーションすることで、各ステップは15分以内に収まりつつ、全体としては長時間の処理フローを実現する再設計が問われます。

既存の一体型バッチ処理(実行時間: 2時間) │ Step Functionsでの再設計 ├── Lambda: データ抽出(10分以内) ├── Lambda: データ変換(並列実行、各ステップ10分以内) ├── Lambda: データロード(10分以内) └── 各ステップの実行時間制約をクリアしつつ、全体の処理を実現

大量データ処理の代替手段

SAP 試験のポイント

15分の実行時間制約や、Lambdaのメモリ制約(最大10GB)を超えるような大規模なバッチ処理(ペタバイト級のETL処理等)は、無理にLambdaで実現しようとせず、**AWS Glue(サーバーレスETL)やECS/Fargateタスク(実行時間制約なし)**への移行を検討することがSAPレベルの判断として問われます。「サーバーレス化=必ずLambda」という短絡的な理解は誤りです。

処理特性推奨されるサービス
短時間・イベント駆動Lambda
長時間・大規模データ処理のETLAWS Glue
長時間・カスタムロジックのバッチ処理ECS/Fargate タスク(スケジュール実行)

設計上の落とし穴

「実行時間制約を回避するために、Lambda関数の中で別のLambda関数を非同期に呼び出し続けてリレー形式で処理を継続する」という力技の設計は、エラーハンドリングと可観測性が著しく低下し、SAPレベルではアンチパターンとして扱われます。素直にStep Functionsでオーケストレーションするか、より長時間実行に適したサービス(ECS/Fargate、Glue)を選択することが正しい判断です。

既存コードの移植性の考慮

  • 既存のアプリケーションロジックがOS依存の機能(特定のライブラリ、ファイルシステム操作)に強く依存している場合、Lambdaの実行環境(コンテナベースのサンドボックス)への移植に追加の改修が必要になることがある
  • Lambda Web Adapterのようなツールを使うと、既存のWebフレームワーク(Express等)で書かれたアプリケーションを、大きな変更なしにLambda上で動かすことも可能

まとめ

  • SAA: サーバーレス化に適するワークロードの特性、Lambdaの15分実行時間制約を理解する。
  • SAP: Step Functionsによる長時間処理の分解、大規模データ処理における適切なサービス選択(Glue/ECS)ができる。

次は レガシーDBからAurora/DynamoDBへの移行戦略を見ていきましょう。