0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS Lambda】ランタイムが EOL になる通知が来たので、IaC の1行で移行した話

0
Posted at

はじめに

ある日、AWS Health から「利用中の Lambda ランタイムについてサポート終了(EOL)予定」を知らせる通知が、自分の環境に届きました。

最初は「関数が急に止まるの!?」と焦りましたが、調べるとすぐ止まるわけではないこと、そして自分の構成は Terraform 管理なので、.tf のランタイムを1行直して反映するだけで移行できることが分かりました。

先に結論:ランタイムの EOL は、コンソールでポチポチ直すより、IaC で1行変えて差分を残して apply したほうが、変更が追えて安全でした。

環境

  • AWS Lambda(Node.js ランタイム)
  • Terraform で構築・管理
  • AWS Health(サービス側の通知)
  • リージョン: ap-northeast-1(東京)

起きたこと

届いた通知の主旨はこうでした(要約)。

AWS Health から、利用中の nodejs20.x についてサポート終了予定を知らせる通知が届きました。新しいランタイムへの移行を検討してください。

「関数を消せ」ではなく「移行を検討して」という案内です。とはいえ放置はしたくないので、移行することにしました。

ランタイムの対応状況や廃止予定日は時期で変わります。この記事は自分に届いた通知をもとにしたもので、最新の対応・廃止スケジュールは公開時点で AWS 公式のランタイム表をご確認ください。

背景:ランタイムの EOL で何が起きるのか

Lambda のランタイムにはサポート期限があります。EOL を過ぎても関数がいきなり停止するわけではありませんが、おおむね次のような制限が段階的に入っていきます(詳細・時期は公式のランタイムポリシーを参照)。

  • セキュリティパッチや更新が提供されなくなる
  • やがて、そのランタイムでの新規関数の作成が制限される
  • さらに、既存関数のコード更新も制限される

つまり「今は動くけど、塞がれていく」状態なので、早めにサポート中で、互換性の確認を済ませたランタイムへ移すのが安全、というわけです。私はこの構成では、検証済みの nodejs22.x を採用しました。

対処:.tf を1行変えて差分を残して apply

私の構成では、Lambda のランタイムは Terraform のモジュールに書いてあります。やったのは本当に1行の変更でした。

 resource "aws_lambda_function" "this" {
   function_name    = "${var.project}-${var.function_name}"
   role             = aws_iam_role.this.arn
-  runtime          = "nodejs20.x"
+  runtime          = "nodejs22.x"

Git 管理しているなら、PR やコミットで差分を残し、terraform plan で差分を確認してから apply します。

~ aws_lambda_function.this
    runtime = "nodejs20.x" -> "nodejs22.x"

コンソールでポチッと変える方法もありますが、それだと「いつ・誰が・なぜ変えたか」が残りません。IaC なら、

  • 変更が 1行の diff として記録に残る
  • レビューできる
  • 戻したくなったら 元に戻して apply すればいい

と、追跡できるのが良いところでした。「通知が来た → IaC の履歴に対応が残る」という流れにできたのが、地味にうれしいポイントです。

注意:ランタイムのメジャー更新(20→22 など)は、コードがその新ランタイムで動くかの確認が別途必要です。1行で“宣言”は変わりますが、互換性まで保証されるわけではありません。移行後は、Lambda のテストイベントや API Gateway 経由の実リクエストで、正常応答・CloudWatch Logs・エラー率を確認しました。

学び

  • ランタイム EOL の通知=すぐ停止ではない。が、更新・作成が段階的に制限されるので早めに移す。
  • 移す先は「最新」より「サポート中かつ互換性確認済み」を選ぶ。
  • Terraform 管理なら、ランタイム移行は 1行の変更 + 差分確認 + apply で済む。
  • コンソール手作業と違い、変更が diff として残り、レビューも切り戻しもできる
  • 移行後は テストイベント・ログ・API 疎通で動作を確認する。

おわりに

「EOL 通知」と聞くとドキッとしますが、IaC で管理していると対応がとても淡々と終わりました😌 “通知が来たら1行直して差分を残す”、という流れを作っておくと、こういう定期メンテが怖くなくなると思います🙌

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?