AWS CDK をアップデートする | Cloud9での注意点

AWS CDKのバージョンアップ方法を記します。
また、Cloud9でCDKをバージョンアップする際の注意点についても記述します。


はじめに

CDKは非常に活発に開発されています。

CDKのリリースを見るに、だいたい一週間ぐらいの間隔で新バージョンがリリースされているようです(下図)。

CDK バージョン リリース日
v1.35.0 2020-04-23
v1.34.0 2020-04-21
v1.33.0 2020-04-17
v1.32.0 2020-04-10
v1.31.0 2020-03-24
v1.30.0 2020-03-18


CDKをアップデートするとき、特にCloud9で作業する場合に、少し躓くポイントがありました。

今回は、それらCDKアップデート方法をメモします。


作業環境

後述の"一般的なCDKアップデート方法"、"Cloud9でのCDKアップデート方法"ともにUbuntu上*1で動作確認を行いました。

$ lsb_release -d
Description:    Ubuntu 18.04.4 LTS


実行手順

一般的なCDKアップデート方法

npm install -g aws-cdkとしてしてインストールされた一般的なケース*2では、CDKのアップデート方法は単純です。

普通にnpmパッケージをアップデートするように、npm updateコマンドでCDKパッケージaws-cdkがアップデートできます。

sudo npm update -g aws-cdk


CDKバージョンを確認すると、現時点での最新バージョン(v1.35.0)にアップデートされていることが確認できます。

$ cdk --version
1.32.2 (build e19e206)

$ sudo npm update -g aws-cdk

$ cdk --version
1.35.0 (build e0810c8)


Cloud9でのCDKアップデート方法

Cloud9の場合、少し注意が必要です。
結論から言うと、CDKパッケージとしてaws-cdkではなくcdkを指定することでCDKのアップデートができます。

npm update -g cdk


どういうことかというと、Cloud9でプリインストールされているのはaws-cdkパッケージ*3ではなくcdkパッケージ*4である、ということのようです。


普通にnpm install -g aws-cdkでCDKをインストールした場合、次のようにaws-cdkパッケージはあってもcdkパッケージはありません。

$ npm ls -g aws-cdk
/home/ubuntu/.nvm/versions/node/v10.20.1/lib
└── aws-cdk@1.35.0 

$ npm ls -g cdk
/home/ubuntu/.nvm/versions/node/v10.20.1/lib
└── (empty)


一方、Cloud9でaws-cdkパッケージとcdkパッケージを調べると、次のようになります。

$ npm ls -g cdk
/home/ubuntu/.nvm/versions/node/v10.20.1/lib
└── cdk@1.35.0 

$ npm ls -g aws-cdk  
/home/ubuntu/.nvm/versions/node/v10.20.1/lib
└─┬ cdk@1.35.0
  └── aws-cdk@1.35.0 


つまり、Cloud9でプリインストールされているのはcdkパッケージであり、aws-cdkはその一部に過ぎない、ということのようです。

よって、
npm update -g aws-cdkは上手くいかず、
npm update -g cdkなら上手くいく、という訳です。


おわりに

今回は、CDKのアップデート方法を記しました。

Cloud9では何故かアップデートできない、というところが始まりでしたが、aws-cdkではなくcdkパッケージがインストールされていた、というのはなかなか面白い不思議ポイントでした。

なぜcdkパッケージの方がプリインストールされているのか、aws-cdkパッケージとcdkパッケージの違いは何なのか、など色々と気になるところがあります。

折を見て調べていきたいです。


関連記事

www.bioerrorlog.work

www.bioerrorlog.work


参考

Releases · aws/aws-cdk · GitHub

Troubleshooting Common AWS CDK Issues - AWS Cloud Development Kit (AWS CDK)

*1:Windows上のVMにUbuntu環境を構築する方法は以下に書きました
Windowsの上にUbuntuをインストールする | 仮想環境構築 - 生物系がゼロから始めるIT技術

*2:ドキュメントでは、このインストール方法が推奨されています。

*3:https://www.npmjs.com/package/aws-cdk

*4:https://www.npmjs.com/package/cdk