狠狠撸

狠狠撸Share a Scribd company logo
AWS Stepfunction とSAMで
社内のバッチ処理を
サーバレス化
自己紹介
名前:富松 広太(とみまつ こうた)
Blog:https://cloud-aws-gcp.hateblo.jp/
twitter:@kotamemento
所属:株式会社 Turn and Frontier(関西クラウドベンダー)
2020 APN ALL AWS Certi?cations Engineer
from:滋賀県
社内で動いているバッチがあった
● 一定時間毎に全お客様に対して動作するバッチ処理
● 2013年ごろからEC2で動作している
● お客様数が増加するにつれEC2だとしんどい
→ 2年ぐらい前にサーバレス化
厂别谤惫别谤濒别蝉蝉と言えば尝补尘产诲补
Lambdaを複数利用することも可能
厂别谤惫别谤濒别蝉蝉と言えば尝补尘产诲补
厂别谤惫别谤濒别蝉蝉と言えば尝补尘产诲补
Lambdaを複数利用することも可能
→Lambda間の紐付け管理が面倒
Lambdaを複数利用することも可能
→Lambda間の紐付け管理が面倒
LambdaにはError処理用にDLQ機能が存在
厂别谤惫别谤濒别蝉蝉と言えば尝补尘产诲补
Queue
失敗
Lambdaを複数利用することも可能
→Lambda間の紐付け管理が面倒
LambdaにはError処理用にDLQ機能が存在
→Error時の処理はSQS等に遷移するため
  管理が面倒
厂别谤惫别谤濒别蝉蝉と言えば尝补尘产诲补
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とは異なる考え方があるので利用すると便利
まとめ
ありがとうございました!
Ad

Recommended

Cloudfront cli tips
Cloudfront cli tips
kota tomimatsu
?
AWS Client VPN
AWS Client VPN
kota tomimatsu
?
ElasticCloud
ElasticCloud
kota tomimatsu
?
jaws aws-nuke
jaws aws-nuke
kota tomimatsu
?
aws-Organizations-aroud
aws-Organizations-aroud
kota tomimatsu
?
Aws organization multi_accounts
Aws organization multi_accounts
kota tomimatsu
?
aws kms poiints
aws kms poiints
kota tomimatsu
?
jaws securityhub
jaws securityhub
kota tomimatsu
?
Aws certificate managerを使ってみたよ
Aws certificate managerを使ってみたよ
Masato Kataoka
?
おひとりさまAWS Organizationsのススメ
おひとりさまAWS Organizationsのススメ
Makio Tsukamoto
?
础颁惭で作成する厂厂尝証明书の活用
础颁惭で作成する厂厂尝証明书の活用
Ikuna Wada
?
VPC Reachability Analyzer 使って人生が変わった話
VPC Reachability Analyzer 使って人生が変わった話
Noritaka Sekiyama
?
マルチインフラ环境の话
マルチインフラ环境の话
真吾 吉田
?
[AKIBA.AWS] VPCをネットワーク図で理解してみる
[AKIBA.AWS] VPCをネットワーク図で理解してみる
Shuji Kikuchi
?
OpsJAWS 20160128
OpsJAWS 20160128
hideaki yanase
?
20150901 ops jaws_araya_v2
20150901 ops jaws_araya_v2
Mitsuru Araya
?
Win 3 aws certificate associate
Win 3 aws certificate associate
kazuhisa kawashima
?
翱谤驳补苍颈锄补迟颈辞苍蝉周りの机能
翱谤驳补苍颈锄补迟颈辞苍蝉周りの机能
kota tomimatsu
?
Win 3 aws certificate associate
Win 3 aws certificate associate
kazuhisa kawashima
?
颁濒颈别苍迟痴笔狈と笔谤颈惫补迟别肠补
颁濒颈别苍迟痴笔狈と笔谤颈惫补迟别肠补
kota tomimatsu
?
2013/08 JAWS_UG北九州 AWSを使った儲け方
2013/08 JAWS_UG北九州 AWSを使った儲け方
Serverworks Co.,Ltd.
?
Jaws controltower
Jaws controltower
kota tomimatsu
?
サーバーワークス re:invent_2016~新サービス?アップデート紹介~
サーバーワークス re:invent_2016~新サービス?アップデート紹介~
Serverworks Co.,Ltd.
?
Aws lambda 事始め
Aws lambda 事始め
Hiroyuki Hiki
?
re:Growth 2021 コンピュートサービスの進化を語る
re:Growth 2021 コンピュートサービスの進化を語る
Shuji Kikuchi
?
AWS Premier Night #2 in Osaka『Amazon Elasticsearch Serviceのおもしろい使い方』
AWS Premier Night #2 in Osaka『Amazon Elasticsearch Serviceのおもしろい使い方』
Takayoshi Kobayashi
?
AWSセキュリティ新機能と共に進化した My Individual blog (私の個人ブログ) since 2014
AWSセキュリティ新機能と共に進化した My Individual blog (私の個人ブログ) since 2014
Mitsuhiro Yamashita
?
GAS + SaaS時々 AWSで自動化
GAS + SaaS時々 AWSで自動化
Mitsuhiro Yamashita
?
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
Amazon Web Services Japan
?
AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発
真吾 吉田
?

More Related Content

What's hot (20)

Aws certificate managerを使ってみたよ
Aws certificate managerを使ってみたよ
Masato Kataoka
?
おひとりさまAWS Organizationsのススメ
おひとりさまAWS Organizationsのススメ
Makio Tsukamoto
?
础颁惭で作成する厂厂尝証明书の活用
础颁惭で作成する厂厂尝証明书の活用
Ikuna Wada
?
VPC Reachability Analyzer 使って人生が変わった話
VPC Reachability Analyzer 使って人生が変わった話
Noritaka Sekiyama
?
マルチインフラ环境の话
マルチインフラ环境の话
真吾 吉田
?
[AKIBA.AWS] VPCをネットワーク図で理解してみる
[AKIBA.AWS] VPCをネットワーク図で理解してみる
Shuji Kikuchi
?
OpsJAWS 20160128
OpsJAWS 20160128
hideaki yanase
?
20150901 ops jaws_araya_v2
20150901 ops jaws_araya_v2
Mitsuru Araya
?
Win 3 aws certificate associate
Win 3 aws certificate associate
kazuhisa kawashima
?
翱谤驳补苍颈锄补迟颈辞苍蝉周りの机能
翱谤驳补苍颈锄补迟颈辞苍蝉周りの机能
kota tomimatsu
?
Win 3 aws certificate associate
Win 3 aws certificate associate
kazuhisa kawashima
?
颁濒颈别苍迟痴笔狈と笔谤颈惫补迟别肠补
颁濒颈别苍迟痴笔狈と笔谤颈惫补迟别肠补
kota tomimatsu
?
2013/08 JAWS_UG北九州 AWSを使った儲け方
2013/08 JAWS_UG北九州 AWSを使った儲け方
Serverworks Co.,Ltd.
?
Jaws controltower
Jaws controltower
kota tomimatsu
?
サーバーワークス re:invent_2016~新サービス?アップデート紹介~
サーバーワークス re:invent_2016~新サービス?アップデート紹介~
Serverworks Co.,Ltd.
?
Aws lambda 事始め
Aws lambda 事始め
Hiroyuki Hiki
?
re:Growth 2021 コンピュートサービスの進化を語る
re:Growth 2021 コンピュートサービスの進化を語る
Shuji Kikuchi
?
AWS Premier Night #2 in Osaka『Amazon Elasticsearch Serviceのおもしろい使い方』
AWS Premier Night #2 in Osaka『Amazon Elasticsearch Serviceのおもしろい使い方』
Takayoshi Kobayashi
?
AWSセキュリティ新機能と共に進化した My Individual blog (私の個人ブログ) since 2014
AWSセキュリティ新機能と共に進化した My Individual blog (私の個人ブログ) since 2014
Mitsuhiro Yamashita
?
GAS + SaaS時々 AWSで自動化
GAS + SaaS時々 AWSで自動化
Mitsuhiro Yamashita
?
Aws certificate managerを使ってみたよ
Aws certificate managerを使ってみたよ
Masato Kataoka
?
おひとりさまAWS Organizationsのススメ
おひとりさまAWS Organizationsのススメ
Makio Tsukamoto
?
础颁惭で作成する厂厂尝証明书の活用
础颁惭で作成する厂厂尝証明书の活用
Ikuna Wada
?
VPC Reachability Analyzer 使って人生が変わった話
VPC Reachability Analyzer 使って人生が変わった話
Noritaka Sekiyama
?
マルチインフラ环境の话
マルチインフラ环境の话
真吾 吉田
?
[AKIBA.AWS] VPCをネットワーク図で理解してみる
[AKIBA.AWS] VPCをネットワーク図で理解してみる
Shuji Kikuchi
?
20150901 ops jaws_araya_v2
20150901 ops jaws_araya_v2
Mitsuru Araya
?
翱谤驳补苍颈锄补迟颈辞苍蝉周りの机能
翱谤驳补苍颈锄补迟颈辞苍蝉周りの机能
kota tomimatsu
?
颁濒颈别苍迟痴笔狈と笔谤颈惫补迟别肠补
颁濒颈别苍迟痴笔狈と笔谤颈惫补迟别肠补
kota tomimatsu
?
2013/08 JAWS_UG北九州 AWSを使った儲け方
2013/08 JAWS_UG北九州 AWSを使った儲け方
Serverworks Co.,Ltd.
?
サーバーワークス re:invent_2016~新サービス?アップデート紹介~
サーバーワークス re:invent_2016~新サービス?アップデート紹介~
Serverworks Co.,Ltd.
?
re:Growth 2021 コンピュートサービスの進化を語る
re:Growth 2021 コンピュートサービスの進化を語る
Shuji Kikuchi
?
AWS Premier Night #2 in Osaka『Amazon Elasticsearch Serviceのおもしろい使い方』
AWS Premier Night #2 in Osaka『Amazon Elasticsearch Serviceのおもしろい使い方』
Takayoshi Kobayashi
?
AWSセキュリティ新機能と共に進化した My Individual blog (私の個人ブログ) since 2014
AWSセキュリティ新機能と共に進化した My Individual blog (私の個人ブログ) since 2014
Mitsuhiro Yamashita
?

Similar to Cloudnative online-2021-stepfunction (18)

[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
Amazon Web Services Japan
?
AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発
真吾 吉田
?
20170726 black belt_stepfunctions
20170726 black belt_stepfunctions
Amazon Web Services Japan
?
浸透するサーバーレス 実際に見るユースケースと実装パターン
浸透するサーバーレス 実際に見るユースケースと実装パターン
Amazon Web Services Japan
?
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless World
Keisuke Nishitani
?
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
真吾 吉田
?
Serverless services on_aws_dmm_meetup_20170801
Serverless services on_aws_dmm_meetup_20170801
Amazon Web Services Japan
?
20190814 AWS Black Belt Online Seminar AWS Serverless Application Model
20190814 AWS Black Belt Online Seminar AWS Serverless Application Model
Amazon Web Services Japan
?
ここか?つらいよAws batch
ここか?つらいよAws batch
Yu Yamada
?
Aws step functionsのい?ろ?は
Aws step functionsのい?ろ?は
Daiki Mori
?
弊社滨辞罢事例と础濒别虫补厂办颈濒开発レシピ
弊社滨辞罢事例と础濒别虫补厂办颈濒开発レシピ
Takashi Kozu
?
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Daisuke Miyamoto
?
What's new with Serverless
What's new with Serverless
Keisuke Nishitani
?
May the FaaS be with us!!
May the FaaS be with us!!
真吾 吉田
?
AWS Black Belt Online Seminar 2016 AWS上でのサーバーレスアーキテクチャ入門
AWS Black Belt Online Seminar 2016 AWS上でのサーバーレスアーキテクチャ入門
Amazon Web Services Japan
?
Serverless Application Security on AWS
Serverless Application Security on AWS
Amazon Web Services Japan
?
Serverless Anti-Patterns
Serverless Anti-Patterns
Keisuke Nishitani
?
reGrowth福島 サーバレスの事例とセキュリティサービス
reGrowth福島 サーバレスの事例とセキュリティサービス
Haga Takeshi
?
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
Amazon Web Services Japan
?
AWS SAMで始めるサーバーレスアプリケーション開発
AWS SAMで始めるサーバーレスアプリケーション開発
真吾 吉田
?
浸透するサーバーレス 実際に見るユースケースと実装パターン
浸透するサーバーレス 実際に見るユースケースと実装パターン
Amazon Web Services Japan
?
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless World
Keisuke Nishitani
?
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
真吾 吉田
?
20190814 AWS Black Belt Online Seminar AWS Serverless Application Model
20190814 AWS Black Belt Online Seminar AWS Serverless Application Model
Amazon Web Services Japan
?
ここか?つらいよAws batch
ここか?つらいよAws batch
Yu Yamada
?
Aws step functionsのい?ろ?は
Aws step functionsのい?ろ?は
Daiki Mori
?
弊社滨辞罢事例と础濒别虫补厂办颈濒开発レシピ
弊社滨辞罢事例と础濒别虫补厂办颈濒开発レシピ
Takashi Kozu
?
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Daisuke Miyamoto
?
May the FaaS be with us!!
May the FaaS be with us!!
真吾 吉田
?
AWS Black Belt Online Seminar 2016 AWS上でのサーバーレスアーキテクチャ入門
AWS Black Belt Online Seminar 2016 AWS上でのサーバーレスアーキテクチャ入門
Amazon Web Services Japan
?
reGrowth福島 サーバレスの事例とセキュリティサービス
reGrowth福島 サーバレスの事例とセキュリティサービス
Haga Takeshi
?
Ad

Cloudnative online-2021-stepfunction