13
10

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 3 years have passed since last update.

「AWS CDK」のセットアップ&操作方法(Mac)

Last updated at Posted at 2019-12-19

「AWS CDK」とは?

「AWS Cloud Development Kit」の略であり、OSSのインフラ構成ツールです。
PythonやTypeScriptなどの言語でCloudFormationのコードを記述するイメージです。

TerraformやServerless Frameworkと異なり、AWSの公式ツールのため、マルチクラウドでないならCDKを選択するのはありだと思います。

v1.0.0がリリースされたのが2019/07/12であり、新しいツールです。
https://github.com/aws/aws-cdk/releases

環境

  • OS:macOS Catalina 10.15
  • CDK:1.19.0 (build 5597bbe)
  • Node.js:v12.14.0
  • npm:6.13.4

前提条件

  • Node.jsとnpmをインストールしている

セットアップ

### CDKのインストール

npmでグローバルにインストールします。

$ npm install -g aws-cdk

ローカルにインストールして npx cdk で実行する方法も考えられますが、フォルダが空でないと cdk init できないのでオススメしません。

$ npx cdk init app --language=typescript
`cdk init` cannot be run in a non-empty directory!

CDKのバージョン確認

CDKのバージョンを確認します。

$ cdk --version
1.19.0 (build 5597bbe)

もし bash: cdk: command not found と出力される場合、CDKをグローバルにインストールしていない可能性があります。
npm install 時に -g オプションを付けたか確認してください。

操作方法

CDKテンプレートの適用

cdk init を実行すると、使えるテンプレートの一覧が出力されます。

$ cdk init
Available templates:
* app: Template for a CDK Application
   └─ cdk init app --language=[csharp|fsharp|java|javascript|python|typescript]
* lib: Template for a CDK Construct Library
   └─ cdk init lib --language=typescript
* sample-app: Example CDK Application with some constructs
   └─ cdk init sample-app --language=[csharp|fsharp|java|javascript|python|typescript]

私はTypeScriptで通常のCDKアプリを作成したいため、以下のコマンドを実行しました。

$ cdk init app --language=typescript
Applying project template app for typescript
Executing npm install...
npm WARN deprecated core-js@2.6.11: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
npm WARN deprecated left-pad@1.3.0: use String.prototype.padStart()
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN cdk_sample@0.1.0 No repository field.
npm WARN cdk_sample@0.1.0 No license field.

# Welcome to your CDK TypeScript project!

This is a blank project for TypeScript development with CDK.

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

ls で一通りファイルが生成されたことを確認します。

$ ls -a
.  ..  .git  .gitignore  .npmignore  README.md  bin  cdk.context.json  cdk.json  jest.config.js  lib  node_modules  package-lock.json  package.json  test  tsconfig.json

自動生成された README.md に記載されている通り、 cdk deploy を実行するだけでデプロイされます。

モジュールのインストール

デフォルトでは @aws-cdk/core のみインストールされるため、必要に応じてモジュールをインストールします。

$ npm install @aws-cdk/aws-iam
$ npm install @aws-cdk/aws-lambda
$ npm install @aws-cdk/aws-ecs
$ npm install @aws-cdk/aws-rds
$ npm install @aws-cdk/aws-logs
$ npm install @aws-cdk/aws-events
$ npm install @aws-cdk/aws-events-targets

おわりに

これでCDKを使えるようになりました。
使い慣れている言語でAWSのインフラコードをガンガン書いていきましょう!

参考リンク

13
10
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
13
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?