AWS ステップファンクションとは?

はじめに

AWS ステップファンクションとは、視覚的なワークフローを使用して、分散アプリケーションとマイクロサービスのコンポーネントを調整できるウェブサービスです。それぞれの別個の関数(タスク)を実行する個々のコンポーネントからアプリケーションを構築することで、簡単にアプリケーションをスケールおよび変更できます。

ステップファンクションは、コンポーネントを調整し、アプリケーションの機能をステップスルーするための信頼できる方法を提供します。ステップファンクションは、一連の手順としてアプリケーションのコンポーネントを視覚化するためのグラフィカルコンソールを提供します。

AWS ステップファンクションでは、各ステップが自動的にトリガーおよび追跡され、エラーが発生した場合は再試行されるため、アプリケーションが毎回意図したとおりに整然と実行されます。また、ステップファンクションは各ステップの状態を記録するため、問題が発生した場合は、問題を簡単に診断およびデバッグができます。

ステップファンクションのメリット

アプリの早い構築と更新

AWS ステップファンクションでは、ビジネス要件を技術要件にすばやく変換できる視覚的なワークフローを構築できます。わずか数分でアプリケーションを構築できます。また、ニーズの変化を応じて、コードをカスタマイズすることなくコンポーネントを交換または再編成できます。

回復性の向上

AWS ステップファンクションによって状態、チェックポイント、再起動を管理できるので、アプリケーションが順番に想定どおりに実行されていることを確認できます。ビルトインの try/catch、再試行、ロールバック機能は、エラーと例外に自動的に対処します。

コードの削減

AWS ステップファンクションはアプリケーションのロジックを管理し、分岐、並行実行、タイムアウトなどの基本プリミティブを実装します。これにより、マイクロサービスや関数で繰り返される余分なコードを削除できます。

ステップファンクションの料金

ステップファンクションは状態遷移ごとに課金されます。最初の4000回の状態遷移については一月の無料枠の範囲枠なので課金されません。それ以降は状態遷移あたりに課金されます。リージョンによって金額は異なるのですが、バージニア北部の場合、1000回の状態遷移で0.025 USDが課金されます。

ユースケース

データ処理

ステップファンクションでは、手動でジョブのオーケストレーションを行ったり、別のアプリケーションを維持することなく、長時間実行される複数のETLジョブを順番に実行し、正常に完了することができます。また、ステップファンクションを使用して機械学習トレーニングのワークフローを標準化し、機械学習モデルの正確性を改善することもできます。

自動化タスク

ステップファンクションは、ルーチンデプロイメント、アップグレード、インストール、移行を自動化し、監査できます。ステップファンクションを使用して、パッチ管理、インフラストラクチャの選択、データ同期などの繰り返しタスクを簡単に自動化できます。またステップファンクションは自動的にスケールを行い、タイムアウトに応答し、エラータスクの再試行を行います。

モノリスのモダン化

ステップファンクションを使用してコードベースの残りから一部のタスクを切り出すことで、一連の小さなステップとしてモノリシックアプリケーションをマイクロサービスへ変換することができます。これにより、オペレーションを中断することなく、新しい機能を提供し続けながら、ビジネスクリティカルなコードを安全かつ自分のペースで解決することがきます。

アプリケーションのオーケストレーション

ステップファンクションを使用して、ワークフローロジック、平行プロセス、エラー処理、タイムアウトまたは再試行のコードを書くことなく、複数のAWS Lambda 関数を応答性サーバーレスアプリケーションへ統合できます。またAmazon EC2 インスタンス、コンテナ、またはオンプレミスサーバーで実行されるデータとサービスのオーケストレーションを行うこともできます。

AWS ステップファンクションとAWS Lambdaを使用してサーバーレスワークフローを作成する場合

ステートマシンとサーバーレスワークフローを作成→AWS Identity and Access Managementロールを作成→ステートマシンにIAMロールを追加する→独自のAWS Lambda 関数を作成→ワークフローを挿入する→ワークフローを実行する→リソースを終了する

さいごに

今回は、ステップファンクションの概要について紹介しました。仕組みやメリットを少しでも感じていただければ幸いです。わずか数分でアプリケーションを構築できることはとても画期的ですね。読んでいただきありがとうございました。

参考文献:
https://hironsan.hatenablog.com/entry/introduction-to-aws-step-functions
https://d1.awsstatic.com/International/ja_JP/Whitepapers/serverless-architectures-with-aws-lambda_JA.pdf
https://netland-magazine-1300683752.cos.ap-tokyo.myqcloud.com/cloudcatalog/netland_cloudservicecatalog_vol4/HTML/index31.html

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です