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

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

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

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

More Decks by ダイキン工業 データ活用推進グループ プラットフォーム担当

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