2022/04/20

AWS CDKとは?CDKの概要や手順などをわかりやすく紹介!

 
  

AWS CDKとは?

AWS CDKは、プログラミング言語でクラウドのインフラを定義できるフレームワークです。 クラウドのインフラをテキストで定義できるサービスとしては、AWS CloudFormationがありますが、これと少し似ています。

AWS CloudFormationではJSONやYAMLといったテキストファイルでリソースを定義していましたが、AWS CDKではプログラムコードで同様のことができるものとも言えます。

ということは、使い慣れた開発環境でAWS CloudFormationと似たようにインフラをコードで定義できたり、アプリケーションとインフラをまとめて管理できたりといったメリットがあります。

さらにテキストファイルではなくプログラムコードなので、状況に応じて動的にパラメータを変えてAWSにシステムを立ち上げるといったことも可能です。

AWS CDKの特徴

AWS CDKには、AWS Cloudformationとの連携、多様なプログラミング言語対応、CLI、IDEとの連携といった特徴があります。

AWS CloudFormationとの連携 プログラムコードでAWSリソースを定義し、AWS CloudFormation を通じてサービスを利用できます。同じシステムを簡単に再現できたり、スタックの動作状況のモニタなど、CloudFormationと同様の利点があります。

多様なプログラミング言語対応 AWS CDK は、TypeScript、Python、Java、.NETに対応します。

これらの言語に対応した既存のIDEやテストツールといった開発環境をそのまま利用して開発できます。 CLIとの連携 AWS CDKにはCLI(コマンドラインインタフェース)があります。コマンドラインから、テンプレートの合成や実行中のスタックとの違いの表示など、様々な操作ができます。

IDEとの連携 AWS Toolkit for Visual Studio Codeというツールの機能として、AWS CDK Explorerがあります。これはVisual Studio Codeに統合されたツールで、IDEからAWS CDKの操作、モニタが可能となります。

CDK Workshopとは

CDK Workshopとは、AWS CDKの公式チュートリアルサイトであり、実際に手を動かしてCDKを使ってみるための資料が揃っています。 CDKは、JavaScript, TypeScript, Python, Java, .NETをサポートしています。このCDK Workshopで説明があるのはTypeScriptとPythonです。

AWS CDK TYPESCRIPT WORKSHOP

環境構築

以下、Workshopの手順にそって、AWS CDKでAWSリソースを起動するための大まかな流れとコード例を示します。言語はここではTypescriptで進めます。まずは、環境構築について触れます。 環境構築 まず環境構築として以下の準備が必要です。すでにインストールされているツールがあれば飛ばして問題ありません。 ・AWSアカウントとユーザー ・AWS CLI ・Node.js ・IDE ・AWS CDK Toolkit ・Python AWS CDK Toolkitのインストールは、以下のコマンドでできます。

npm install -g aws-cdk

Workshop手順

Workshopは以下のセクションで構成されます。 ・New Project ・Hello, CDK! ・Writing constructs ・Using construct libraries ・Clean up New Project(新規プロジェクト作成) lib/cdk-workshop-stack.tsが主要コード部分になります。使うリソースがここに記述されます。 そして、CDK CLIから以下のコマンドを叩くことで、CloudFormationのテンプレートが生成されます。

$cdk synth

CDKのリソース格納用のバケットをS3に作成します。

$cdk bootstrap

リソース作成は、CDKコマンドラインから以下のコマンドでできます。

$cdk deploy

処理が始まり、途中で確認のためのメッセージが出力されます。これにyと回答すると、S3バケットにリソースが作成されます。起動後は、CloudFormationのWebコンソールからもスタックのステータスが確認できます。 ここまでが、いちばん基本的なCDK手順です。 Hello,CDK! ここでは、サンプルリソースの削除を試します。 元々の基本サンプルにはSNSとSQSのリソースを含めた定義が入っていますが、これらのリソースの削除を試します。 ソースファイルから、SNSとSQSリソースのコードを削除します。その上で、以下のコマンドで、ソースコードと、実際に動作しているリソースの違いを事前に確認します。

$cdk diff

先ほどデプロイした時にはSNSとSQSが入っていて、現在のソースコードには存在しないはずなので、SNSとSQSの部分が差分として表示されるはずです。 確認できれば、再度cdk deployを実行すると、SNSとSQSが削除されます。 Writing Constructs これはAWS Lambdaを用いた、簡単なカウンターアプリのサンプルです。 Clean up(リソースの削除) AWS CDKリソースを、以下のコマンドで全て削除できます。 もちろん、AWS CloudFormationコンソールでスタックを削除しても構いません。

$cdk destroy

実行後、AWSのコンソールで、これらのリソースが削除されていることが確認できます。

AWS CDK料金

CloudFormationと同様、AWS CDKについては追加料金は発生しません。ただし、Amazon EC2 インスタンス、データベースなどのAWSリソースをCDKで起動した場合には、手動で作成した場合と同様に料金が発生します。最低料金が発生しない点も同じです。

AWS CDKでインフラ管理してみよう

AWS CDKについてまとめました。

AWS CDKは、プログラミング言語でクラウドのインフラを定義できるフレームワークです。AWS CloudFormationと似ていますが、CloudFormationとは異なり、テキストファイルベースではなくプログラミング言語でAWS CloudFormationのテンプレートを生成するサービスと言えます。 インフラをコードで管理できるので、アプリケーションとインフラをまとめて管理できたり、動的にパラメータを設定してシステムを立ち上げるといった応用が考えられます。

さらに、AWS CDKでは多くのプログラミング言語(TypeScript、Python、Java、.NET )対応、コマンドラインインタフェース、IDEとの連携といった特徴があります。多くの言語に対応しているので、慣れた言語と開発環境を利用して開発できます。

また、AWS CDKそのものの利用については、CloudFormationと同様に費用がかかりません。 本記事では、さらにAWSの公式チュートリアルであるAWS CDK Workshopに沿って概要を説明しました。

さらに、CDKのコマンドラインからサンプルのCloudFormationスタックの作成、実行中スタックとの差分チェック、デプロイとスタックの削除といった一通りの流れについて触れました。 AWS CDKを利用することで、アプリケーションコードと同様にインフラがコードベースで管理できます。

AWSインフラを使い慣れた開発環境で管理できますし、テストシステムやバージョン管理システムでテストやバージョン管理することもできます。様々なメリットがありますのでAWS CDKを活用していくと良いでしょう。]]>

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】