Open10

CDKメモ

merutinmerutin

結局はCloudformationになるので、Cloudformationでどのように作成されるのか、のイメージがちゃんとできていないものの作成は難しい

merutinmerutin

Cloudformationはそもそも、利用するサービスの設定内容をある程度知っておかないといけないので、そのサービスで必須となるものが何になるのか、デフォルト値が何になるのかを把握しておく必要がある。

merutinmerutin

なので、1回とか2回だけ作成する場合は圧倒的にコンソールから作成したほうが早い

merutinmerutin

基本的に初めて触るものは

  • コンソールで動作確認
  • Cloudformationでどのように作成するべきか確認
  • CDKに落とし込む
    になると思う。

terraformの場合はある程度のサンプルがあるので、いきなり作成して、ちょっと値をいじるってことができるかど、CDKはあんまりいいサンプルがないので、自分で考える必要があるのが面倒

merutinmerutin

とはいえ、わかってしまえば、Typescript等を利用して柔軟に設定を記述できるのは魅力的

merutinmerutin

CDKはStackごとにCloudformationが1個できるので、一つのstackがterraformで言うところの1つの環境や場合によってはtmoduleの実行単位になる(気がする)

merutinmerutin
const app = new cdk.App();

って書くからこの単位でCloudformationができると思っていたけど、実際には、cdk.Stackを継承したクラス単位になる。

merutinmerutin

importするときにここがわからなくてはまった。

  • deployも含めてStackの単位で実行するので、bin下の実行ファイルで複数のstackを作成すると、複数のCloudformationができる
  • それごとにbootstrapやdeployも必要になる
  • importするときに必要なのは空のStackなので、Stackの呼び出しは必要だけど、中身でimportするリソースを作成してはいけない
merutinmerutin

試しにIAMでimportを実行したところ、DeletionPolicyはDeleteの挙動をするので、対象のCloudformationを削除すると、importしたユーザーも全部消える。