ある日、わたしはAWS CDKを使ってAmazon Aurora PostgreSQLを作成していました。Amazon Aurora PostgreSQLは2024年5月現在、エンジンバージョン16.2がリリースされているのですが、何度cdk deployしても作成されません。
ためしにaws-cdkパッケージを最新にアップデートしても解決できませんでした。しかし、あるモジュールも併せてアップデートしたところ、無事に最新バージョンのAmazon Aurora PostgreSQLを作成することができたのです。
今回の記事は"AWS Cloud9でAWS CDKパッケージをアップデートする方法"です。
AWS CDKパッケージをアップデート
冒頭からお詫びなのですが、この記事を書こうと思ったタイミングで、Cloud9でCDKのデフォルトバージョンが上がっていて、Amazon Aurora PostgreSQLの最新バージョン16.2を作れるようになっていました。ですので、この記事は単純にアップデート方法だけ記述します。
■結論
aws-cdkだけではなく、aws-cdk-libもアップデートする。
■状況
AWS CDKを使ってAmazon Aurora PostgreSQLの最新バージョン16.2を作成しようとしたところ、利用不可能というエラーが出ました。当時のaws-cdkのバージョンは2.139.xでした。
↓2024/05現在のデフォルト
(.venv) CPI-SAITOU:~/environment/work (master) $ cdk --version
2.142.1 (build ed4e152)
githubにあるcdkの最新リリースを読んでみると、Amazon Aurora PostgreSQLの最新バージョン16.2がデプロイできるコメントを発見したので、とりあえずバージョンを上げてみました。
しかし。状況はかわらず。Cloud9でCDKをセットアップする際に、pipでなにか入れたなぁと思って見てみると、aws-cdk-libモジュールをインストールしていました。バージョンもaws-cdkと同じバージョンだったので、これをアップデートすればいけるだろうと考えました。
(.venv) CPI-SAITOU:~/environment/work (master) $ cat requirements.txt
aws-cdk-lib==2.142.1
constructs>=10.0.0,<11.0.0
↓aws-cdk-libのバージョンを確認してみると、
(.venv) CPI-SAITOU:~/environment/work (master) $ pip list
Package Version
--------------------------------- -----------
attrs 23.2.0
aws-cdk.asset-awscli-v1 2.2.202
aws-cdk.asset-kubectl-v20 2.1.2
aws-cdk.asset-node-proxy-agent-v6 2.0.3
aws-cdk-lib 2.142.1
■CDKアップデート
AWS CDKのパッケージaws-cdkと、関連モジュールのaws-cdk-libをアップデートします。
まずはaws-cdkからアップデートします。
npm update -g cdk
(.venv) CPI-SAITOU:~/environment/work (master) $ npm update -g cdk
changed 2 packages in 4s
28 packages are looking for funding
run `npm fund` for details
(.venv) CPI-SAITOU:~/environment/work (master) $ cdk --version
2.143.0 (build 9f2bdf7)
aws-cdkのバージョンが最新になりました。
つづいて、aws-cdk-libをアップデートします。
pip install --upgrade aws-cdk-lib
(.venv) CPI-SAITOU:~/environment/work (master) $ pip install --upgrade aws-cdk-lib
Requirement already satisfied: aws-cdk-lib in ./.venv/lib/python3.9/site-packages (2.142.1)
Collecting aws-cdk-lib
Downloading aws_cdk_lib-2.143.0-py3-none-any.whl (35.6 MB)
|████████████████████████████████| 35.6 MB 106 kB/s
Requirement already satisfied: publication>=0.0.3 in ./.venv/lib/python3.9/site-packages (from aws-cdk-lib) (0.0.3)
Requirement already satisfied: typeguard~=2.13.3 in ./.venv/lib/python3.9/site-packages (from aws-cdk-lib) (2.13.3)
Requirement already satisfied: aws-cdk.asset-node-proxy-agent-v6=2.0.3 in ./.venv/lib/python3.9/site-packages (from aws-cdk-lib) (2.0.3)
Requirement already satisfied: aws-cdk.asset-awscli-v1=2.2.202 in ./.venv/lib/python3.9/site-packages (from aws-cdk-lib) (2.2.202)
Requirement already satisfied: constructs=10.0.0 in ./.venv/lib/python3.9/site-packages (from aws-cdk-lib) (10.3.0)
Requirement already satisfied: aws-cdk.asset-kubectl-v20=2.1.2 in ./.venv/lib/python3.9/site-packages (from aws-cdk-lib) (2.1.2)
Requirement already satisfied: jsii=1.98.0 in ./.venv/lib/python3.9/site-packages (from aws-cdk-lib) (1.98.0)
Requirement already satisfied: typing-extensions=3.8 in ./.venv/lib/python3.9/site-packages (from jsii=1.98.0->aws-cdk-lib) (4.12.0)
Requirement already satisfied: cattrs=1.8 in ./.venv/lib/python3.9/site-packages (from jsii=1.98.0->aws-cdk-lib) (23.2.3)
Requirement already satisfied: python-dateutil in ./.venv/lib/python3.9/site-packages (from jsii=1.98.0->aws-cdk-lib) (2.9.0.post0)
Requirement already satisfied: attrs=21.2 in ./.venv/lib/python3.9/site-packages (from jsii=1.98.0->aws-cdk-lib) (23.2.0)
Requirement already satisfied: importlib-resources>=5.2.0 in ./.venv/lib/python3.9/site-packages (from jsii=1.98.0->aws-cdk-lib) (6.4.0)
Requirement already satisfied: exceptiongroup>=1.1.1 in ./.venv/lib/python3.9/site-packages (from cattrs=1.8->jsii=1.98.0->aws-cdk-lib) (1.2.1)
Requirement already satisfied: zipp>=3.1.0 in ./.venv/lib/python3.9/site-packages (from importlib-resources>=5.2.0->jsii=1.98.0->aws-cdk-lib) (3.18.2)
Requirement already satisfied: six>=1.5 in ./.venv/lib/python3.9/site-packages (from python-dateutil->jsii=1.98.0->aws-cdk-lib) (1.16.0)
Installing collected packages: aws-cdk-lib
Attempting uninstall: aws-cdk-lib
Found existing installation: aws-cdk-lib 2.142.1
Uninstalling aws-cdk-lib-2.142.1:
Successfully uninstalled aws-cdk-lib-2.142.1
Successfully installed aws-cdk-lib-2.143.0
WARNING: You are using pip version 21.3.1; however, version 24.0 is available.
You should consider upgrading via the '/home/ec2-user/environment/work/.venv/bin/python3 -m pip install --upgrade pip' command.
↓aws-cdk-libのバージョンも最新になりました。
(.venv) CPI-SAITOU:~/environment/work (master) $ pip list
Package Version
--------------------------------- -----------
attrs 23.2.0
aws-cdk.asset-awscli-v1 2.2.202
aws-cdk.asset-kubectl-v20 2.1.2
aws-cdk.asset-node-proxy-agent-v6 2.0.3
aws-cdk-lib 2.143.0
アップデートは以上です。
まとめ
AWS CDKは順次アップデートを繰り返しています。最新バージョンが最適とは限りませんが、状況に応じて選択してもいいかもしれません。特に、バージョン2.141.0では、rdsのパラメータグループ名が設定できるようになりました。リリースを追って、適宜アップデートしてみてください。
参考リンク: github/aws/aws-cdk
↓ほかの協栄情報メンバーもAWS CDKについての記事を公開しています。ぜひ参考にしてみてください。
■【AWS CDK】3分でつかむ、ライブラリとしてのAWS CDK(tanaka.h)
■AWS CDKはじめました【概要編】(齊藤弘樹)
■AWS CDKはじめました【実践編】(齊藤弘樹)