2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

# aws cdk を試してみた感想

Last updated at Posted at 2024-11-06

python と typescript をちょっとだけ試した感想

背景

IaC として terraform と SAM を使っていたが、他の選択肢を模索中。
lambda がいい感じに作れるかどうかが気になっている。
特に python での外部ライブラリをサクッと入れたい。

sam の lambda デプロイだとランタイムに合わせたビルド用コンテナを使って
requirements.txt から自動でインストール・zip化までしてくれる。
これがとても便利な一方、sam だと作れるリソースに制限があるので、
今は terraform との併用で使っている。

まとめ

  • aws cdk
      • 慣れた言語で書ける
      • cloudformation スタック = オブジェクト になるのでわかりやすい
      • aws でしか使えない
      • ブラウザからの操作が実質できない
  • sam
      • lambda のデプロイが簡単
      • サーバレスのリソースしか作れない
      • 記法が独特
  • terraform
      • 一つ一つの設定内容はわかりやすい
      • aws 以外でも使える
      • 設定を探すのが難しい

aws cdk

一般的なことは公式サイトに任せて、個人的に気になったところだけメモ。

  • 内部的には cloudformation を使っている。

    • プログラム側でスタックに対応するオブジェクトを作って、それをデプロイして実際のスタックを作る。
      その後スタックから各リソースを作る、という感じ。

    • python のオブジェクト操作の感覚で操作できるところは大きなメリットかもしれない。
      terraform でもモジュール分割とかで同じようなことはできるが、モジュールでデータを受け取るのが面倒だったような。

  • terraform がリソース一つずつの管理になるのに対して、aws cdk はスタック単位での管理になるのでわかりやすいかも。

    • terraform だと依存関係の順序を勝手に解釈してくれるが、一方で順序がわかりにくくなっているかもしれない。

おわりに

当面は terraform で良さそう。

lambda に python ライブラリを入れることについては、
terraform からコンテナでビルドしたり、sam でレイヤーだけ作るとかにするのが良さそう。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?