CDKのサンプルプロジェクトの作成

## CDKのサンプルプロジェクトの作成

### CDKのインストール
下記記事を参考
https://qiita.com/ShiroUz/items/fad73b29b77f289c22e1

### クレデンシャルの適用
下記記事を参考
https://qiita.com/ShiroUz/items/35a83b1232ff800fb048

### CDKでサンプルアプリの作成

```
SiroUz simple-app % cdk init sample-app --language=typescript
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!                                                                                  !!
!!  This software has not been tested with node v17.5.0.                            !!
!!  You may to encounter runtime issues, and should switch to a supported release.  !!
!!                                                                                  !!
!!  As of the current release, supported versions of node are:                      !!
!!  - ^12.7.0                                                                       !!
!!  - ^14.5.0                                                                       !!
!!  - ^16.3.0                                                                       !!
!!                                                                                  !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Applying project template sample-app for typescript
# Welcome to your CDK TypeScript project!

You should explore the contents of this project. It demonstrates a CDK app with an instance of a stack (`SamplePipelineStack`)
which contains an Amazon SQS queue that is subscribed to an Amazon SNS topic.

The `cdk.json` file tells the CDK Toolkit how to execute your app.

## Useful commands

 * `npm run build`   compile typescript to js
 * `npm run watch`   watch for changes and compile
 * `npm run test`    perform the jest unit tests
 * `cdk deploy`      deploy this stack to your default AWS account/region
 * `cdk diff`        compare deployed stack with current state
 * `cdk synth`       emits the synthesized CloudFormation template

Initializing a new git repository...
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint:   git config --global init.defaultBranch <name>
hint: 
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint: 
hint:   git branch -m <name>
Executing npm install...
npm WARN deprecated source-map-url@0.4.1: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated
npm WARN deprecated sane@4.1.0: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added
✅ All done!

SiroUz simple-app % tree -I node_modules -L 3
.
├── README.md
├── bin
│   └── simple-app.ts
├── cdk.json
├── jest.config.js
├── lib
│   └── simple-app-stack.ts
├── package-lock.json
├── package.json
├── test
│   └── simple-app.test.ts
└── tsconfig.json

3 directories, 9 files
```

### S3バケットを作成する。

lib/simple-app-stack.tsを以下のように修正する。

```TypeScript
import { Stack, StackProps } from 'aws-cdk-lib';
import { Construct } from 'constructs';
// import * as sqs from 'aws-cdk-lib/aws-sqs';
import { Bucket, BucketEncryption } from 'aws-cdk-lib/aws-s3';

export class SimpleAppStack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);

    const bucket = new Bucket(this, 'MySimpleAppBucket', {
      encryption: BucketEncryption.S3_MANAGED,
    })

    // The code that defines your stack goes here

    // example resource
    // const queue = new sqs.Queue(this, 'SimpleAppQueue', {
    //   visibilityTimeout: cdk.Duration.seconds(300)
    // });
  }
}

```

### cdkでのデプロイ
```
SiroUz simpole-app % cdk bootstrap aws://726179501813/us-east-1
SiroUz simple-app % cdk deploy
...
 ✅  SimpleAppStack
...
```
SimpleAppStackと出ていれば、デプロイの成功。

CloudFormationを確認したところ、以下のリソースが作成されていることが確認できた。
![スクリーンショット 2022-01-01 12.59.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/593337/7515b0bd-09e5-036c-e673-4a98f783ef81.png)