ちょっと話題の記事

[神アップデート]Step Functionsが新たに8つのマネージドサービスと連携可能になりました! #reinvent

Step Functionsが新たに8つのマネージドサービスと連携することが発表されました。従来Lambdaを挟んでいた他のマネージドサービスとの連携処理が可能となり、非常に活用の幅が広がっています。
2018.11.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

re:Invent 2018キーノートにおいて、「Step Functions service integrations」が発表されました!

一瞬なんかの新サービスかと勘違いしましたが、実態はStep Functionsと連携するマネージドサービスが飛躍的に増えた!という、全国1000万人のStep Functionsファンにはたまらないアップデートとなります。

New – Compute, Database, Messaging, Analytics, and Machine Learning Integration for AWS Step Functions | AWS News Blog

Step Functions きたか…!!

  ( ゚д゚) ガタッ
  /   ヾ
__L| / ̄ ̄ ̄/_
  \/   /

アップデートの内容

StepFunctionsと直接連携可能になった、新サービスは以下の通り。

  • Dynamo DB
    • DynamoDBテーブルからの既存アイテムの取得、新アイテムの登録が可能
  • AWS Batch
    • バッチジョブの起動、および完了待ちが可能
  • Amazon ECS
    • ECS、もしくはFargateのタスク定義からのタスク起動が可能
  • Amazon SNS
    • SNSトピックのパブリッシュが可能
  • Amazon SQS
    • SQSキューへのメッセージ送信が可能
  • AWS Glue
    • Glueジョブの起動が可能
  • Amazon SageMaker
    • トレーニングジョブ、トランスフォームジョブの起動が可能

こう書いていて思ったんですが、めっちゃ強力なラインナップじゃありませんか。

やってみたページ

StepFunctionsからDynamoDBに接続するサンプルとなります。

お次は、AWS BatchとSNS連携。

SQS連携もアガってますYO

AWS Batch連携もういっちょ来ました!

Step Functionsの適用範囲が広がる素晴らしいアップデート

一番嬉しいのは、「無駄なLambdaラッパーがなくなる所」ですね。

以前から、StepFunctionsとLambdaは統合されていて、StepFunctionsからLambdaの起動は簡単にできました。ただ、SNSの送信をするだけでも専用のLambdaを挟む必要があり、手間がかかりました。

もちろんLambdaの汎用性は魅力なんですが、Lambdaが無駄なラッパーになっているケースも多かったかと。階層が増えるとエラー処理も複雑になり管理対象も増えるのでTCOが増えがちです。

柔軟なジョブ管理機能をもつStep Functionsを各種マネージドサービスと連携して使うことで、今まで以上にStep Functionsが使いやすくなります。

個人的にはECS、特にFargate対応とかアツいすね。しばらく前にFargateがスケジュールタスクに対応しましたが、Lambdaではできないような処理をコンテナ実装してFargateとして起動して、それぞれのバッチ処理をStepFunctionsで管理するなどが、非常にやりやすくなりそうです。

コレを機に、いまいち地味(偏見)なStep Functionsに光があたることを期待しております!

それでは、今日はこのへんで。濱田(@hamako9999)でした。