Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2022-JAWSDAYS-StepFunctionsについて

 2022-JAWSDAYS-StepFunctionsについて

2022/10/08JAWSDAYSで登壇した際に使用した資料です。

Avatar for HiroshiNidegawa

HiroshiNidegawa

October 15, 2022

More Decks by HiroshiNidegawa

Other Decks in Technology

Transcript

  1. © 2022 TIS Inc. 2 ⽒名 ︓ ⼆出川 弘(にでがわ ひろし)

    所属 ︓ TIS株式会社 好きなAWSサービス ︓ AWS Step Functions 2021-2022 APN AWS Top Engineer 2022 APN ALL AWS Certifications Engineer ⾃⼰紹介
  2. © 2022 TIS Inc. 6 Step Functionsとの出会い チームの⽅針︓『改善を繰り返しより良いサービスに』 チーム発⾜当初から改善を実施 Step

    Functions活⽤以前 Lambdaを使って処理の作り込みが主流 改善するほどコーディングとコードの保守が増⼤ インフラエンジニア主体のチームには負担⼤ 開発スピードの遅さがスピーディな改善のボトルネックになる ⼤量⽣産したコードが将来の負債になりかねない
  3. © 2022 TIS Inc. 10 StepFunctionsの前提 • GUIでワークフローを作成可能 • “アクション”と“フロー”を組み合わせて実装

    • “アクション”は各種AWSサービスの実⾏が可能 • “フロー”は分岐・並列実⾏・待機など汎⽤的な動作が可能 • ステップ毎にIN/OUTデータの加⼯が可能 詳細はAWS公式ドキュメントなどをご覧ください。
  4. © 2022 TIS Inc. 11 Step Functions活⽤事例(⼀例) No 解決した課題 1

    パブリックアクセス可能なS3バケット検出時に⾃動修正したい 2 APIGateway APIにWAFを強制アタッチしたい 3 離任はしてないが⻑期間使われていないIAMUserをロックしたい 4 RDSの中のデータを抽出&⼀部加⼯して可視化したい 5 複数のAWSアカウントで発⽣する監視通知を集約管理したい 6 複数のAWSアカウントのコスト情報を集約・データ活⽤したい セキュリティ向上〜運⽤・業務改善まで幅広く Step Functionsで実現
  5. © 2022 TIS Inc. 12 事例. AWSのコスト情報集約・データ化 前提 ︓ –

    AWSアカウントを複数持っている – AWS Organizationsは利⽤できない 問題 ︓ 全体のAWS利⽤料を正確に把握しづらく、 コスト最適か不明
  6. © 2022 TIS Inc. 13 事例. AWSのコスト情報集約・データ化 ツール作成の狙い︓ – チーム全体でのAWS利⽤料の可視化

    – コストデータを題材にAWS上でのデータ利活⽤試⾏ ツール作成の⽅針︓ – 極⼒ローコードで対応 – AWSマネージドサービスで全ての処理を対応
  7. © 2022 TIS Inc. 14 AWS Step Functions Amazon DynamoDB

    Amazon S3 Glue DataBrew ジョブ実⾏ (データ加⼯) Scan Table (AWSアカウント情報) Map(AWSアカウント数分) Parallel Lambda① ⽇付情報取得 GetItem Lambda② コスト情報取得 &加⼯ コスト情報をPut 処理したデータをDelete Work Bucket Output Bucket GetObject PutObject AWS AWS アカウント群 Amazon EventBridge (⽇次) QuickSight (可視化・ 分析) Lambda利⽤の理由︓ ①. ⽇付情報を取得するため ②. クロスアカウントでの API実⾏機能するため Athena 数⼗万レコードの 可視化に成功 事例. AWSのコスト情報集約・データ化
  8. © 2022 TIS Inc. 16 Step Functions活⽤のメリット② u保守性の向上 u定義内容の把握のしやすさ uフロー失敗時の原因箇所特定の容易さ

    uLambdaコードのシンプルさ u機能追加のしやすさ Step Functionsは疎結合な アプリ構築に役⽴つサービス
  9. © 2022 TIS Inc. 17 Step Functions活⽤に当たっての注意点 uフローの組み⽅に要注意 u複雑になりすぎない適切な分割 uフロー途中で失敗した場合の考慮

    uStep Functionsの制約に要注意 u⽇付計算や複雑な⽂字列操作などはまだLambdaが必要 uクロスアカウント/リージョンのアクション実⾏は不可 ※. 制約は2022/10時点 AWSサービスはアップデートを繰り返すので 最新情報のご確認を。