CDKでエントリーポイントを分けてデプロイする方法について考えてみた

はじめに

おはようございます!TechBullの木村と申します!この記事はTechBullアドベントカレンダー最終日の記事となります!

皆様は、CDKデプロイを行う際に「cdk deploy --allで全てスタックが展開されると困るな〜」と思う機会はないでしょうか?例えば、下記図のようにCI/CDで展開したいリソースと、手動で展開したいリソースが混在する場合がまさにそうなのではないでしょうか?

今回CDKのエントリポイントを分けることで、CI/CDと手動のようなデプロイ方法を分ける方法を考えましたので、その紹介をしていきたいと思います!

通常の(cdk deploy --allでデプロイされる)エントリポイント

例えば、AutomaticDeployStackというスタックをcdk deploy --allでデプロイしたい場合、bin配下のファイルに下記のように記載すると思います。

この時、どのbin配下のどのファイルをCDKアプリとして読み込むかは cdk.jsonapp で指定しており、package.jsonbin で npm実行時のエイリアス用の設定がされているので、cdk deployを成功させるにはこれらのファイルでmain.tsを指定してやる必要があります。

まず、package.jsonでは下記nameとbin{}内をファイル名に合わせて変更します。

次に、cdk.jsonでは下記を修正してください。これで、cdk deploy --allでデプロイできる環境が整いました。

cdk deploy --all以外の方法でデプロイするためのエントリポイント

それでは、今度はcdk deploy --all以外の方法でデプロイするスタック(ManualDeployStack)をbin配下にsub-resource.tsというファイルを作成して、そこに記載していきたいと思います

記載内容は先ほどとそれほど変わりません。ファイルを分けただけになります。最後にデプロイする時ですが、下記コマンドを実行します。

このようにbin配下のファイルを分けて、コマンドを上記にすることで、デプロイするスタックをエントリポイントで分けることができます!

まとめ

いかがでしょうか?今回はCDKのエントリポイントを分けて、デプロイしたいスタックを分ける方法について記載いたしました。

簡単な内容ですが、意外と知らなかった方もいるのではないでしょうか?この記事が誰かの助けになれば幸いです。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール