クイック エンジニアリングブログ

株式会社クイック Web事業企画開発本部のエンジニアリングチームが運営する技術ブログです。

AWS Step Functionsでワークフローを視覚化する

こんにちは。ソフトウェアエンジニアのやぎーです。

最近ノーコード・ローコード開発について耳にすることが多くなったので、 AWSのStep Functionsを紹介させていただきます。

ノーコード・ローコード開発とは

ノーコード開発

ソースコードの記述を全く行わずにアプリケーション開発をすること。
プログラミングの知識なくても開発できますが、できることが限られていたりします。

ローコード開発

少ないプログラムコードでアプリケーション開発をすること。
プログラミングの知識は必要ですが、拡張性や柔軟性があります。

AWS Step Functionsとは

AWSのリソースの連携、自動化のワークフローの作成や実行ができるサービスです。 SQSやLambdaで実行したいサーバーレス処理のワークフローなども Workflow Studioを使ってGUIから簡単に連携させることができます。

Step Functionsはローコード開発ツールになります。

フローイメージ

今回は下記のような簡単なフローを作成しようと思います。

  1. SQSメッセージを起点にフローを開始する
  2. 特定のファイルに対して処理を実行する
  3. 変換が成功した場合、ファイル情報を保存する
  4. 実行結果を通知する

それではStep Functionsを設定していきます。

ステートマシンの作成

まずはStep Functionsからステートマシンを作成します。

「ステートマシンの作成」をクリック f:id:aimstogeek:20211006153029p:plain

「作成方法」は、Workflow Studioを使ってGUI上で作成したり、
ASL(Amazon States Language)での作成もできますので、お好みに合わせて選択してください。 f:id:aimstogeek:20211006153035p:plain 今回はWorkflow Studioを使ってワークフローを作成していきます。

ワークフローの作成

作成したステートマシンに、ワークフローを設定します。

左側にAWSのリソースやフローが表示されるので、右側にドラッグドロップすることでフローを作成できます。 f:id:aimstogeek:20211006153128p:plain

下記が実際に作成したワークフローになります。 f:id:aimstogeek:20211006153155p:plain ファイル変換処理の結果がSNS経由で送信されます。

ロジック自体はLambdaなどで作成する必要がありますが、 処理の流れや役割がイメージしやすくなるのではないかと思います。

メリット

  • プログラムを読まなくても処理の流れがイメージできる
  • 処理の分岐や並列化などもWorkflow Studio上で簡単に設定できる
  • AWSリソースとの連携が簡単

デメリット

  • 実行速度はあまり早くない
  • AWSサービスの知識は必要
  • CloudFormationの記述は多くなる

最後に

ローコード・ノーコード開発が普及することで、開発生産性の向上や、 システムの管理・保守が容易となり、DXの推進にもつながるのではないかと思います。

使い方によっては既存の開発コストを減らしたり、品質の向上に繋がると思いますので、 見直すきっかけとなれば幸いです。

最後までお読みいただきありがとうございました。



\\『真のユーザーファーストでマーケットを創造する』仲間を募集中です!! //

919.jp