Amazonは先頃、開発者が使い慣れたプログラミング言語を使ってクラウドインフラストラクチャのモデリングやプロビジョニングのできる、拡張可能なオープンソースソフトウェア開発フレームワークAWS Cloud Development Kit(CDK)の一般提供を開始すると発表した。
昨年、AmazonはCDKの開発者向けプレビュー版をリリースして、このフレームワークの展開に開発者を迎え入れた。プレビューリリースではTypeScript、JavaScript、およびJavaがサポートされていたが、その後.NETとPythonが追加されている。今回のGAリリースでは、TypeScriptとPythonがサポートされる。これらの言語を使用することで、開発者は、YAML(プログラミング言語の機能を持たないデータのシリアル化言語)よりもクラウドインフラストラクチャをより適切に定義できる。AWSのエバンジェリストであるDanilo Poccia氏がブログ記事で、CDKのGAリリースについて次のように述べている。
個人的には、AWS CDKを使用することで、IDE上で同じプログラミング言語を使って、最近のIDEが備えているオートコンプリートやパラメータサジェスチョンのサポートを受けながら、ツールやテクノロジを切り替えることによるメンタルスイッチの必要なく、インフラストラクチャを含むアプリケーションの開発を行えることが気に入っています。
さらには、管理者と開発者が、インフラストラクチャとアプリケーションコードを同じリポジトリに保持することが可能になる。変更の予測可能性が高まり、継続的テストが簡単になり、アプリケーションとインフラストラクチャのアップデートが同じツールで作業できるようになることから、結果として品質が向上する。
出典: https://aws.amazon.com/cdk/
AWS CDKのコンセプトは単純で、すべてのもの — S3バケットのような単一のリソースから、複数のAWSアカウントやリージョンに展開するマルチスタックアプリケーションに至るまで、あらゆる複雑性を持ったアーキテクチャを表現するクラウドコンポーネント — がコンストラクト(construct)なのだ。開発者あるいは管理者は、コンストラクトを生成したり、他のコンストラクトで使用したりすることで、いわゆるスタックを構成することができる。構成したスタックは、AWS環境、あるいはアプリ、ひとつ以上のスタックによるコレクションにデプロイすることが可能だ。
CDKアプリケーションの作成と管理には、Node.jsを使用するコマンドラインツールであるAWS CDK Command Line Interface(CLI)が使用できる。このCLIでは次のような、さまざまなコマンドが実行可能である。
- cdk init — 現在のディレクトリ内で、サポートされるプログラミング言語のひとつを使った新たなCDKプロジェクトを初期化する
- cdk deploy — AWSアカウントにアプリをデプロイする
"cdk"コマンドを実行すれば、使用可能な他のコマンドとオプションを確認することができる。JenkinsやAWS CodeBuildを使用している場合には、デプロイメント自動化ワークフローにCDK CLIを含めることも可能だ。
開発者と管理者は、CDKを無償で使用することができる。現時点では、TypeScriptバージョンとPythonバージョンのSDKが提供されている。CDKはオープンソースである。さらにGitHubでは、CDKプロジェクトのサンプルや、詳細を記載したドキュメントが提供されている。