このページの内容

Awesome CDK

CDKを扱う資料や関連プロジェクトをまとめたAwesomeリストです。

目次

Construct ライブラリ

この節には、CDK アプリで使用できる Construct を提供する、さまざまなプログラミング言語のコードライブラリを掲載します。

API

  • cdk-chalice - AWS Chalice(AWS 向け Python サーバーレスマイクロフレームワーク)の AWS CDK Construct。
  • auto-cdk - ファイルシステムと API Gateway/Lambda の統合を自動生成します(ベータ)。
  • crow-api - ファイル構造に基づくルートを持つサーバーレス API を作成。

データベース

静的ウェブサイト

  • 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 テンプレートリポジトリ。

言語サポート

ライブラリ公開

ツール

  • CDK-Dia - AWS CDK 向け自動インフラストラクチャ図。

トレーニング資料とサンプルコード

ブログ記事と講演

関連プロジェクト

  • jsii - JavaScript 相互運用インターフェース。CDK が言語バインディングの作成に使う技術です(現在 .NET、Java、Python をサポート)。
  • cdk8s - オブジェクト指向プログラミングを使い、Kubernetes ネイティブアプリ・抽象化を定義。
  • cdktf - プログラミング Construct でインフラリソースを定義し、HashiCorp Terraform でプロビジョニング。
  • cdktg - コードとしてのアジャイル脅威モデリング。

ヒントとコツ

貢献方法

貢献を歓迎します。まず貢献ガイドラインをお読みください。