🦁

【基本】CDKの初期設定とコマンド

2024/07/21に公開

はじめに

CDKを使用するために必要な設定を備忘録として残しておきます。
前提:Mac使用

インストール

AWS CLIをインストール

https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html

  1. ブラウザで、macOS pkg ファイルをダウンロードします。https://awscli.amazonaws.com/AWSCLIV2.pkg
  2. ダウンロードしたファイルを実行し、その後は画面の指示に従います。
  3. インストールできたことの確認。表示されればOK。
which aws

aws --version

Node, npmをインストール

リンク、Homebrew、Nodebrewなどお好きな方法でインストールしてください。
インストールできたことを確認。

node -v

npm -v

AWS CDK, TypeScriptをインストール

npm install -g aws-cdk

npm install -g typescript

CDKのセットアップ

CDKアプリケーションの作成

mkdir cdk                                           

cd cdk

cdk init app --language typescript

以下の様にテンプレートが展開されれば設計完了です。

各ディレクトリの説明

  • bin:エントリーポイントとなるファイル置き場。libのStackを記載する。
  • lib:Stackの設定を記載するファイル置き場。
  • node_modules:package.jsonに記載されたパッケージのインストール先。
  • test:Stackのユニットテスト置き場。
  • .gitignore:gitに上げたくないファイル記載。
  • .npmignore:npmパッケージを公開する際に、特定のファイルやディレクトリをパッケージに含めないようにするための設定ファイル。
  • cdk.json:CDKアプリケーションの設定ファイル。
  • jest.config.js:テスティングフレームワークであるJestの設定ファイル。
  • package.json:プロジェクトの依存関係やスクリプトが定義されたファイル。
  • package-lock.json:プロジェクトの依存関係の正確なバージョン。
  • README.md:セットアップ手順などを記載。
  • tsconfig.json:TypeScriptコンパイラの設定ファイル。

AWSアカウントの設定

CDKを操作できる権限を持つAWSユーザをコンソールから作成します。以下は権限例です。
実際にはフルアクセスではなく必要最小限の権限のみを与えることが望ましいです。
作成したユーザに対して、アクセスキーを発行しておきましょう。

  • AWSCloudFormationFullAccess
  • IAMFullAccess
  • AmazonS3FullAccess
  • AmazonEC2ContainerRegistryFullAccess
  • AmazonSSMFullAccess

aws configure でデフォルトユーザを設定可能です。

aws configure

AWS Access Key ID [None]: 
AWS Secret Access Key [None]: 
Default region name [ap-northeast-1]: 
Default output format [None]: 

AWSユーザを~/.aws/config に登録しておくと、コマンドで簡単にユーザが切り替えられ便利です。例えば、環境毎に設定することもできます。

vi ~/.aws/config

[cdk-prod] // 任意の名称
aws_access_key_id = XXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXX

[cdk-stg] // 任意の名称
aws_access_key_id = XXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXX

// 実行時にprofileを指定するだけ
cdk deploy --profile cdk-prod

CDKコマンド

デフォルトユーザを設定していない場合は、全コマンドにprofile 指定必要です。
CDKを新しい環境(AWSアカウント x リージョン)でデプロイする際に、最初の一回だけ実行が必要なコマンドです。
S3、IAMロール、ECRなどCDKデプロイに最低限必要なリソースが作成されます。

cdk bootstrap

設定を反映する前に、ドライランしたい場合

cdk diff

設定反映

cdk deploy

Discussion