AWS CLI v1とAWS SDK for Pythonにおける旧バージョンPythonのサポート終了について

2021.01.29

しばたです。

昨年10月と今月にそれぞれAWS CLI v1とAWS SDK for PythonがサポートするPythonのバージョンに関するアナウンスがAWSから発表されました。

細かい話はこれらのアナウンスにすべて書いてあるのですが、ちょっとボリュームがあったので自分の理解の整理もかねて要点をまとめてみることにしました。

最初に結論から

これらのアナウンスで述べられていること自体はシンプルで、箇条書きにすると

  • AWS CLI v1、AWS SDK for Python (botocoreboto3) で今後リリースされるバージョンから古いバージョンのPythonのサポートを止める
    • なお、AWS CLI v1自体のサポートが終わるわけではない
  • Python 3.4, 3.5のサポートは2021年2月1日以降にリリースされるバージョンから除外される
    • Python 3.4は2019年3月に、Python 3.5は2020年9月にそれぞれ最終バージョンがリリースされ既にEOLを迎えている
  • Python 2.7のサポートは2021年7月15日以降にリリースされるバージョンから除外される
    • Python 2.7自体は2020年1月1日に既にEOLを迎えている

となります。

要は今後リリースされるAWS CLI v1やAWS SDK for Pythonで古いPythonをサポートしなくなるので早めに対処してほしいという事ですね。

そして対処法についてはAWS CLI v1とAWS SDK for Pythonでそれぞれ移行ガイドが提供されています。

これらのガイドを元に環境に応じた対処をすると良いでしょう。
本記事ではそれぞれの対処方法についても軽く触れておきます。

AWS CLI v1を使っている場合の対処法

AWS CLI v1を使っている場合はざっくり以下の対処法があります。

  • AWS CLI v2を使う
  • AWS CLI v1を使いつつ基盤となるPython環境を更新する
  • AWS CLI v1を古いPython環境で塩漬けする

1. AWS CLI v2を使う

AWSが強く推奨している方法になります。

AWS CLI v2はPython環境を内包したインストーラーのみでの提供となるため今回の様な実行環境のPythonバージョンを気にする必要がありません。
AWS CLIのバージョンを上げるのに問題が無い環境であれば積極的にバージョンアップすると良いでしょう。

AWSの推奨としては「AWS CLI v1をアンインストールしてv2のみを使う」ですが、必要があればこちらの記事を参考にv1とv2を共存させても良いかと思います。

2. AWS CLI v1を使いつつ基盤となるPython環境を更新する

AWS CLI v1は環境により複数の導入方法があり、AWS CLI v2にバージョンアップせずv1を継続して使いたい場合の対処法はちょっとややこしいです。

2-1. (Windows環境のみ) MSIインストーラー版に切り替える

現在のWindows環境ではAWS CLI v1は以下の2通りの方法でインストール可能です。

  • WindowsにPythonを追加インストールし、そのPython環境でpipを使いAWS CLIをインストール (pip版)
  • Python環境を内包したMSIインストーラーを使いAWS CLIをインストール (MSIインストーラー版)

後者のMSIインストーラー版はAWS CLI v2と同様で実行環境のPythonバージョンを気にする必要がありません。
Windows環境でAWS CLI v1を使い続けないといけない場合であればMSIインストーラー版に切り替えていくのも選択肢になります。

ちなみに本日時点で最新のAWS CLI v1.18.222では以下の様にPython 3.6環境が内包されています。

# MSIインストーラー版のAWS CLI v1はPython 3環境を内包している
PS > aws.exe --version
aws-cli/1.18.222 Python/3.6.0 Windows/10 botocore/1.19.62

2-2. (全環境) 基盤となるPython環境を更新する

Windows以外の環境ではPython環境を内包したインストール方法の提供が無いため、AWS CLI v1を使い続けたい場合は実行環境のPythonのバージョンを適切に上げておく必要があります。

本記事では具体的なPythonのバージョンアップ手順には触れませんので適宜環境に合わせた対応をしてください。
ちなみにサポート期間を考えると2021年12月にサポート終了予定のPython 3.6は避けておいた方が良さそうです。

3. AWS CLI v1を古いPython環境で塩漬けする

最後に、全くお勧めできませんが、古い環境を塩漬けで使い続けるのも選択肢としてはあり得ます。

AWS CLI v1自体のサポート終了が来ない限りは既存の機能が使えなくなるといったことはまず無い *1でしょうが、

  • セキュリティ更新を適用することができない
  • 新機能に対応することはできない
  • 既存の機能が突然使えなくなる可能性がゼロではない

といったリスクを受け入れる必要はあります。

AWS SDK for Pythonを使っている場合の対処法

AWS SDK for Python (botocoreとboto3)の対処については完全にSDKを利用しているプログラム次第ですので本記事では詳細に触れません。
最初に紹介した移行ガイドに従った対応を取り動作確認を行ってください。

最後に

簡単ではありますが以上となります。
本記事の内容がAWS CLIやAWS SDK for Pythonのバージョンを更新する際の役に立てば幸いです。

脚注

  1. 決して無いとは言えない