目次
はじめに
目的
この文書は、AWS Lambdaで現在サポートされているPythonのバージョンについて分かりやすく説明することを目的としています。最新のサポート状況、今後のサポート終了予定、そしてメジャーバージョンの更新が実務に与える影響を扱います。
対象読者
クラウド上でLambdaを利用している開発者や運用担当者、これから導入を検討する技術者を想定しています。専門知識が深くない方でも理解できるように、具体例を交えて説明します。例えば、Python 3.8で稼働する関数を運用している方や、今後3.11へ移行を検討している方に役立ちます。
前提と読み方
・この文書はAWS LambdaにおけるPythonのサポート状況に限定します。
・OSやランタイムの詳しい内部動作までは扱いません。
・必要に応じて、該当する節だけを先に読むことができます。例えば、サポート終了予定のみを確認したい場合は第3章からご覧ください。
この後の章で順に現状、終了予定、メジャーバージョン更新の注意点を丁寧に解説します。
現在のサポート状況
概要
AWS LambdaはPythonのマネージドランタイムとして、最新の標準バージョンにPython 3.13を提供しています。なお、Python 3.12も利用可能で、2023年12月14日からサポートが開始されています。
現状の利用方法
- ランタイム選択: Lambda関数の作成・更新時にコンソールやCLIで「python3.13」「python3.12」を選べます。
- コンテナ/レイヤー: コンテナイメージやLambdaレイヤーを使う場合も、ベースイメージやビルド環境を該当バージョンに合わせて用意します。
開発者向けの注意点
- 互換性確認: ライブラリや依存パッケージが対象バージョンで動作するか、ローカルで同じバージョンの仮想環境を使いテストしてください。たとえばpyenvやvenvでの検証が有効です。
- セキュリティと更新: マネージドランタイムはAWS側でセキュリティ更新が提供されますが、依存関係は自身で管理します。依存パッケージは固定し、定期的に更新とテストを行ってください。
推奨対応
- 新規開発は可能な限り最新の3.13を採用することをおすすめします。互換性上の制約がある場合は3.12を選んでから段階的に移行してください。
- デプロイ前にローカルでの動作確認、自動テストの整備、依存関係のバージョン管理を習慣化してください。
サポート終了予定
対象と期限
- Python 3.9: サポート終了予定は2025年12月15日です。この日以降、LambdaはPython 3.9ランタイムに対してセキュリティパッチや更新を適用せず、テクニカルサポートの対象外になります。
- Python 3.8: 2025年2月28日をもって、新規関数の作成ができなくなる予定です。既存の挙動についての説明は提供されていませんので、早めの対応をおすすめします。
影響と注意点
- セキュリティ更新が停止すると、脆弱性に対する修正が受けられなくなります。たとえば外部ライブラリで問題が見つかっても、ランタイム側の修正は入りません。
- 新規で関数を作れない場合、今後の機能追加や新しいワークロードは制約を受けます。既存関数の取り扱いはサービス発表に従って確認してください。
移行のための具体的な手順(例)
- 新しいランタイムを決める(例: Python 3.10 / 3.11)。
- ローカルで仮想環境を作り、依存パッケージをインストールしてテストを実行します(例: venvやpipを使用)。
- ステージング環境で動作確認を行い、ログや例外が出ないか確認します。
- 問題なければ本番へ切り替えます。切り替え前にバックアップやロールバック手順を準備してください。
ポイント
- まずは影響範囲(使用しているランタイム、依存ライブラリ、CI/CD設定)を洗い出してください。
- 小さなサービスから順に検証すると、安全に移行できます。
メジャーバージョン更新について
概要
Lambdaはメジャーバージョン(例: Python 3.11 → Python 3.12)を自動で切り替えません。パッチレベルは自動更新されますが、メジャー移行は手動で行う必要があります。移行前に言語仕様や互換性の変化を確認してください。
事前に確認すべき点
- 言語仕様の変更点:公式のリリースノートで破壊的変更をチェックします。
- 依存ライブラリ:サードパーティのパッケージやバイナリ拡張が新ランタイムで動くか確認します。
- ネイティブ依存:C拡張や外部ライブラリ、レイヤーの互換性を洗い出します。
推奨される移行手順(例)
- ステージング環境で新ランタイムのLambdaを作成します。
- 単体テストと統合テストを実行し、動作差異を確認します。
- 依存関係を更新し、必要ならバイナリを新環境で再ビルドします。
- Lambdaのバージョンとエイリアスを使い、段階的にトラフィックを切り替えます。
- 問題発生時にすぐ元のランタイムへ戻せるロールバック手順を用意します。
移行後の確認と運用
- ログとメトリクスを数日間監視し、エラーや性能劣化を検出します。
- CI/CDに新ランタイムでのテストを組み込み、将来の更新を楽にします。
よくある注意点
- ネイティブ拡張が原因で実行できないことがあります。必要ならコンテナやレイヤーで対応してください。
- 小さなサービスから順に移行するとリスクを抑えられます。












