AWS CDKとは?クラウドインフラを定義できるフレームワークを紹介!
thumb_awscdktowa_01
AWS CDKとは?クラウドインフラを定義できるフレームワークを紹介!
アンドエンジニア編集部
2024.02.22
この記事でわかること
AWS CDKは、一言で表すとAWS CloudFormationのテンプレート生成ツールである
AWS CDKは使い慣れたプログラミング言語を用いて効率的にリソース環境構築を行える
AWS CDKを活用することで、利用者はソフトウェアの開発などに注力できる

AWS CDKとは

img_awscdktowa_01

世界的なクラウドサービスのAmazonが提供する「AWS CDK」は『Cloud Development Kit 』の略称であり、主要なプログラミング言語を用いてクラウドインフラをコードで定義し、「AWS CloudFormation」(AWSリソースの構築サービス)によってデプロイできる開発フレームワークのことです。

AWS CDKを利用することで「AWS CloudFormation」の簡便化が図れ、またAWSの様々なクラウドサービスを直接プログラムから操作することが可能になるなど、クラウド環境開発の効率化が期待されます。

この記事では、AWS CDKをテーマに、その特徴や類似サービスとの違い、利用料金や利用手順などについて解説します。

【参考】:アマゾン ウェブ サービス(AWS クラウド) 【参考】:オープンソースの開発フレームワーク - AWS クラウド開発キット | AWS 【参考】:AWS CloudFormation(テンプレートを使ったリソースのモデル化と管理)| AWS

AWSとは?メリットや何がすごいのか、初心者にもわかりやすく解説
フレームワークとは?プログラミング言語ごとに代表的なものを解説

AWS CDKの概要

AWSにはリソースのモデル化やセットアップを支援するサービスとして、AWS CloudFormationがあります。一言で表せば、AWS CDKはAWS CloudFormationのテンプレート生成ツールです。

このAWS CloudFormationを利用することで、リソースの管理に掛かる作業や時間を軽減し、AWSでのアプリケーションの実行にさらに注力できますが、AWS CloudFormationはテンプレートファイルの作成や修正をJSON/YAMLというテキスト形式で行うため、記述方式を覚える必要があります。

一方のAWS CDKは使い慣れたプログラミング言語を用いて、少ないステップ数でテンプレートを作成します。

CDKとSDKの違い

AWS CDKと語句が似ているサービスに「AWS SDK」があります。AWS SDKは『Software Development Kit』の略語で、AWS環境で提供されている各種プログラム言語や開発環境に合わせたソフトウエア開発に関わるツールです。

C++やGo、Java、JavaScript、Pythonなど、よく使われる言語の多くが利用できます。一方のAWS CDKはクラウド環境の開発フレームワークであり、クラウドインフラを対象としている点が大きく異なります。

【参考】:AWS での構築のための SDK とプログラミングツールキット| AWS

今話題のGo言語とは?入門としてその特徴・メリット・将来性を紹介
Javaとは?人気プログラミング言語Javaの将来性やメリットについて解説
JavaScriptの特徴とは?何ができるのか、メリット・デメリットも解説
Pythonとは?人気の理由と基本知識をわかりやすく解説!

AWS CDKの特徴やメリット

img_awscdktowa_02

ここまでAWS CDKの概要について紹介しました。ここからは、AWS CDKの主な特徴やメリットについて確認していきます。

CDKの特徴

AWS CDKは以下のように、AWS Cloudformationとの連携機能、多様なプログラミング言語対応、CLIやIDEとの連携が行えるといった特徴があります。以下、それぞれの特徴について解説します。

■AWS CloudFormationとの連携 プログラムコードを用いてAWSのリソースを定義したり、AWS CloudFormationと連携させたりしてサービスを利用できます。スタックの動作状況のモニタリングなど、AWS CloudFormationの利点も享受できます。

■多様なプログラミング言語に対応 AWS CDKは、TypeScript・Python・Javaや.NETに対応しています。これら利用頻度の高い言語に対応した既存のテストツールやIDなどの開発環境を利用して開発を行えます。

TypeScriptとは?JavaScriptとの違いも解説!

■CLIとの連携機能 AWS CDKではAWS CLI(コマンドラインインタフェース)から、テンプレートを合成したり、実行中のスタックとの違いを表示したり、様々な操作が可能です。

AWS CLIの使い方は?インストールから使用方法まで解説!

■ IDEとの連携機能 VSCodeをAWS上で利用できる「AWS Toolkit for Visual Studio Code」の1つの機能として、「AWS CDK Explorer」があります。このAWS CDK Explorerを用いて、プロジェクト内でのスタック、リソースやプロパティなどを容易に確認できます。

IDEとは?詳細やメリット、おすすめのIDEを紹介します!

CDKのメリット

AWS CDKの特徴が分かったところで、AWS CDKを利用することでどのようなメリットが得られるのか見ていきましょう。

■ 簡潔に記述できる CloudFormationのテンプレート作成を手で行う場合は、関数の利用や論理名の紐付けなど面倒な作業がありますが、AWS CDKではプログラム言語の柔軟性を利用して、より簡潔かつ効率的にコードの記述が行えます。

■ タイプミスや論理ミスが減る テンプレート作成でエディタの補完機能が利用できるため、リソース名やパラメータ名のタイプミスをなくすことができます。またプログラム入力やコンパイル時にエラーチェックが行われるため、論理ミスをなくすことができます。

■ コンソール感覚で作業ができる AWS CLIでリソースの作成を行った場合、バックグラウンドで必要となるパラメータ設定や権限付与、必要リソースの作成などが行われ、それらの記述を省略できるため、まさにコンソール感覚で作業をシンプルに行うことができます。

CDK Workshop

CDK WorkshopはAWS CDKに関する公式チュートリアルサイトで、無料でAWSのサービスをハンズオン形式で学ぶことができます。ただし、使用言語が英語であるため、翻訳しながら利用することになります。

AWS CDKはJavaScript・TypeScript・Python・Java・.NETをサポートしていますが、CDK WorkshopではTypeScriptとPythonのみ説明があります。

【参考】:TypeScript ワークショップ | AWS CDK Workshop| AWS

AWS CDK v2の変更点

2021年12月にAWS CDK v2が登場しました。v2の主な変更点は以下の通りで、既にAWS CDKを利用中の方にとっては、v2移行のメリットを感じられるバージョンアップです。

▪AWS Construct Libraryが1パッケージになった ▪v1で非推奨のプロパティやメソッドが完全削除された ▪v2ではすべてのFeature flagsが有効になった

ちなみにv1は2023年6月1日にサポートが終了しており、現状多くのユーザがv2に移行しています。v2のより詳細な内容は以下のリンクより確認しましょう。

【参考】:AWS CDKv2 への移行 - AWS Cloud Development Kit (AWS CDK) v2| AWS

CDKの料金と利用手順

img_awscdktowa_03

AWS CDKを実際に利用する前に、料金と利用手順について確認しておきましょう。

料金

AWS CDKは GitHubのApache ライセンスv 2.0の下で配布されます。AWS CDK自体の利用料金は無料ですが、CDKによってデプロイされるAWSのリソース(Amazon EC2インスタンス、 Elastic Load Balancing:負荷分散など) には手動で作成した場合と同様に従量制の料金が掛かります。

【参照】:AWS 料金見積りツール 【参照】:aws-cdk/LICENSE at v1-main · aws/aws-cdk ·GitHub

AWSの費用は?主要サービスの料金体系や計算ツールも紹介

CDKを利用する手順

AWS CDKを利用するためにはあらかじめ必要なものがあり、さらに環境構築が必要です。ここでは、CDKを利用するための環境構築手順について解説します。

■ 前提条件

AWS CDKを利用するには、以下の2つの条件を満たすことが前提です。

①LinuxOSにNode.jsがインストールされている必要がある(Node.js:JavaScriptを利用するためのプラットフォーム) ②AWSアカウントを有しており、サービスアカウントのIAMユーザの作成ができること

 【参照】:AWS CDK の開始方法 - AWS Cloud Development Kit (AWS CDK) v2

Node.jsとは?JavaScriptとの違いや使い所を解説

■ AWS CLIのインストールと初期設定

AWS CLI(コマンドラインインターフェイス )はAWSのクラウドサービスを管理するための統合管理ツールです。AWS CDKのアプリ操作の主要なツールです。

AWS CLIをインストールするコマンドは以下の通りです。



curl https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -o awscliv2.zip


unzip awscliv2.zip


sudo ./aws/install

【参照】:Installing or updating the latest version of the AWS CLI - AWS Command Line Interface

AWS CLIがインストールできたら、続いて下記の公式サイトに従ってAWS CLIの初期設定を行います。

【参照】:AWS CLI の設定 | AWS Command Line Interface

■ CDKのインストール&初期設定

AWS CLIの初期設定が完了したら、AWS CDKをインストールします。インストールコマンドは以下の通りです。



$ sudo npm install -g aws-cdk

CDKが正しくインストールされたことを確認するには、以下のコマンドを用います。



$ cdk --version


2.44.0 (build bf32cb1)

【参照】:AWS CDK の開始方法 - AWS Cloud Development Kit (AWS CDK) v2

CDKがインストールできたら、続いてブートストラップの初期設定を行います。共有アカウントで既にブートストラップを行っている場合は不要です。ブートストラップを行うには以下のコマンドを使います。まず先にブートストラップの設定情報を確認します。



$ aws sts get-caller-identity


{


    UserId: ユーザID,


    Account: ACCOUNT-NUMBER,


    Arn: arn:aws:iam::ACCOUNT-NUMBER:user/ユーザ名


}

上記の「ACCOUNT-NUMBER」の部分をブートストラップで使用します。



cdk bootstrap aws://ACCOUNT-NUMBER/REGION

REGIONは実際に利用するリージョン(ap-northeast-1など)を設定します。以上でCDKのインストールと初期設定は終了です。

【参照】:ブートストラッピング - AWS Cloud Development Kit (AWS CDK) v2

■ CDKによるライブラリー構築

構成ライブラリ開発では、peerDependenciesdevDependenciesとセクションを組み合わせて依存関係を指定する必要があります。CDKの設計上、依存関係のインストール、更新の際には十分にテストしましょう。

【参照】:依存関係の管理 - AWS Cloud Development Kit (AWS CDK) v2

AWS CDKを利用する際の注意点

img_awscdktowa_04

ここまで、AWS CDKの概要やメリット、利用する手順などを解説しました。ここでは、AWS CDKを利用する上での注意点やデメリットについて紹介します。

プログラミング言語やAWSの基礎知識が必要

前述の通り、AWS CDKはTypeScriptやPython、Javaなどのプログラミング言語に対応しているため、それらを理解できる前提知識が欠かせません。また、AWSサービスやAPI、セキュリティなどの関連知識も必要です。

これらの知識を備え持っているITエンジニアにとっては、AWS CDKは直感的に扱いやすいサービスかもしれませんが、IT初心者からすると利用する上でのハードルがやや高く感じるかもしれません。

AWSのサービス一覧は?豊富なサービスを活用しよう!
Web APIとは?仕組みや使い方、メリットをわかりやすく解説!

対応していないサービスもある

AWS CDKは数多くのサービスに対応していますが、全てに扱えるわけではありません。例えば、CloudFrontの場合はOAIの設定ができません。AWS CDKが対応していない場合はリソースの構築を手動で行う必要があるため、対応サービスについては注意が必要です。

AWSのエッジロケーションとは?CloudFrontなど関連用語も解説

コードが複雑化して可読性が低下することも

様々なプログラミング言語に対応するAWS CDKは、動的なインフラ構築の際に条件を設定できますが、その条件が複雑になるとコード自体も複雑になってしまいます。読みにくさや開発者以外は理解しにくいなどのデメリットが考えられます。

そういったことが起きないように、ある程度の知識を持った人材の確保が必要です。

AWSCDKを活用しよう

img_awscdktowa_05

この記事では、クラウド環境開発の効率化が図れるAWS CDKをテーマに、その特徴やメリット、利用料金や利用手順などについて解説しました。

AWS CDKは普段利用しているプログラミング言語を用いてAWS Cloudformationと連携させることで、クラウドインフラの開発や環境構築をさらに効率化させることができ、その分ソフトウェア開発に注力することができます。AWSの無料ツールであるCDKをぜひ利用してみましょう。

AWS責任共有モデルとは?クラウドサービスの正しい利用法を解説!
AWSのメリットは何?そのメリットを最大限活用してみよう
気になる人のXをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

編集部オススメコンテンツ

Sponsored
【年収±診断】6つの質問に答えて、真の市場価値をチェック!
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
はじめて転職される方へ
SE・システムエンジニア(IT/通信/インターネット) 求人一覧

編集部おすすめコンテンツ

Sponsored
【年収±診断】6つの質問に答えて、真の市場価値をチェック!
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

Powered by マイナビ AGENT