AWS Cloud Development Kit (CDK)とは?AWS 上でのアプリケーション開発を支援する


AWS Cloud Development Kit (CDK)の概要

AWS Cloud Development Kit (CDK)は、AWS上のリソースをコンポーネント化して提供し、AWS 上でのアプリケーション開発を支援するサービスです。

AWS Cloud Development Kit (CDK)が必要とされる理由は、AWSを操作するその他の方法の課題を解決するためのです。

AWSを操作する方法として一般的なのは、マネジメントコンソールです。マネジメントコンソールは始めるのは簡単ですが以下の点で課題もあります。

  • 操作のために操作手順書が必要になる
  • 画面を使った操作なので、繰り返し人間の操作が必要になる
  • 人間の操作はヒューマンエラーのリスクがある
  • 作業に労力と時間がかかる

SDKやCLIといったスクリプトを使って操作手順を定義する方法は、繰り返し使用することが可能ですが、アップデートを行う際には、その都度手順を変えなければなりません。

CloudFormationなどのプログラミングツールは、あるべき状態の定義が可能で、自動化が容易ですが、ツール固有の記述方式を持っているため詳細な記述が必要となります。

Document Object Models(DOMs)は、あるべき状態をコードで記述することが可能ですが抽象化が組み込まれていないケースが多く、大量のコード記載が必要となります。

これらの、AWSを操作するその他の方法の持つ課題を解決するために活用されるのがAWS Cloud Development Kit (CDK)です。

AWS Cloud Development Kit (CDK)を使うことで、あるべき状態の定義が、一般的なコードで記述が可能なうえ、AWSのベストプラクティスがすでに入っているConstructといわれる抽象化をつかうことで、少ないコードであるべき状態の記述ができることになります。

AWS Cloud Development Kit (CDK)は、AWSの環境を一般のプログラム言語で記述できるツールで、オープンソースで開発されているので、ユーザーが拡張することも可能です。

AWS Cloud Development Kit (CDK)の利点

簡単にAWSサービスを活用できる

AWS Cloud Development Kit (CDK)では、専門的な知識が必要ではなく新たに学習することなく今まで活用してきた知識とスキルで使用が可能なため、AWSサービスを使ったアプリケーション開発を簡単に取り入れることができます。

現在使っているプログラミング言語やツールを使用できる

アプリケーション開発のために新しいプログラミング言語やツールが必要になると、時間と労力がかかります。AWS Cloud Development Kit (CDK)は、下記のような多くのプログラミング言語が使用でき、既に使用しているIDEやテストツール、ワークフローパターンを使用することができます。

  • TypeScript
  • Phthon
  • Java
  • .NET

AWS CloudFormationとの連携

AWS Cloud Development Kit (CDK)を使ってインフラストラクチャを定義すれば、AWS CloudFormationに連携することで、Amazon EC2 インスタンスやAmazon RDSDB インスタンスといったAWSリソースを使ったプロビジョニングができます。

コンポーネントをカスタマイズしてスピードを加速

AWS Cloud Development Kit (CDK)では、開発チームや組織でAWSサービスをいくつか組み合わせて使う必要がある場合の組み合わせや、定型文、ロジックなどのコンポーネントを組織のセキュリティやコンプライアンス、ガバナンスなどを考慮したかたちでカスタマイズできます。

カスタマイズされたコンポーネントは繰り返し使用でき、開発チームや組織で簡単に共有できます。そのことで、新規のプロジェクトなどが発生してもスピーディーに開発を進めることが可能となります。

参考資料

https://aws.amazon.com/jp/cdk/

https://aws.amazon.com/jp/cdk/features/