AWS Cloud9でAWS CDKパッケージをアップデートする方法

ある日、わたしは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はじめました【実践編】(齊藤弘樹)

 

Last modified: 2024-05-25

Author