クラウド運用管理
AWS Step Functionsとは?各サービスをワークフローで連携
Amazon Web Services(以降、AWSと略す)が提供するAWS Step Functions(以降、Step Functionsと略す)とは、AWS LambdaやAWS BatchをはじめとしたAWSの各サービスを、ワークフローという形で連携・自動化できるサービスです。
ワークフローの各ノードに既存のサービスを配置するだけで簡単に自動化処理を作成できることから、プログラム開発経験のない方でも比較的容易に利用できます。
また、連携と一口に言っても単純につなぐだけではなく、条件に応じて処理を分岐させたり、一定時間処理を待ち合わせたりと高い自由度を持ちます。そのため、始業時にインスタンスを一斉起動することや、定期的にサーバーをバックアップし、データを外部ストレージに保存するといった、Step Functionsが対応しているAWSサービスの連携であれば簡単に実装が可能です。
本記事では、Step Functionsの特徴やメリット、ユースケースなどについて紹介します。
【目次】
- 1. Step Functionsとは
- 1.1 Step Functionsの特徴
- 1.2 導入のメリット
- 2. Step Functionsの利用例
- 3. Step Functionsを利用する上での注意点
1. Step Functionsとは
Step Functionsとは、各サービスをワークフローとして連携するAWS提供のマネージドサービスの1つです。
本章では、Step Functionsの特徴やメリットについて紹介します。
1.1 Step Functionsの特徴
特徴① 自由度の高いワークフロー
図:Step Functionsの作成画面
各サービスに対する操作が一覧として用意されており、それをワークフロー上に配置するだけで処理を定義できます。
配置したアイテムには、実行時に必要な設定を各入力域で選択するだけで設定が完了するため、1からプログラムを記述する必要はありません。
また、ワークフロー内にはAWSのサービスだけではなく、以下のような論理アイテムを配置できます。
- 条件分岐
- 並列処理
- 反復処理
- 一定時間の待ち合わせ
これらを組み合わせることで、ユーザーの目的に応じたワークフローを柔軟に構築できます。
特徴② 幅広いAWSサービスと連携
Step Functionsでは、200以上のAWSサービスと連携が可能です。
代表的なサービスとしては、以下のようなものが挙げられます。
- AWS Lambda (関数の実行など)
- AWS Batch(ジョブの実行など)
- Amazon S3(オブジェクトの参照、追加など)
- Amazon Dynamo DB(DBの参照、更新など)
このように、サービス対応範囲が広いことから、新規でシステムを構築する方だけではなく、既にAWSのサービスを利用している方でも容易に導入ができます。
1.2 導入のメリット
メリット① 処理の可視化
Step Functionsを導入することにより、AWSサービス間の連携を可視化することができます。
これにより、作成時はワークフローの構築が容易になり、運用時も実行状況がわかりやすくなります。したがって、進捗の確認や異常時の発見および対応が容易になります。
メリット② アプリケーションの分離
前述の通り、分岐や繰り返しといった論理部分をStep Functionsで受け持つことができるため、アプリケーション間を疎結合にすることができます。
これにより、一部のアプリケーションを変更してもワークフロー上の他のアプリケーションに影響を及ぼすことなく、変更・修正などが容易になります。
メリット③ 自動スケーリング
Step Functionsを実行する際に、ワークフローの各ステップで利用されるコンピューティング環境は自動的にスケーリングされます。
これにより、リソースのことを考慮する負担が減ることで、利用者はアプリケーション開発に集中することができます。
2. Step Functionsの利用例
Step Functionsを導入することで、AWSの様々なサービスを連携してワークフローを構築できることが分かりました。
ここからはStep Functionsの具体的なユースケースについて紹介します。
ユースケース① オンライン(リアルタイム)処理の自動化
Webアプリケーションやモバイルアプリケーションなどにおいてリアルタイムで処理を行う必要がある場合にStep Functionsが利用できます。
例として、eコマース系の注文処理や在庫管理などが挙げられます。
商品の注文、支払処理や発送処理までのワークフローを作成することで、注文にかかる一連の作業を自動化できます。
ユースケース② バッチ処理の自動化
リアルタイム処理とは逆に、バッチ処理のような決まった日時契機でまとまった処理を実行する場合にも、Step Functionsが利用できます。
例えば、日次や週次でその期間の売り上げを集計する場合などが挙げられます。
各取引の内容を取得し、売り上げを集計、そしてデータベースに保存するといった一連の作業を自動化できます。
ユースケース③ 機械学習(データ加工処理)
データ加工という観点から機械学習の分野でもStep Functionsを利用することが可能です。
Step Functionsは論理アイテムの1つに並列実行の機能を備えています。大量のデータを高速で処理することが可能なため、データの収集から加工、学習や後処理までをまとめて実行するETLデータパイプラインとして利用することができます。
3. Step Functionsを利用する上での注意点
本記事では、Step Functionsの概要やユースケースについて紹介しました。
ワークフローを視覚的に表現し、200以上の豊富なサービスと簡単に連携できるため、Step Functionsを利用することで多くのメリットを享受することができます。
一方で、利用時に注意が必要な部分もあります。本章では注意点を2つ紹介します。
注意点① リトライ処理
ワークフローが途中のステップで失敗した場合、再実行するとワークフローの先頭から実行されるため注意が必要です。例えば、データの前処理の中でファイルの削除処理を実施するなど、再実行すると実行結果の一意性が保たれなくなるような処理の場合でも関係なく実行されます。
注意点② スケジューリング
ユースケース②で説明したバッチ処理の自動化作業では、特定の日時契機で処理が実行されます。
運用日がシンプルなスケジュールであれば対応に問題ありませんが、例えば企業ごとに独自のカレンダーが存在する場合や、業務内容に応じて運用日を変更したいなど、きめ細やかなスケジューリングを実現しようとすると、Step Functionsだけで実装するのは困難です。
このようなStep Functionsの注意点に対応しつつ、各AWSサービスを連携する方法について、以下の記事でバッチ処理の制御(ジョブ管理)を例に紹介します。
-
備考Amazon Web Services、AWS、AWS Step Functions、Step Functions、AWS Lambda、AWS Batch、Amazon S3、Amazon Dynamo DBは、Amazon.com, Inc. またはその関連会社の商標です。
本コンテンツに関するお問い合わせ
お電話でのお問い合わせ
Webでのお問い合わせ
当社はセキュリティ保護の観点からSSL技術を使用しております。