Awesome CDK
CDKを扱う資料や関連プロジェクトをまとめたAwesomeリストです。
目次
- Construct ライブラリ
- 高レベルフレームワーク
- スキャフォールディング
- 言語サポート
- ライブラリ公開
- ツール
- トレーニング資料とサンプルコード
- ブログ記事と講演
- 関連プロジェクト
- ヒントとコツ
Construct ライブラリ
この節には、CDK アプリで使用できる Construct を提供する、さまざまなプログラミング言語のコードライブラリを掲載します。
API
- cdk-chalice - AWS Chalice(AWS 向け Python サーバーレスマイクロフレームワーク)の AWS CDK Construct。
- auto-cdk - ファイルシステムと API Gateway/Lambda の統合を自動生成します(ベータ)。
- crow-api - ファイル構造に基づくルートを持つサーバーレス API を作成。
データベース
- aws-cdk-dynamodb-seeder - DynamoDB 向けのシンプルな CDK seeder。
- cdk-tweet-sentiment - ツイートの感情を識別し、Amazon DynamoDB テーブルへ記録します。
- cdk-dynamo-table-viewer - Amazon DynamoDB テーブルの内容を公開 HTML ページで公開します。
- cdk-postgresql - PostgreSQL 向け AWS CDK Construct。
- cdk-sqlserver-seeder - SQL Server データベースに対してカスタム SQL スクリプトを実行する CDK Construct。
静的ウェブサイト
- cdk-static-website - S3 で静的ウェブサイトを作成し、CloudFront (CDN) を設定して Route53 (DNS) 経由でカスタムドメインをマッピングする CDK コンポーネント。
- ness - 静的サイトを AWS アカウントへデプロイする CDK 駆動 CLI ツール。
セキュリティ
- cdk-passwordless - userpool を使うパスワードレス認証のための Construct。
- cdk-iam-generator - JSON 設定から IAM マネージドポリシー・IAM ロールを生成する Construct。
- c3 - プライバシー・セキュリティのベストプラクティスへの準拠を可能にします。
- cdk-iam-floyd - fluent インターフェースを持つ IAM ポリシーステートメントジェネレーター。
- k9-cdk - セキュアな S3 バケットポリシーを容易に生成する Construct。
- cdk-cloudfront-authorization - Lambda@Edge を使用する Cognito 認証付き CloudFront。
- aws-firewall-factory - FMS 経由で一元管理しながら WAF をデプロイ、更新、段階展開します。
運用
- cdk-instanceStopRule - 一日の終わりに停止する CloudWatch ルール付きインスタンスを作成する CDK コンポーネント。
- cdk-time-bomb - 設定時間後に AWS CDK Stack を消滅させる CDK Construct。
キュー
- cdk-tweet-queue - Twitter 検索クエリのツイートで SQS キューを満たします。
- cdk-ses-template-mailer - AWS SES メールテンプレートを作成する Construct と、AWS SES でテンプレートメールを送るマイクロサービス。
- cdk-sqs-monitored - デッドレターキューと設定済みアラームを備えた SQS Construct。
CI/CD
- aws-delivlib - 多言語ソフトウェアデリバリーのための CI/CD パイプラインを合成します(CDK 自体でも使用)。
- cdk-blue-green-container-deployment - CodeDeploy を使用した Blue/Green コンテナデプロイ。
監視
- cdk-watchful - CDK アプリ向けの自動ダッシュボード・アラーム。
- aws-cdk-billing-alarm - AWS 請求額が指定額を超えた際のメールアラートを設定する Construct。
- cdk-monitoring-constructs - 高レベル API を使って AWS アプリの監視を作成し、ダッシュボードを自動生成します。
ワークフロー
- cdk-pull-request-check - プルリクエストを自動確認する CDK コンポーネント。
- cdk-github-webhook - GitHub webhook をプロビジョニングする CDK コンポーネント。
- cdk-codepipeline-slack - #slack 承認ワークフローをプロビジョニングする CDK コンポーネント。
- cdk-codecommit-backup - CodeCommit リポジトリを S3 へバックアップ。
- Alexa Deployment Pipeline - AWS SAM と DeployToAlexa アクションを用い、Alexa Skills を Lambda と Developer Console へデプロイする CodePipeline を作成する Construct。
- cdk-developer-tools-notifications - 開発者ツール CodeCommit、CodeBuild、CodeDeploy、CodePipeline 向け Slack / Microsoft Teams / メール通知。
- aws-pdf-textract-pipeline - Puppeteer でウェブから PDF をクロールし、AWS Textract で内容を構造化データへ変換して DynamoDB に保存する ETL パイプライン。
マルチアカウント設定
- aws-bootstrap-kit - AWS Organization、AWS SSO、DNS、AWS CodePipeline を備えるマルチアカウント設定を作成します。
- cdk-organizations - AWS Organization、組織単位 (OU)、アカウント、ポリシーのプロビジョニングを支援する CDK Construct。
高レベルフレームワーク
- punchcard - CDK のインフラ・ランタイムコードを統合する TypeScript フレームワーク。1 つの Node.js アプリケーションの文脈で Construct を宣言し、ランタイムロジックを実装できます。
- aws-cdk-pure - AWS CDK で純粋関数型・高階のクラウドコンポーネントを開発するツールキット。
- cdk-stepfunctions-patterns - Step Functions の高レベルな回復性パターン群。
- Orkestra - AWS CDK・Step Functions 上に構築された、イベント駆動型 Airflow 代替。
- SST - CDK でサーバーレスアプリケーションを構築するオープンソースフレームワーク。再デプロイせずに Lambda 関数をローカルでテスト・デバッグできる Live Lambda Development 環境を備えます。
- Datajob - サーバーレスデータパイプラインまたは機械学習パイプラインを AWS 上に手間なく構築・デプロイします。
スキャフォールディング
- ReactJS + Cognito + CDK Starter - AWS CDK をサポートする ReactJS + Amazon Cognito + Amazon Amplify Framework のスタータープロジェクト。
- cra-template-aws-cdk - サーバーレス React アプリをすぐに簡単にプロビジョニングする AWS CDK 使用の Create React App テンプレート。
- create-cdk-app - テンプレートから CDK アプリを作成。
- awscdk-jsii-template - AWS CDK 向け JSII Construct ライブラリを構築、テスト、公開する準備済み環境を生成する GitHub テンプレートリポジトリ。
言語サポート
- AWS-CDK-Kotlin-DSL - AWS CDK Java のラッパーライブラリ。CI が毎日コードを自動生成・デプロイします。
- aws-cdk-maven-plugin - Java・Maven を使って AWS CDK アプリケーションを定義・デプロイするプラグイン。
- aws-lambda-nodejs-webpack - webpack を使用する代替 Node.js Lambda CDK Construct。
- aws-lambda-nodejs-esbuild - esbuild を使用する代替 Node.js Lambda CDK Construct。
ライブラリ公開
- GitHub Action - AWS CDK 向け GitHub Action。
- jsii-publish - Docker イメージとGitHub Actionを使い、JSII 経由で作成した CDK Construct を構築・公開します。
ツール
- CDK-Dia - AWS CDK 向け自動インフラストラクチャ図。
トレーニング資料とサンプルコード
- Official CDK Examples - AWS CDK 向けサンプルプロジェクト集。
- CDK Serverless Workshop - CDK アプリケーションの作成・デプロイ過程を案内するワークショップ。
- egghead.io の AWS Cloud Development Kit でアプリを構築するコース
- AWS CDK による Infrastructure as Code - re:Invent 2018 セッションの録画。
- GitHub Changelog Crawler - Fargate、API Gateway、Lambda、CloudFront、S3、ElastiCache、DynamoDB を使う、Nathan Peck 作の本格的な CDK アプリ。
- CI/CD を備えた ECS - CDK を使った ECS アプリケーションデプロイのデモ。
- AWS CDK 向けサンプルテンプレート - 複数の AWS プロジェクトからの動作する TypeScript スニペット。
- Lambda パッケージングアセット - Lambda 関数をビルドし、依存関係を含む ZIP ファイルを生成する CDK アセット。
- Open CDK Guide - CDK とベストプラクティスに関するオープンソースガイド。
- Colorteller Example - Fargate・Appmesh を使用する優れたサンプルプロジェクト。
- CDK Patterns - CDK で構築されたサーバーレスアーキテクチャパターンのオープンソースコレクション。
- CodePipeline・CodeBuild を使った CI/CD パイプラインの作成 - GitHub の cra-pipeline プロジェクトは、静的 React アプリケーションをデプロイする AWS CodeBuild 付き AWS CodePipeline を示します。
- AWS Lambda 上のサーバーサイドレンダリング対応 React SPA - cra-serverless プロジェクトは、create-react-app で作成した React ウェブサイトへ事前レンダリングを追加するサーバーレスアーキテクチャです。
- ミニチュートリアル: AWS Cloud Development Kit で AWS Lambda + ACM + API Gateway を設定 - HTML フォーム(例: /contact_us.html)の POST リクエストを受け、そのデータを Pushover 通知サービスへ渡す機能的な公開 API をデプロイします。
- CDK で構築した REST API の例 - https://api.l3x.in/ の REST API を動かすソースコード。
- dilbert-feed - RSS フィードリーダーで広告なしに Dilbert を楽しめる、Go 製サーバーレスアプリケーション。
- django-postgres-vue-gitlab-ecs - GitLab CI を使い CDK でデプロイする Django + Vue.js ウェブアプリの例。
- nextjs-vercel-aws-cdk-example - PostgreSQL (RDS)、EventBridge (cron)、SNS(バックグラウンドジョブ)と Next.js アプリケーションを組み合わせた例。
- projen・jsii を使う CDK Construct の作成と公開 - projenと
jsiiで新しい CDK Construct を作り、npm、Maven Central、PyPi、NuGet へ公開するためのサンプルコード付きステップバイステップガイド。
ブログ記事と講演
- CDK の方法と理由の紹介 - Leo Lapworth による。
- CDK Construct ライブラリの構築方法 - Philipp Garbe による。
- CDK のすべて: 旋風のようなツアー - Kevin S Lin による。
- AWS CDK Developer Preview の発表 - 2018 年 8 月 27 日に発表された最初の AWS CDK Developer Preview。
- AWS Cloud Development Kit への貢献 - Intuit の Mike Cowgill による。
- AWS Cloud Development Kit の第一印象 - Philipp Garbe による。
- CDK で AWS インフラストラクチャを強化する - Philipp Garbe による SlideShare。
- Amazon ECS 向け AWS CDK 入門 - Nathan Peck による。
- AWS re:Invent 2018、ベスト・オブ・ショー: CDK - Aller Media Tech Blog。
- ライブデモによる AWS Cloud Development Kit の紹介 - 2019 年 1 月 AWS User Group Finland Meetup。
- AWS CDK — 未来を垣間見る - Nordcloud Engineering による。
- CDK による AWS Infrastructure as Code - Ross Rhodes による。
- AWS Step Functions を使うコールバック - Ross Rhodes による。
- CodePipelines 設定に CDK を使う - Stefan Freitag による。
- AWS MSK 設定に CDK を使う - Stefan Freitag による。
- Serverless Dotnet - E01: AWS CDK 入門 - Jake Scott による。
- GitHub リポジトリ - Jake Scott による。
- AWS CDK による Infrastructure as Code - AWS Tech Talk ウェビナー。
- tecRacer Amazon AWS Blog - Gernot Glawe による aws-blog.de の複数ブログ記事。
- CDK で UDP NLB ログサービスを構築する - ClouderDex による。
- GitHub リポジトリ - ClouderDex による。
- AWS CDK による純粋関数型クラウドコンポーネント - fogfish による。
- CDK を使った複数アカウントの調査 (sfn/lambda/sqs/sechub) - fudless.xyz のブログ記事。
- AWS CDK を使うスケジュール Lambda 関数・CI/CD パイプライン - Maarten Thoelen による。
- GitHub リポジトリ - Maarten Thoelen による。
- 相互 TLS を使用する AWS Client VPN - Kirill Merkushev による。
- CDK Step Functions - Matt Morgan による。
- Custom Resources による DynamoDB のロード - Matt Morgan による。
- Provider Framework による DynamoDB のロード - Matt Morgan による。
- ドイツ語: AWS Lambda・CloudFront を使う React SPA とサーバーサイドレンダリング (SSR) - superluminar GmbH による。
- 実践的な Lambda・API Gateway 例による AWS CDK の紹介 - Alexander Fortin による。
- AWS CDK を使う CloudWatch Dashboards as Code(正しい方法) - Simon-Pierre Gingras による。
- Jamstack の不足部分をコーディングする: データベース、cron、バックグラウンドジョブ - Vincent Voyer による。
- Travis CI を使用する AWS CDK の継続的インテグレーション・デリバリー - Thomas Poignant による。
- AWS CDK のカスタムリソース - Roy Ben-Yosef による。
- Python アプリケーション向け推奨 AWS CDK プロジェクト構造 - Alex Pulver による。
関連プロジェクト
- jsii - JavaScript 相互運用インターフェース。CDK が言語バインディングの作成に使う技術です(現在 .NET、Java、Python をサポート)。
- cdk8s - オブジェクト指向プログラミングを使い、Kubernetes ネイティブアプリ・抽象化を定義。
- cdktf - プログラミング Construct でインフラリソースを定義し、HashiCorp Terraform でプロビジョニング。
- cdktg - コードとしてのアジャイル脅威モデリング。
ヒントとコツ
- CDK 型システムを振り返る - CDK の型システムを探索。
- Construct ライブラリの CodeBuild 設定をローカルでテストする -
jsii/superchain:latestDocker イメージを使用。
貢献方法
貢献を歓迎します。まず貢献ガイドラインをお読みください。