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.

一番簡単な CDK Deploy

Posted at

はじめに

最近AWS CDKを触り始めたのですが、デプロイまで簡単に行う例が見当たらなかったので、「IAMユーザを作るだけ」を例にして記事にしました。

用意する環境

Cloud9を使いましたので、PCはブラウザのみ。
言語はTypeScriptで行いました。

環境構築

Cloud9であれば中にすべて入っていましたので、何もインストールする必要ありませんでした。

  • Cloud9作成
    • デフォルトVPC
    • デフォルトIAMロール
    • インスタンスタイプはメモリが2GB以上
    • Node.jsはインストール済み
    • AWS CDKもインストール済み

やったこと

CDKのバージョン確認

cdk --version

最新バージョンは以下を確認

CDKのアップデート

  • 参考

# Cloud9の場合
npm update -g cdk

# 一般的な場合
sudo npm update -g aws-cdk

プロジェクト作成

今回はtestcreate-userという名前のプロジェクトとします。

mkdir testcreate-user
cd testcreate-user
cdk init --language=typescript

以下のようなポップアップ出てきましたので、Yesで閉じます。
image.png

Bootstrap

アカウントごと(かつリージョンごと?)に1回実行していればよく、すでに実施済みであれば不要。

cdk bootstrap

修正するファイル

  • 以下のファイルがスタックを定義するファイルになります。
    • lib/testcreate-user-stack.ts

単純にユーザを作る場合です。

lib/testcreate-user-stack.ts
import { Stack, StackProps } from 'aws-cdk-lib';
import { Construct } from 'constructs';
+import * as iam from 'aws-cdk-lib/aws-iam';

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

    // 第二引数はスタックの論理ID(末尾に乱数が自動付与される)
+    const user = new iam.User(this, 'Heroine',{userName:'Komichi-Akebi'});
  }
}

TypeScriptのコンパイル

コードを修正したらコンパイルです。

都度実行する場合

  • 都度、以下のコマンドを実行
npm run build

監視させ、自動で実行する場合

  • 別ターミナルを開き以下を実行
cd testcreate-user
npm run watch
  • ターミナルが実行中のままになるので、1回実行すればよい

テンプレートに変換

cdk synth

デプロイ

cdk deploy

プロジェクト名に関連した名前でCloudFormationのスタックが作成されます。
image.png
ユーザも作られました。
image.png

差分をみる

(例えば名前を変えて)差分を見る場合は以下の流れです。

cdk synth

# 自動でコンパイルするようにしていれば不要
npm run build

cdk diff

差分は以下のように表示されます。
image.png

おまけ Gitつかってみる

Cloud9上だと、GUIでGitが使えます。
左メニューのGitのアイコンをクリックすると、プロジェクトごとに差分が表示されます。
image.png
まずはCommit - Commit Allで現時点のをすべてコミットしてみます。
image.png
ポップアップはYesで。
image.png
コミットのメッセージを入力する必要があります。
image.png
差分がなくなりました。
image.png
コードを修正しユーザ名を変えてみると、差分が検知され、左右で比較することもできます。
image.png
戻るのようなアイコンをクリックすれば、元のバージョンまで戻すことができます。
image.png
Pushなどは試してませんが、個人で少し使う程度であればローカルだけで十分かと思います。

削除

プロジェクトを削除するのは以下のコマンドです。

cdk destroy
  • 削除されるもの
    • プロジェクトのスタック
  • 削除されないもの
    • Cloud9内のプロジェクトのフォルダ
    • Bootstrapで作成されたリソース

おわりに

新しいプログラミング言語に触る際の"Hello World"を表示させる例のように、AWS CDKの簡単なデプロイ例をまとめました。
初めてAWS CDKを触る方は参考にしてください。

参考:AWS CDK v2のリファレンス

ユーザ以外を作成する際によく使うリファレンスは以下のページになります。少し前まで検索してもv1のページが上位に出てきてしまっていたので。。。

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?