0
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?

More than 1 year has passed since last update.

[備忘録] AWS CDK プロジェクトの作成

Posted at

AWS CDKを学習していく過程を記録する。

はじめに

AWS CDK(Cloud Development Kit) とは、プログライミング言語でインフラを定義し、AWS CloudFormationを通してデプロイできる開発フレームワークである。

AWS CloudFormationはJSONやYAMLといったテキストファイルでリソースが定義される一方、AWS CDKは馴染みのあるプログラミング言語(JavaScript、TypeScript、Python、Java、C#など)で書くことができる。
また、アプリケーションとインフラをまとめて管理できるメリットもある。

実施したこと

  1. AWS CDK TypeScriptプロジェクトの作成
  2. デプロイ
  3. 実行結果確認

1. AWS CDK TypeScriptプロジェクトの作成

cdk はあらかじめインストールしてある。

% cdk --version
2.40.0 (build 56ba2ab)

プロジェクト用のフォルダを作成し、プロジェクトを立ち上げる。

% cdk init app --language typescript

下記構成でフォルダおよびファイルが作成された。

├── README.md		
├── lib
     └── app-stack.ts			
├── test
     └── app.test.ts
├── bin
     └── app.ts			
├── node_modules		
├── tsconfig.json
├── cdk.json		
├── package-lock.json
├── jest.config.js		
├── package.json

エントリポイント

/bin/app.tsがCDKアプリケーションのエントリポイントであり、/lib/app-stack.tsからAppStackクラスをインスタンス化する。

#!/usr/bin/env node
import 'source-map-support/register';
import * as cdk from 'aws-cdk-lib';
import { AppStack } from '../lib/app-stack';

const app = new cdk.App();
new AppStack(app, 'AppStack', { });

メインスタック

/lib/app-stack.tsでは、AWSリソースの集まりであるスタックが定義されており、/bin/app.tsでロードされる。

import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';

export class AppStack extends cdk.Stack {
  constructor(scope: Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);
    });
  }
}

2. デプロイ

CLIの設定

コンソールからIAMユーザー作成後、下記コマンドを入力。

% aws configure

対話形式で、Access Key, Secret Access Key, Default region name, Default output format を設定した。
設定内容は下記より確認できる。

% aws configure list  
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ******************** shared-credentials-file    
secret_key     ******************** shared-credentials-file    
    region           ap-northeast-1      config-file    ~/.aws/config

cdk bootstrap

cdk bootstrap コマンドで、デプロイに必要なIAMロールやS3などを作成する。

% cdk bootstrap

ビルド

ビルド、コンパイルするために npm run build コマンドを実行する。
ただし、libフォルダ下のアプリケーションスタックのみの修正であれば、後述のデプロイコマンド実行時に自動的にビルド、コンパイルされるため、このコマンドは不要である。

% npm run build

※ここで TypeScript のエラーに遭遇したが、回避方法については[備忘録] error TS1005, TS1011, TS1128 の解消にまとめた。

デプロイ

最後に cdk deploy コマンドでアプリケーションスタックをデプロイする。

% cdk deploy

3. 実行結果確認

cloudformationから、デプロイしたスタックが確認できる。
スクショ.png

最後に

AWS CDK TypeScriptプロジェクトの作成、デプロイまで確認できた。
次は、API Gateway, Lambdaを構築していきたい。

参考にした文献を記す。

0
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
0
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?