【AWS】AWS Step Functions ~ 基礎知識編 ~

■ はじめに

AWS Step Functions ってのが、現場ででてきたので、
徐々にではあるが、メモ。

目次

【1】AWS Step Functions
【2】用語整理
 1)ステートマシン (State Machine)
 2)タスク
【3】AWSの類似サービス
 1)Amazon Simple Queue Service (SQS)
 2)Amazon Simple Workflow Service (SWF)
【4】料金

【1】AWS Step Functions

* 視覚的なワークフローを定義して、さまざまなAWSサービス(※)に対し、
 実行/接続/管理できるマネージドサービス
* GUI (Workflow Studio) 又は YAML/JSON で定義できる

※ 対象AWSサービス

* AWS Lambda
* Amazon Elastic
* AWS Fargate
* Amazon DynamoDB
* AWS Batch
* Amazon SNS
* Amazon SQS
* AWS Glue
* Amazon SageMaker
* Amazon EMR
etc...

Amazon EMR の本家サンプル
https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/sample-emr-job.html

【2】用語整理

1)ステートマシン (State Machine)

https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/amazon-states-language-state-machine-structure.html

状態遷移。
次のフィールドを含む構造を表す JSON テキストを使用して定義

** 1)Comment(オプション) **  

ステートマシンの人間が読み取れる説明

** 2)StartAt (必須) **  

いずれかの状態オブジェクトの名前と完全に一致する必要がある文字列 (大文字と小文字が区別)

** 3)TimeoutSeconds(オプション) **  

ステートマシンを実行できる最大秒数 指定された時間より長く実行されると、States.Timeout エラー名 で実行が失敗

** 4)Version(オプション) **  

ステートマシンで使用される Amazon ステートメント言語 のバージョン (デフォルトは「1.0」)

** States (必須) **  

オブジェクトには、コンマで区切られた一連の状態

## 2)タスク
https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/amazon-states-language-task-state.html  
  • ステートマシンによって実行される単一の作業単位
# 【3】AWSの類似サービス
https://aws.amazon.com/jp/step-functions/faqs/  
## 1)Amazon Simple Queue Service (SQS)

サービス間でメッセージを送信、保存、および受信するために、 信頼性が高く、高度にスケーラブルなホストキューが必要な場合 => SQS を使用

## 2)Amazon Simple Workflow Service (SWF)

プロセスにおいて介入する外部信号が必要な場合 結果を親に返す子プロセスを起動する場合 => SWF を使用

# 【4】料金
https://aws.amazon.com/jp/step-functions/pricing/  
  • 無料利用枠は、1 か月あたり 4,000 回の状態遷移
  • 状態遷移ごとに 0.0000025 ドルの課金
# 参考文献
https://www.atmarkit.co.jp/ait/articles/1612/13/news019.html  
** 公式サイト **  
https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/welcome.html