LoginSignup
0
0

More than 1 year has passed since last update.

AWS Step Functionsワークショップ:学習メモ

Posted at

これは何?

JP Contents Hubに掲載されているStep Functionsのハンズオンの実施メモです。

Step Functionsとは

AWS Step Functions はフルマネージドサービス型のサービスで、視覚的ワークフローを使用して分散アプリケーションやマイクロサービスのコンポーネントを容易にコーディネートできます。それぞれ別個の機能を実行する個々のコンポーネントからアプリケーションを構築することで、迅速にアプリケーションをスケーリングおよび変更できるようになります。Step Functions を使えば、安心してアプリケーションのコンポーネントを調整し、機能を配置できます。グラフィカルコンソールを使用して、アプリケーションのコンポーネントを一連のステップとして配置し、可視化できます。これにより、複数のステップからなるアプリケーションをシンプルに構築および実行できるようになります。Step Functions では、各ステップが自動的にトリガーおよび追跡され、エラーが発生した場合は再試行されるため、アプリケーションが意図したとおりに整然と実行されます。また、各ステップの状態が記録されるため、問題が発生した場合は、問題を簡単に診断およびデバッグできます。コードを記述することなくステップを変更および追加できるため、アプリケーションを簡単に発展させ、短期間でイノベーションを実現できます。
https://aws.amazon.com/jp/step-functions/faqs/

端的にいうと、マイクロサービスなどの細分化した機能をGUIを使用して連結させ、サービスの設計ができるマネージドサービスです。AWS LambdaやAWS ECSなどを組み合わせることができます。

なぜStep Functionsを使うのか

  • 短期間に簡単にアプリケーションを構築することができます。GUI上にLambdaをドラッグ&ドロップするだけでLambdaを実行できたり、実行順を変更するなどが可能です。
  • 分散している機能をステートマシンにまとめることができ、管理が楽になります。
  • エラー時の再実行、例外処理など機能として提供されており、簡単に組み込むことができます。
  • サービスの実行順や実行状態をGUI上で可視化することができます。

ユースケース

ハンズオンのゴール

  1. ステートマシンを作成し、実行する方法を理解する
  2. ステートマシンでAWS Lambda関数を実行する方法を理解する
  3. ステートマシンのエラーハンドリングの設定について理解する
  4. ステートマシンのMap機能を理解する
  5. 他AWSサービスをトリガーとして、ステートマシンを実行する方法を理解する

アジェンダ

  • [Hello World]の作成 
    • Lambdaを使わずStep Functionsで Hello Worldしてみる
  • Lambdaの起動
    • Step FunctionsからLambda関数を起動するステートマシンの作成
  • Catchによるエラー処理
    • Lambda関数(※)でエラーイベントを発生させ、ステートマシンでハンドリングしてみる
    • (※)「step-functions-error」という設計図で公開
  • Map機能にするLambda関数の複数回実行
    • Map機能でLambdaを複数回実行し、実行結果を結合して出力する

ハンズオンの感想

ハンズオンでは単純なステートマシンしか作成しませんでしたが、
アプリケーションの規模が大きくなり、Lambdaやその他サービスなど関連するコンポーネントが多くなるほど、
このサービスの真価が発揮されると感じました。
ステートマシンのフローはJsonで管理できるため、IaCも可能なのも良いと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0