SlideShare a Scribd company logo
AWS Stepfunction とSAMで
社内のバッチ処理を
サーバレス化
自己紹介
名前:富松 広太(とみまつ こうた)
Blog:https://cloud-aws-gcp.hateblo.jp/
twitter:@kotamemento
所属:株式会社 Turn and Frontier(関西クラウドベンダー)
2020 APN ALL AWS Certifications Engineer
from:滋賀県
社内で動いているバッチがあった
● 一定時間毎に全お客様に対して動作するバッチ処理
● 2013年ごろからEC2で動作している
● お客様数が増加するにつれEC2だとしんどい
→ 2年ぐらい前にサーバレス化
Serverlessと言えばLambda
Lambdaを複数利用することも可能
Serverlessと言えばLambda
Serverlessと言えばLambda
Lambdaを複数利用することも可能
→Lambda間の紐付け管理が面倒
Lambdaを複数利用することも可能
→Lambda間の紐付け管理が面倒
LambdaにはError処理用にDLQ機能が存在
Serverlessと言えばLambda
Queue
失敗
Lambdaを複数利用することも可能
→Lambda間の紐付け管理が面倒
LambdaにはError処理用にDLQ機能が存在
→Error時の処理はSQS等に遷移するため
  管理が面倒
Serverlessと言えばLambda
Queue
失敗
分散アプリケーションを
オーケストレーションできる
処理の流れや結果を
可視化できる(右記例)
実行履歴やログを追跡可能
AWS step functions 概要
AWS step functions 概要
専用の言語をjsonで記載し処
理フローを可視化
step functionのjsonとLambdaのコードをまとめて管理したい
AWS step functions 概要
専用の言語をjsonで記載し処
理フローを可視化
step functionのjsonとLambdaのコードをまとめて管理したい
→AWS SAM
● Serverless Application Modelの略
● AWS上でサーバーレス
アプリケーションを構築するための
フレームワーク
AWS SAMの概要
● Serverless Application Modelの略
● AWS上でサーバーレス
アプリケーションを構築するための
フレームワーク
AWS SAMの概要
#新規作成
sam init --runtime python3.8
#build
cd sam-app
sam build
#deploy
sam deploy --guided
● Serverless Application Modelの略
● AWS上でサーバーレス
アプリケーションを構築するための
フレームワーク
AWS SAMの概要
SAMでstep function記述がサポートされる
Lambdaソースとまとめて管理が容易に、またYAMLでも記述可能に!
● Serverless Application Modelの略
● AWS上でサーバーレス
アプリケーションを構築するための
フレームワーク
AWS SAMの概要
SAMでstep function記述がサポートされる
Lambdaソースとまとめて管理が容易に、またYAMLでも記述可能に!
→上記を利用する中で試行錯誤したtipsを共有
stepfunctionのtips ①例外処理
特定エラー
の時
成功時
例外発生
成功時
例外発生
Lambdaのみ step function利用時
Queue
失敗
分岐 出力を元に分
岐
step function自体のエラーハンドリングの仕組みを利用すると便利
エラー内容に応じて分岐したい場合
例:timeoutだったらadmiin-notification処理に遷移
"Catch": [ {
"ErrorEquals": ["States.Timeout"],
"Next": "admin-notification"
} ],
stepfunctionのtips ①例外処理
単体で再実行したい場合
例:lambdaサービスエラー、timeout
"Retry": [ {
"ErrorEquals": [ "States.Timeout" ],
"IntervalSeconds": 3,
"MaxAttempts": 2,
"BackoffRate": 1.5
} ]
例外処理をcatchするのはLambda、その後の処理はstep function
stepfunctionのtips ①例外処理
例外発生
+catch
前項のLambdaでerrorをcatchし内容を出力、
その結果を元に分岐
Lambda内にエラー後の処理を書かず
step functionで可視化すると管理しやすい+冪等性の単位で分割しやすい
stepfunctionのtips ②並列処理(MAP)
list型でデータを渡す
データ毎の処理を実行
stepfunctionのtips ②並列処理(MAP)
list型でデータを渡す
※データ要領に制限あり
データ毎の処理を実行
mapはs3からデータを受けとる
記述方法がない
stepfunctionのtips ②並列処理(MAP)
list型でデータを渡す
※データ要領に制限あり
超える場合はS3に格納
受渡データが一定容量ならばmapは便利
データ容量が増え、制限をこしてしまう場合は・・
list内のデータ毎に
別のstepfunction処理を実行
stepfunctionのtips ②並列処理(MAP)
list型でデータを渡す
※データ要領に制限あり
超える場合はS3に格納
将来的にデータ容量が制限を超過する場合は上記のパターンで解決
stepfunctionのtips ③運用まわり
実行名、ステータスで結果を閲覧可能
実行名をあとでフィルタしやすいようにしておくと便利
stepfunctionのtips ③運用まわり
「context.log_stream_name」でcloudwatclogsのストリーム名まで
出力しておくと後々cloudwatchでログを確認しやすいので便利
コンソールで各処理の input,outputを閲覧可能
● 例外処理
● 並列処理
● 運用まわり
stepfunction + samでバッチ処理
下記でLambdaとは異なる考え方があるので利用すると便利
まとめ
ありがとうございました!

More Related Content

PDF
Cloudfront cli tips
PDF
AWS Client VPN
PDF
ElasticCloud
PDF
jaws aws-nuke
PDF
aws-Organizations-aroud
PDF
Aws organization multi_accounts
PDF
aws kms poiints
PDF
jaws securityhub
Cloudfront cli tips
AWS Client VPN
ElasticCloud
jaws aws-nuke
aws-Organizations-aroud
Aws organization multi_accounts
aws kms poiints
jaws securityhub

What's hot (20)

PPTX
Aws certificate managerを使ってみたよ
PDF
おひとりさまAWS Organizationsのススメ
PDF
ACMで作成するSSL証明書の活用
PDF
VPC Reachability Analyzer 使って人生が変わった話
PDF
マルチインフラ環境の話
PDF
[AKIBA.AWS] VPCをネットワーク図で理解してみる
PDF
OpsJAWS 20160128
PPTX
20150901 ops jaws_araya_v2
PDF
Win 3 aws certificate associate
PDF
Organizations周りの機能
PDF
Win 3 aws certificate associate
PDF
ClientVPNとPrivateca
PDF
2013/08 JAWS_UG北九州 AWSを使った儲け方
PDF
Jaws controltower
PDF
サーバーワークス re:invent_2016~新サービス・アップデート紹介~
PDF
Aws lambda 事始め
PDF
re:Growth 2021 コンピュートサービスの進化を語る
PPTX
AWS Premier Night #2 in Osaka『Amazon Elasticsearch Serviceのおもしろい使い方』
PPTX
AWSセキュリティ新機能と共に進化した My Individual blog (私の個人ブログ) since 2014
PPTX
GAS + SaaS時々 AWSで自動化
Aws certificate managerを使ってみたよ
おひとりさまAWS Organizationsのススメ
ACMで作成するSSL証明書の活用
VPC Reachability Analyzer 使って人生が変わった話
マルチインフラ環境の話
[AKIBA.AWS] VPCをネットワーク図で理解してみる
OpsJAWS 20160128
20150901 ops jaws_araya_v2
Win 3 aws certificate associate
Organizations周りの機能
Win 3 aws certificate associate
ClientVPNとPrivateca
2013/08 JAWS_UG北九州 AWSを使った儲け方
Jaws controltower
サーバーワークス re:invent_2016~新サービス・アップデート紹介~
Aws lambda 事始め
re:Growth 2021 コンピュートサービスの進化を語る
AWS Premier Night #2 in Osaka『Amazon Elasticsearch Serviceのおもしろい使い方』
AWSセキュリティ新機能と共に進化した My Individual blog (私の個人ブログ) since 2014
GAS + SaaS時々 AWSで自動化
Ad

Similar to Cloudnative online-2021-stepfunction (20)

PDF
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
PPTX
Serverless frameworkを使ってみた話 at #nseg #90
PDF
May the FaaS be with us!!
PPTX
Cloud Formation + Code シリーズで行うマルチアカウント・マルチリージョンデプロイ
PDF
Azureをフル活用したサーバーレスの潮流について
PDF
AWS Lambda にまつわるおいしい話
PDF
AWS SAMで始めるサーバーレスアプリケーション開発
PDF
Architecting on Alibaba Cloud - 超基礎編 -
PPTX
20191018 AWS Lambda
PPTX
AWSの勉強は試して試して楽しんで (AWS認定DVA本書きました)
PDF
20151030 オープンデータとセキュリティon aws
PDF
Programming AWS with Perl at YAPC::Asia 2013
PDF
20200728 AWS Black Belt Online Seminar What's New in Serverless
PDF
AWS Black Belt Techシリーズ AWS SDK
PDF
Aws summits2014 ガリバーインターナショナル社内システムのaws化
PPTX
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減
PPTX
re:Port 2017 #2 「AWS re:Invent 2017 参加レポート」
PPTX
20130316 jaws ug-yokohama
PDF
AWS Outposts/LocalZones/Wavelength勉強会
PDF
20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティング
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
Serverless frameworkを使ってみた話 at #nseg #90
May the FaaS be with us!!
Cloud Formation + Code シリーズで行うマルチアカウント・マルチリージョンデプロイ
Azureをフル活用したサーバーレスの潮流について
AWS Lambda にまつわるおいしい話
AWS SAMで始めるサーバーレスアプリケーション開発
Architecting on Alibaba Cloud - 超基礎編 -
20191018 AWS Lambda
AWSの勉強は試して試して楽しんで (AWS認定DVA本書きました)
20151030 オープンデータとセキュリティon aws
Programming AWS with Perl at YAPC::Asia 2013
20200728 AWS Black Belt Online Seminar What's New in Serverless
AWS Black Belt Techシリーズ AWS SDK
Aws summits2014 ガリバーインターナショナル社内システムのaws化
AWS re:invent振り返りServerlessでサーバコスト以外もいろいろ削減
re:Port 2017 #2 「AWS re:Invent 2017 参加レポート」
20130316 jaws ug-yokohama
AWS Outposts/LocalZones/Wavelength勉強会
20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティング
Ad

Cloudnative online-2021-stepfunction