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

AWS Summit Japan 2025 Community Stage - App wor...

AWS Summit Japan 2025 Community Stage - App workflow automation by AWS Step Functions

Avatar for matsuihidetoshi

matsuihidetoshi

June 26, 2025
Tweet

More Decks by matsuihidetoshi

Other Decks in Technology

Transcript

  1. AWS Step Functions で挑む アプリケーションワークフロー自動化 Hidetoshi Matsui Cyber Security Cloud

    / Generative Technology AWS Serverless Hero AWS Summit Japan 2025 Community Stage
  2. それまでの取り組みを評価され2021年よりAWS Serverless Heroに選ばれました。 AWS Heroとは: ‘ AWS ヒーロープログラムは、熱心なナレッジ共有によってコミュニティに大きな影響 を与えている世界中の精力的な AWS

    エキスパートの皆さんを表彰します。ヒーロー は、ソーシャルメディア、ブログ投稿、オープンソースプロジェクト、動画、フォーラ ムを介してオンラインで、または会議、ワークショップ、ユーザーグループイベントで 直接会うなど、さまざまな方法で知識を共有します。’ - AWS公式サイトより AWS Hero として コミュニティに関わる取り組み
  3. 毎年開催されるAWS Summit Japan、AWS re:Invent、AWS Heroes Summitや コミュニティ主催のイベント: JAWS DAYSなどで、それまでに得られた知見や コミュニティ活動における成功体験などについてアウトプットしています。

    AWS公式Webマガジン: builders.flashにも定期的に記事を寄稿しています。 近年はAWSを活用した配信基盤構築で得た知見に基づき Amazon IVS(Interactive Video Service)サービスチームと連携をと、 コミュニティ活動を通じたプロトタイプ構築やサービスへの フィードバック等の取り組みも実施しています。 AWS Hero として コミュニティに関わる取り組み
  4. • そもそも Web アプリケーションにはどんな要素が必要か?の整理 • クラウド(AWS)の利用を前提とした時に考慮するべきことは? • 実際に今まで私が設計・構築してきたクラウドアーキテクチャの紹介 • AWS

    Step Functions を使ったワークフロー自動化の実践的なアイデアの紹介 • これらに付随するサンプルコード 話すこと 話さないこと(やらないこと) 今日の内容 • 具体的な Step by step の構築方法の説明 • そのまま利用できるような IaC コードまたは自動化スクリプト等の紹介
  5. AWS Well-Architected と 6 つの柱 • オペレーショナルエクセレンスの柱 • セキュリティの柱 •

    信頼性の柱 • パフォーマンス効率の柱 • コスト最適化の柱 • 持続可能性の柱 AWS Well-Architected と 6 つの柱 https://aws.amazon.com/jp/architecture/well-architected より
  6. AWS Step Functions とは • 2016年 正式リリース • 2021年 200以上のサービス、

    9000以上のAPIをサポート (現在はさらに増えている) • ワークフローを視覚的に構築 • 分散処理が可能 • サーバーレス
  7. Step Functions の良いところ: サーバーレス • Pay-as-you-go な料金体系 • スケーリングやサイジングを考えなくて良い •

    占有するリソースを作らなくて良いので セキュリティホールを作るリスクが小さい
  8. Step Functions の良いところ: ノーコード • 多様な組み込み関数と API 統合により ノーコードでワークフローを実装可能 •

    アプリケーションコードのメンテナンスが不要 • ランタイムメンテナンスが不要
  9. Step Functions の良いところ: 様々な API 呼び出し • 220以上のサービス、14,000以上のAPI呼び出しが できる •

    AWS SDK Service Integrationsを利用 • 多くのパターンで AWS 内部 API コールの ためだけの AWS Lambda 関数作成を省略できる
  10. 高度なマネージドサービスとの向き合い方 (≒ トレードオフを認識しておく) • AWS Step Functions のようなものはおよそ他のサービスには 簡単にリプレイスはできない •

    マネージドサービス ≒ ロックインと引き換えに便利さを享受している • ポータビリティの必要性と簡便さを天秤にかけて考える
  11. スケジュール実行 • ECS の組み込み機能の「スケジュールされたタスク」では リトライ等考慮されない簡易的な呼び出しのみ • AWS Step Functions を利用することで

    RunTask 失敗時の エラー処理としてリトライや通知などを柔軟に組み込み可能 • 実行確実性が求められるケースにおいて容易に導入できる
  12. パイプライン全体像 • OIDC 認証により GitHub Actions から AWS リソースを操作 (Amazon

    Elastic Container Registry, S3) • AWS CodePipeline でデプロイメント パイプラインを実行 • パイプラインから Step Functions を 呼び出し付随する処理を実行
  13. デプロイ前処理(データベーススキーマ変更処理) • ECS RunTask 呼び出しを Lambda 等を使用せず直接実行 • IntegrationPattern: RunJob

    を選択することで タスクの Exit code を判定 → 成功・失敗に応じて後続処理への移行を制御し 失敗したらデプロイを自動で中断することが可能 • AWS CodeBuild 等を使用するパターンと比較し少ないコード量で実現
  14. 参考: CDK のサンプル - ステートマシン作成 RunTask で作成するタスク用の セキュリティグループ作成 サブネットグループの取得 RunTask

    ステートの作成 Construct ライブラリがあるが コンテキストなどの詳細パラメータの 調整が必要な場合はカスタムステートで Fail ステートの作成 Fail でステートマシンが終了した場合 CodePipeline パイプラインにも失敗を自動で通知 Fail ステートを RunTask ステートに関連づけ 作ったステートを使用して ステートマシン作成 ←重要
  15. 参考: SDK Integrations の CDK での書き方 • CallAwsService Construct を呼び出す

    • service, action と必要に応じて parameters, iamResources を指定する • 詳細: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_stepfunctions_tasks.Call AwsService.html
  16. まとめ • アプリケーションに付随するワークフローのサーバーレス自動化を目指そう • サーバーレス化で Well-Architected にしよう • Step Functions

    の活用で AWS 内部の API コールやワークフロー実装の 「とりあえず Lambda」から卒業しよう • Step Functions でエラーハンドリングし実行確実性を向上させよう • AWS 上のほとんどの API を Step Functions から呼び出し可能 • IaC(CDK) でのステートマシン管理にも挑戦してみよう