パワーアップしたStepFunctionsすごいぞ!

131 Views

December 20, 24

スライド概要

2024/12/16 AWS初心者L㼀会 in 札幌

profile-image

札幌の隅っこにすんでるバックエンドエンジニア。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

パワーアップした Step Functionsすごいぞ! 2024/12/16 AWS初心者LT会 in 札幌

2.

目次 1. 自己紹介 2. Step Functionsとは? 3. 直近のアップデート 4. 早速作ってみた。 5. 料金・クオータ・SLA 6. まとめ

3.

1 自己紹介

4.

自己紹介 もりやま 所属:ウェルネット株式会社 役割:PMもどき、Backend AWS歴:約1年半、LT3回目 属性:#ゲーム音楽 #筋トレ #早起き

5.

1 Step Functionsとは

6.

サーバレスオーケストレーター ● 各種サービスをまとめて、一つのサービスを作るステートマシンを提供。 ● GUIで視覚的にワークフローを構築可能 ● 自動でコード化もされる=IaC化可能

7.

2 直近のアップデート

8.

2024/11/22 Step Functionsは変数とJSONata変換で開発者の経験を簡素化します!

9.

①Variables(変数) 🟩Before ステップ間のデータの受け渡しが複雑。 (認定試験でも出る) ● ● InputPath,OutputPath,ResultPath Parameters 🟩After Variables(変数)は、「ステップ間」を意識しない。 ● 256Kibが最大長。 https://docs.aws.amazon.com/step-functions/latest/dg/workflow-variables.html

10.

プログラム変数みたいな利用ができる!

11.

②JSONata ● ● ● JSONデータを操作するために設計された軽量な言語 JSONPathと比較し、合算・変換等、複雑な操作が可能 ワークフロー作成時に選択する

12.

オーケストレーションの為のLambdaが不要に!

13.

2 早速作ってみた。

14.

AWS利用料通知サービス 🟩背景 ● 私もリソース削除漏れの高額請求をやらかした。 ● AWS Budgetsの設定はもちろん、日々のコストも把握したい。 https://docs.aws.amazon.com/step-functions/latest/dg/workflow-variables.html

15.

AWS利用料通知サービス 🟩要件 ● CostExplorerにコスト反映後、日別コストをSlackに通知 ○ 24時間後には反映されるらしい。 ● 通知内容は日々の合計をタイトルに、サービス別詳細を本文に表示 ● Step Functionsを利用し、極力サーバレス、ローコードで作成 https://docs.aws.amazon.com/step-functions/latest/dg/workflow-variables.html

16.

AWS利用料通知サービス https://docs.aws.amazon.com/step-functions/latest/dg/workflow-variables.html

17.

AWS利用料通知サービス https://docs.aws.amazon.com/step-functions/latest/dg/workflow-variables.html

18.

ワークフロー 1⃣コスト取得対象日決定 ↓ 2⃣GetCostAndUsage APIでコスト取得 ↓ 3⃣アイコン決定(⚠ or‼ ) ↓ 4⃣サービス別要約 ↓ 5⃣SNS経由でSlack通知 ※各サービス呼び出しにはリトライ処理を設定 ※リトライしてもダメな場合はエラー通知

19.

ワークフロー 新機能に関するところだけ、詳細にご紹介。

20.
[beta]
コスト取得対象日決定
JSONataは{% %}の中に書く。
StartDate: "{% $fromMillis($toMillis($states.context.State.EnteredTime) - 48*60*60*1000,'[Y0001]-[M01]-[D01]') %}"

1⃣実行時間をミリ秒変換
↓
2⃣●日前分のミリ秒を減算
↓
3⃣$fromMillisで再度文字列に変換
(YYYY-MM-DD)
↓
4⃣変数に格納

21.

GetCostAndUsage APIでコスト取得 JSONataは集計も可能。 "Groups": [ { "Keys": [ "AWS Cost Explorer" ], "Metrics": { "UnblendedCost": { "Amount": "0.01", "Unit": "USD" } } }, { "Keys": [ "AWS Key Management Service" ], "Metrics": { "UnblendedCost": { "Amount": "0.010752688", "Unit": "USD" } } 何故かコストも } 文字列型。

22.

GetCostAndUsage APIでコスト取得 $formatNumber($sum($states.result.ResultsByTime.Groups.Metrics.UnblendedCost.Amount~> $map(function($v) {$number($v)})), '0.00')

23.

3 料金・クォータ・SLA

24.

料金 ● ● USD 0.025/1,000 回の状態遷移 ○ 4,000回の無料枠あり 左の例だと5回の遷移。

25.

クォータ(トークンバケットアルゴリズム) リクエスト=状態遷移と考える。 ● ● レート :400 バースト:800 https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/reliability-pillar/rel_mitigate_interaction_failure_throttle_requests.html

26.

可用性 99.9% AWS Step Functions Service Level Agreement https://aws.amazon.com/jp/step-functions/sla/

27.

4 まとめ

28.

変数、JSONataを搭載したStep Functions強い! ✅ より簡単、直感的にワークフローを作れるようになった! ✅ Lambdaレスにより、開発・運用コストが軽減! Step Functions=迅速な開発体験!

29.

Thanks!! ご清聴ありがとうございました!