背景
久々にAWSのプロジェクトにアサインされた。インフラ周りはCloudFormationが使われている。CloudFormationのテンプレートはjson/yamlで定義されていると思っていたが、TypeScriptでインフラコードが管理されていたりしてあれ?ってなる。さらに、デプロイは、cdkコマンドっていう聞いたことのないやつとか出てきて混乱したので調べた。
CloudFormationとは?
AWSのインフラリソースをプロビジョニングするためのサービス。Stackという箱を作成後、テンプレートというyamlかjsonでリソースを定義したファイル作成し指定すると、定義通りのリソースが立ち上がる。
以上を踏まえると、json/yamlでリソース管理されるはず、、だが、実際はTypeScriptで管理されている。どうやら、AWSにはCDKというコードでリソース管理を行うツールが提供されて模様。
CDKとは?
Cloud Development Kitの略で、AWSのインフラ管理をコードベースでできるようにするための開発ツール。CDKを使うとTypeScrypt/JS/Java/C#でリソース管理できてうれしい。
CDKのクライアントも提供されていて、インストールして、ターミナルでcdk deploy xxStack
とか叩くとデプロイできたり、cdk diff
とかするとworkspace上のリソースとのdiffが取れたりする。
cdk deploy
は、コードからテンプレートファイルを作成してそのリソースをCloudFormation経由で作成してたりするっぽい。