StepFunctionsとは?
概要
StepFunctionsとは、AWSのサービスの一つです。
複数のAWSサービスを簡単に組み合わせ・自動化でき、計算機リソースを分散・並列化させつつ大規模計算を可能にすることができます。
個人的なお気に入りは、以下の3つです。
イベントドリブンで駆動させ、計算処理(Lambda)を行いつつ、DB(Aurora/Dynamo)に書き込み、その他のAWSサービス(例えば、翻訳機能を持つAmazon Translateとの連携、メール配信SNSとの連携)を簡単に組み込み、あらゆるプロセス(AWSサービスの200以上に対応)を自動化できる点。
IaC(Infrastrcutre as Code)の観点から、Cloudformationを用いてリソースを定義したく、マネジメントコンソールでワークフローを設定したものをベースに自動でコード化してくれるため、使いやすい
サーバーレスを重視し、Lambdaベースで開発しており、Lambdaの制限である15分タイムアウトやメモリ・ストレージの制限が厳しい。そのため、単一lambdaでできることは制限されるが、StepFunctionを用いて、並列化・処理の分散化を通じてスケーラビリティを持った大規模計算が可能になる。
その他、AWS公式による強みとしては、以下のものがあります。
- 視覚的で使いやすいワークフロー設定
- 分散アプリケーションのためのエラー処理、タイムアウト、並列処理フローが組み込まれています。
- 220 の AWS サービスと 10,000 以上の API と直接統合
- 分散されたコンポーネントの調整
- 堅牢で効率的なアプリケーション開発を可能にする部品の耐久性
- ワークフローロジックの分離による開発サイクルの短縮化
- 組み込みの状態管理およびワークフローの進捗追跡
- 組み込みのエラー処理
- リアルタイムかつ監査可能なワークフローの実行履歴
- 監視とトラブルシューティングのためのビジュアルオペレーターダッシュボード
- 高い可用性と耐障害性のワークフロー
- スケールするサーバーレスソリューション
- IoT やデータインジェストなどのイベント処理ワークフローに対応した大容量オーケストレーション
- 大規模な並列処理
- セキュリティ
- コンプライアンス
ハンズオン
今回やること
マネジメントコンソールから、StepFunctionを開き、Lambdaを実行するところまでをやろうと思います。
Githubをクローンして来てもらえれば、
- Lambda
- StepFunctions
を自動で立ち上げることができます。
マネジメントコンソールでは、以下の手順になります。
1.マネジメントコンソールにおけるstepfunctionsからステートマシンの作成
を選択
2.ビジュアル操作画面にて、AWS Lambda Invokeをドラッグアンドドロップし、APIパラメータにおいて、指定のLambdaを選択する
3.(cloudformationで使う場合)yamlファイルとして書き出す
勉強教材
オススメの教材の紹介です。
- AWS Hands-on for Beginners
AWS公式のハンズオン動画です。
結局これが一番、勉強になります。
ぜひ、お手持ちのパソコンで動作させながら、勉強してみてください。