AWS CDK(AWS Cloud Development Kit)
TypeScriptおよびPythonなどのプログラミング言語を使用して、AWSリソースを定義し、Terraformの様に**Infrastructure as Code(以降、IaC)**を実現する手段として、クラウドインフラのリソースをプロビジョニングすることが可能。
CDKにはL1 ~ L3までの概念があるため忘れないこと。
serverless frameworkとcdkの違い
はじめてCDKで作成するとき
AWS CDKのアプリを環境(アカウント/リージョン)にはじめてデプロイする場合は初期設定を行います。cdk bootstrapコマンドを実行しましょう。
$ cdk bootstrap
これによりデプロイプロセスの際に使用されるCFnのテンプレートやアセットを保存するためのS3バケットが作成されます。
スタック
AWS CDKのデプロイ単位はスタックと呼ばれる
アプリケーションのstackを表示する
cdk ls
cdk deployコマンドが優秀
このコマンドだけで差分デプロイができる
CloudFormationで同じことをしようとしたら
- 初回実行時は普通にデプロイ
- 二度目以降は変更セットを作成して差分デプロイ みたいなヘルパースクリプトが必 要となってしまう。
IaCの種類
手続き型
ChefやAnsibleなど構成情報や設定情報を定義する手続き型
冪等性
Terraformの様にテンプレートに必要とするリソースを定義し、冪等性を担保する宣言型
※AWS CDKはTerraformと同じ宣言型として、テンプレートを定義することでプロビジョニングを実現します。
aws-cdk 事始め
AWS CDKをはじめて利用する際は、アカウントのブートストラップというものが必要になる。
たとえば、AWS LambdaやDockerイメージを作成する際に、スタックと同時に外部ファイルなどが生成する。
これらの外部ファイルは、S3に置くが、S3にアクセスできる(アップロードできる)ように事前にしておかなければならない
その作業をブートストラップと呼んでおります。
ブートストラップにおいて必要な情報が2つです。
- アカウントID
- リージョン