SAA / ドメイン2 レジリエントなアーキテクチャの設計

AWS Step Functions

は、複数のAWSサービスやアプリケーション処理をステートマシンとして連携するワークフローサービスです。

SAA では、分岐、並列実行、待機、再試行、エラー処理をコードへ埋め込まず、長い業務フローを可視化して管理する場合に選びます。


概要

Amazon States Languageで状態と遷移を定義し、、、、などを呼び出します。各ステップの状態を保持するため、障害時に最初からやり直す必要を減らせます。


主要技術

①StandardとExpress ⚠️ 頻出

ワークフロー用途判断ポイント
Standard長時間・監査性重視実行履歴とexactly-once型の進行が重要です。
Express高頻度・短時間イベント処理のとコストを重視します。

Standardは1回の実行を最長1年まで続けられ、状態遷移の数で課金されます。実行は1回だけ進む (exactly-once) ため、決済のように二重に実行できない処理に向き、実行履歴はコンソールやで90日間確認できます。Expressは最長5分で、実行回数と実行時間で課金されます。非同期実行は少なくとも1回 (at-least-once)、同期実行は多くても1回 (at-most-once) の実行で、履歴は Logsへ出力して確認します。Expressは、ジョブの完了を待つ統合 (.sync) と、タスクトークンで外部からの応答を待つコールバック (.waitForTaskToken) に対応しないため、人の承認を待つワークフローはStandardで作ります。


②状態と制御

Task、Choice、Parallel、Map、Wait、Pass、Fail、Succeedなどを組み合わせます。分散処理の分岐や並列化を宣言的に表現できます。

Mapステートには2つのモードがあります。インラインモードは前のステップから渡された配列を処理し、同時に実行できる反復は40までです。分散モード (Distributed Map) は、のオブジェクト一覧やCSVファイルを直接入力にでき、各反復を子ワークフローとして最大10,000並列で実行するため、数百万件のデータを一度に処理できます。分散モードはStandardワークフローで使います。


③再試行とエラー処理

Retryで一時障害を再試行し、Catchで代替処理へ遷移します。と最大回数を設定し、無限再試行や下流サービスの過負荷を避けます。


④サービス統合

を挟まずに対応AWS を直接呼び出せます。同期実行、コールバック、ジョブ実行など、処理完了の待ち方を要件に応じて選びます。


試験対策

要件選ぶサービス
複数処理の順序・分岐・再試行を管理
単純なイベントルーティング
バッファリングと負荷平準化
短い処理コードを実行

「ワークフローの状態を保持」「人の承認待ち」「複数サービスの補償処理」が判断キーワードです。


参考文献

  1. ※1出題比率: AWS 公式の試験ガイドに記載された、採点対象の設問のうちその分野が占める割合です。

検索

キーワードを入力してください