必要なもの
- AWSアカウント
- 操作用PC(本記事ではM1 Mac)
- CLIツール(本記事ではMac標準ターミナル)
- コードエディター(本記事ではVS Code)
最初の準備
node.js & npmのインストール
バージョン確認
$ npm --version
8.11.0
$ node --version
v16.15.1
AWS CDK CLIのインストール
こちらを活用
CDKのインストール
$ sudo npm install -g aws-cdk
バージョン確認
$ cdk --version
2.27.0 (build 8e89048)
CDKハンズオン
ブートストラップ(AWSアカウントにS3バケットなどのCDK環境を準備)
アカウントIDを確認
$ aws sts get-caller-identity
ブートストラップを実施(東京リージョンの例)
$ cdk bootstrap aws://アカウント番号/ap-northeast-1
CDKプロジェクトの作成
こちらを活用
PCのホーム配下にワーク用ディレクトリーを作成。
$ mkdir ~/cdk-demo
$ cd ~/cdk-demo
cdk initを実行(新規プロジェクトを作成)
$ cdk init --language typescript
bin > cdk-demo.ts
の中身を修正。
CdkDemoStack
内にアカウントIDとリージョンを追記する。
#!/usr/bin/env node
import 'source-map-support/register';
import * as cdk from '@aws-cdk/core';
import { CdkDemoStack } from '../lib/cdk-demo-stack';
const app = new cdk.App();
new CdkDemoStack(app, 'CdkDemoStack', {
env: { account: 'アカウントIDを記載', region: ' ap-northeast-1' },
});
初めてのデプロイ
今回はVPCを作成してみる。
CDKのEC2モジュールをインストールする。ここにVPC関連のモジュールも含まれる模様。
$ npm install @aws-cdk/aws-ec2
package.json
内の dependencies
セクションにaws-ec2モジュールが追記されている。
lib > cdk-demo-stack.ts
に作成したいリソースを記載していく。
Vpc
、SubnetType
クラスのインポートと、const vpc
を追加。
import * as cdk from '@aws-cdk/core';
import { Vpc, SubnetType } from '@aws-cdk/aws-ec2';
export class CdkDemoStack extends cdk.Stack {
constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
const vpc = new Vpc(this, 'MainVpc',{
maxAzs: 2,
subnetConfiguration: [
{
cidrMask: 24,
name: 'public-subnet',
subnetType: SubnetType.PUBLIC
},
]
});
}
}
コードが正しいかテストしてみる。
エラーなく通れば、今回のリソースをデプロイするためのCloudFormationチェンジセットがAWS上に作成され、それを用いてtsファイルに記載したVPCリソースが構築される。
※VS Codeなどのコードエディターを使っていれば、リンター機能でコーディング中にエラーを指摘してくれる。これがCDKのメリットでもある。
$ cdk deploy
✨ Synthesis time: 2.75s
CdkDemoStack: deploying...
CdkDemoStack: creating CloudFormation changeset...
✅ CdkDemoStack
✨ Deployment time: 75.48s
Stack ARN:
arn:aws:cloudformation:ap-northeast-1:********:stack/CdkDemoStack/2bf69150-ea2d-11ec-8516-0a0814765a09
✨ Total time: 78.24s
AWSマネジメントコンソールから実際にリソースを確認してみる。
ClourFormationスタックの「リソース」から今回作成したVPCを開くと、正しく構築されていることが確認できた。
おわりに
VPCが作れたら、次のステップとしては好きなリソースをドキュメント参照しながらデプロイしてみると良さそう。
おかたづけは以下コマンドを実行。
$ cdk destroy