AWS Step Functionsとは
複数のLambda関数やAWSサービスのステップを視覚的なワークフロー(ステートマシン)として定義・実行するオーケストレーションサービス。エラーハンドリング・リトライ・タイムアウトを宣言的に設定できる。
ExpressワークフローとStandardワークフローの2種類があり、前者は高スループット・短時間処理向け、後者は長期実行・厳密な1回実行保証・履歴保存向け。
試験での問われ方
「複数のLambdaを順次または並列に実行して複雑なビジネスプロセスを管理したい」シナリオではStep Functionsを選ぶ。Lambdaのオーケストレーションをコード(Lambdaチェーン)で書くのは依存関係管理が煩雑になるため、Step Functionsが推奨される。
ステートの使い分けがDVAで問われる。条件分岐はChoice、配列の各要素に同じ処理を繰り返すのはMap、複数ブランチを同時実行するのはParallel。エラー処理は、各ステートにRetry(指定回数・バックオフで再試行)とCatch(特定エラー時に別ステートへ遷移)を宣言的に書ける点が、Lambda内に自前で書くより堅牢という文脈で出る。
SAP・DVAでは実行履歴の保持(Standard)・Expressの非同期実行・SDKインテグレーションによるLambda以外のサービス直接呼び出しが問われる。Standard(長時間・厳密に1回・履歴保存・低スループット)とExpress(短時間・大量・低コスト・至少1回)の使い分けは頻出で、注文処理のような長いワークフローはStandard、IoTやストリーム取り込みのような大量・短命なイベントはExpressが目安。
このサービスが登場する演習問題(9問)
- 【CLF-C02】ある企業が、AWS上でマイクロサービスのワークフローを管理したいと考えています。複数のLambda関数やサービスを特定の…
- 【SAA-C03】ある企業が、Lambda 関数でサードパーティの外部 API を呼び出すワークフローを実装している。外部 API は時々…
- 【SAA-C03】ある企業が、AWS Lambda を使ったサーバーレスアプリケーションのコストを最適化したい。Lambda 関数のメモリ…
- 【SAA-C03】ある企業が、AWS Lambda 関数で大量の S3 オブジェクト(1 ファイル 500KB 程度、1 バッチで 10,…
- 【DVA-C02】ある金融サービス企業が、Step Functionsを使って与信審査ワークフローを実装している。各ステップは外部APIを…
- 【DVA-C02】ある医療記録管理企業が、Step FunctionsのStandard Workflowを使って患者データの変換・検証・…
- 【SAP-C02】ある企業が完全サーバーレスのデータ処理パイプラインを設計しています。オンプレミスのシステムから毎日 100GB のデータ…
- 【SAP-C02】ある企業が AWS 上で複数の Lambda 関数を運用しており、月次のコスト分析で Lambda のコストが予想を大幅…
- 【SAP-C02】ある企業が AWS 上でサーバーレスアプリケーションを構築しており、Lambda 関数が複数のダウンストリームサービス(…