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

20250913_AWS アカウント 150 超の組織で取り組む Lambda EoL 対応

Avatar for tsunojun tsunojun
September 08, 2025

20250913_AWS アカウント 150 超の組織で取り組む Lambda EoL 対応

JAWS-UG情シス支部 第32回 神戸支部コラボ会
https://jawsug-sysad.connpass.com/event/366235/

Avatar for tsunojun

tsunojun

September 08, 2025
Tweet

More Decks by tsunojun

Other Decks in Business

Transcript

  1. AWS アカウント 150 超の組織で 取り組む Lambda EoL 対応 QuickSight でのダッシュボード構築と社内展開

    Step Functions 活用事例 tsunojun @tsunojun2451821 ダイキン工業株式会社 1 / 19
  2. 自己紹介 ダイキン工業株式会社  7 年目 創業 101 年・社内人材育成制度「ダイキン情報技術大学」 主務:AWS・GitHub などのプラットフォーム提供 Organization

    からアカウントの払い出し・棚卸 ↑ の延長で、セキュリティレビューをすることも AWS インフラ 手動レビュー レビュー自動化(Security Hub/カスタムルール) EoL を迎えるリソースについて、各開発者に対応依頼 ダイキン工業株式会社 3 / 19
  3. 長年使われている環境が抱える課題 弊社 R&D 組織では、5 年ほど前から 試行用の AWS 砂場環境を用意 現在アカウントが 150

    を超え、 特に Lambda の EoL 対応が問題に NodeJS 18 (2025/9/1) Python 3.9 (2025/12/15) Provided.al2 (2026/6/30) Python 3.10/11, Java8.al2/11, Ruby3.2 (2026/6/30) ↑OS が Amazon Linux2、言語側の EoL を待たずに要対応に ※日付は「廃止日」で、その後「関数の作成をブロックする」「関数の更新をブロックす る」と段階的に対応される ダイキン工業株式会社 5 / 19
  4. 元々ある Lambda EoL 確認機能 機能 メリット 不満点 メールで通知 ・特に設定不要 ・あとから一覧不可

    ・直前でないとメールが 来ない AWS Trusted Advisor ・特に設定不要 ・直前(180 日)でない と表示されない Amazon Inspector v2 ・ライブラリ脆弱性も可 視化 ・EC2/ECS にも対応 ・機能が多く見づらい ダイキン工業株式会社 6 / 19
  5. Lambda のランタイム取得 AWS Config カスタムルールを使用し、柔軟な表示を実現 let eol_runtime = [ #

    ←EoLになるランタイムを変数として定義 "python3.10", "python3.11", ] configuration{ # when ZIP Lambda when packageType == "Zip" { # ←コンテナLambdaは別で考える runtime !in %eol_runtime # ←変数を参照 } } OR configuration.tags.TICAWS_ADMIN_SUPPRESSED_EOL_LAMBDA EXISTS # ↑タグ付与で対象外に出来るように ダイキン工業株式会社 9 / 19
  6. 各アカウントの結果を Security Lake で集約 ※AWS ブログ「Create security observability using generative

    AI with Security Lake and Amazon Q in QuickSight」を参考に実装 ダイキン工業株式会社 10 / 19
  7. 苦労したケース 1: 利用者側が EoL 期限や対応必要性を把握していない メールでの対応依頼だけでは不十分 必要に応じて打ち合わせ・教育資料の配布を行う 2: 利用者以外に EoL

    対応の責任があるケース 管理者から全環境に共通配布している Lambda Control Tower から配布されるもの ← AWS の対応を待てばよい VPC 設定などの自作 Lambda ← 次ページ以降詳細説明 ダイキン工業株式会社 11 / 19
  8. 管理者から配布する Lambda の対応 通常は ランタイムのバージョンをこまめに上げるで終わる話 が、 AWS SDK を叩くなどのシンプルなユースケース であれば、

    Lambda レスな Step Functions も一考できる メリット デメリット AWS が実行環境を管理しているた め、(今のところ)EoL がない AWS にベンダーロックされる 処理の流れが視覚的に確認できるた め、内容把握しやすい ダイキン工業株式会社 12 / 19
  9. Step Functions と は? GUI(マネコン or VS Code)で ドラッグ&ドロップ構築 とっつきやすい

    複数環境へのデプロイは CDK/CloudFormation で 内部では ASL(JSON)で記述 = Amazon Q で書ける ダイキン工業株式会社 13 / 19
  10. Lambda レスな Step Functions まずは公式ブログ「AWS Step Functions の機能を活用して、Lambda 関数無しで実 現できることを確認してみよう

    !」を見てみる 注意:ブログ内の以下注意をよく検討した上で利用すること (注) このブログは、必ずしも Lambda 関数をなくすべきだという主張ではありません。 AWS Step Functions には、ワークフローに条件付きロジックを追加できる Choice や組み込み関数、 エラー処理などの機能が備わっており、Lambda 関数のプログラミングを置き換えやすいパターンがあります。 今回は、そのパターンのうち 3 つのパターンを紹介します。 ダイキン工業株式会社 14 / 19
  11. ケース 1: ロジック入力値に evil が含まれるか Step Functions のフロー → ↓

    分岐の条件 {"isInValid.$": "States.ArrayContains( States.StringSplit($.sentence, ' '), 'evil' )"} Lambda(Python) だと isValid = 'evil' not in sentence.split(" ") return {'statusCode': 200, 'isValid': isValid} ダイキン工業株式会社 15 / 19
  12. ケース 2: 他の AWS サービ スを呼び出す Step Functions のワークフローか ら

    AWS API を叩く際は、 以下の 2 種類のブロックで実装可能 API を叩く Lambda を書く AWS SDK 統合 対応サービスは 35O 以上 後者を用い、Lambda 管理を省略 ダイキン工業株式会社 16 / 19
  13. ケース 3: SaaS を呼び出す ために Lambda 関数を使っ ている場合 Step Functions

    のワークフローか ら外部 API を叩く際は、 以下の 2 種類のブロックで実装可能 API を叩く Lambda を書く HTTPS エンドポイント統合 後者を用い、Lambda 管理を省略 ダイキン工業株式会社 17 / 19
  14. 実務で何を代替したか VPC 構築 CFn (社内配布)にて NAT Gateway (約$30/月)を使わ ない時に削除する Lambda

    を代替 余談 AmazonQ に Lambda コードを読 ませ、 Step Functions を作らせた ダイキン工業株式会社 18 / 19