AWS Cloud Development Kit (AWS CDK) は、使い慣れたプログラミング言語を使用してクラウドアプリケーションリソースを定義するためのオープンソースのソフトウェア開発フレームワークです。
クラウドアプリケーションのプロビジョニングは、手作業やカスタムスクリプトの作成を必要としたり、テンプレート管理やドメイン固有の言語の学習を必要としたりする困難なプロセスになる場合があります。AWS CDK では、アプリケーションのモデリングに、プログラミング言語についての知識とプログラミング言語の表現力を使用できます。コンストラクトと呼ばれる高レベルのコンポーネントによって、実証済みのデフォルト設定を使用してクラウドリソースが事前設定されるため、エキスパートでなくてもクラウドアプリケーションを構築できます。AWS CDK では、AWS CloudFormation を使用してリソースを安全かつ反復可能な方法でプロビジョニングできます。また、組織の要件を組み込んだ独自のカスタムコンストラクトを作成して共有できるため、新しいプロジェクトを迅速に開始することができます。
Terraform を好まれるお客様には、CDK コンストラクトが cdktf によって作成されるため、TypeScript および Python で Terraform HCL ステートファイルが定義されます。Kubernetes ユーザーであれば、cdk8s プロジェクトによって CDK コンストラクトが使用されて、TypeScript、Python、Java で Kubernetes 設定が定義できるようになります。cdk8s はどこでも実行できる Kubernetes インフラストラクチャの定義に使用できるとともに、AWS CDK の Amazon Elastic Kubernetes Service (Amazon EKS) コンストラクトライブラリと併用が可能です。cdk8s および cdktf はどちらもアルファリリースです。
利点
クラウドへの簡単なオンボーディング
AWS CDK では新たに学習すべきことがほとんどないため、AWS へのオンボーディングを加速できます。CDK では既存のスキルやツールの使用が可能になるため、それをクラウドインフラストラクチャの構築タスクに活用できます。また、CDK で提供される高レベルのコンポーネントによって、クラウドリソースが実績のあるデフォルト設定を使用して事前設定されるため、専門知識がなくても AWS での構築を行えます。
より迅速な開発プロセス
AWS CDK では、インフラストラクチャを定義するためにプログラミング言語の表現力を活用できます。オブジェクト、ループ、条件といった使い慣れた機能により開発プロセスを加速できます。 また、統合開発環境 (IDE) で AWS CDK を使用し、既存の生産性ツールやテストフレームワークを活用することも可能です。
カスタマイズおよび共有可能
AWS CDK では、組織のセキュリティ、コンプライアンス、ガバナンスの要件を満たした再利用可能な独自のコンポーネントを設計できます。他のソフトウェアライブラリと同様、組織全体にコンポーネントを簡単に共有できるため、デフォルトでベストプラクティスを使用して新しいプロジェクトを迅速に立ち上げることができます。
コンテキスト切り替えが不要
AWS CDK では、お使いの IDE 内でクラウドアプリケーションを構築できます。ランタイムコードの記述や、AWS リソースの定義に、同じプログラミング言語を使用できます。AWS Toolkit for VS Code を使用して、CDK アプリケーションスタックとリソースを視覚化できます。
仕組み
お客様
deepwatch は、企業ネットワークをどこでも、毎日保護することにより、デジタル経済を安全にしています。 deepwatch は、世界クラスのセキュリティエキスパートのチームによって管理される Cloud SecOps プラットフォームを提供し、受賞歴のある Managed Detection & Response(MDR)、Vulnerability Management、および Endpoint Detection & Response Services を顧客に提供します。
deepwatch は、クライアントに最高のサービスを提供するため常に革新を続けています。deepwatch のエンジニアリングチームは、サーバーレスファーストのアプローチでソフトウェアを開発する機能を必要としていました。また、スケーラブルでデベロッパーに優しい Infrastructure as Code フレームワークをより速く移動することを望んでいました。これを可能にするために、チームは AWS Cloud Development Kit (CDK) を実装することを選択しました。
「厳格なセキュリティ基準は、私たちの活動にとって重要です。AWS CDK を使用することにより、チームは CI/CD パイプラインとシームレスに統合しながら、最も一般的なインフラストラクチャパターンをより迅速かつ効率的にプロビジョニングできます。AWS CDK の活用を決定後、完全にテスト可能でリバースエンジニアリングされた非常に複雑なバックエンドインフラストラクチャを 2 週間以内に移行し、効率を 60% 向上させました。IAC 製品スイート全体を AWS CDK に移行します。互いに信頼できる開発チームとなることが目標です。CDK は、チームとしてより速く、よりスマートに作業する能力を大幅に向上させ、その目標をサポートしています。」
Parag Baxi、製品エンジニアリング部長 - deepwatch
Culture Amp によって、従業員のフィードバックを簡単に収集、理解、取り入れるようにすることで、企業をより働きやすい職場にできます。Culture Amp により、HR リーダーはより適切な意思決定を行い、影響力を示し、企業文化を競争力に変えることができます。Culture Amp は AWS を使用して、2012 年に世界初のオンデマンドの従業員フィードバックプラットフォームを構築しました。それ以来、メルボルン、サンフランシスコ、ニューヨーク、ロンドンオフィスから急増している世界中の顧客をサポートしてきました。主に AWS Fargate、Amazon DynamoDB、Amazon Relational Database Service を使用して、Amazon EC2 で実行されていた単一リージョンのモノリシックアプリケーションを、Amazon Elastic Container Service 上で実行されるマイクロサービスベースのマルチリージョンアーキテクチャにモダナイズすることを Culture Amp が決定するにあたっては、制限付きの環境にログインしなくても、または AWS や AWS CloudFormation に関する詳細な知識を習得しなくても、事前承認済みの AWS アーキテクチャをエンジニアが利用できる方法を求めていました。Culture Amp チームは、AWS Cloud Development Kit (AWS CDK) を利用して、サポート対象のデータベースとユーザーロールを共有し、反復可能な方法で AWS Fargate サービスのプロビジョニングを自動化しました。Culture Amp は、カスタム AWS CDK コンストラクトのライブラリを構築した結果、豊富な機能を備え、開発チーム間でスピードと効率を向上できるエンジニア向けの新しいマイクロサービスをプログラムで作成できるようになりました。
「現在、エンジニアは豊富な機能を備えた事前承認済みの AWS アーキテクチャを利用できます。これには、詳細なデプロイロール、ロードバランシング、認定の検証、自動スケーリング、ログを転送する AWS Lambda 関数、ストレージバックエンドとしての Dynamo または RDS の選択などが含まれます。以前は 6 週間かかっていたものを、たった数時間で実行できるようになりました」
Matthew Tapper 氏、リード SRE エンジニア - Culture Amp
Stedi は手間のかかるポイントツーポイント運用によらず、取引先との接続およびトランザクションを高速処理する機能を法人組織に提供していますが、標準化フォーマットで 300 超のさまざまな商取引タイプを処理する完全セルフサービス型の「デジタルメールボックス」によってこれが可能になりました。
Stedi には、世界のあらゆる B2B トランザクションを処理することで、企業で単純作業に費やされる膨大な時間をセーブするという野望があります。これには、まず自社内で単純作業をなくすことが先決で、このために Stedi でフルサーバーレスの AWS アーキテクチャによるビルドを早期に決めたのです。しかし、Stedi と AWS の協業は単なるサーバーレスアーキテクチャにとどまらず、AWS CDK や AWS Amplify のような AWS ネイティブのデベロッパーツールを採用して、イテレーションを高速化し、デプロイ頻度を上げました。
「きっかけは CDK でした。フィードバックのサイクルが大きく改善され、まったく新しいインフラストラクチャのフルデプロイまでの時間が短縮されました」
Tyler van Hensbergen 氏、エンジニアリング - Stedi

