AWS CDK学習のロードマップ＋役立つサイトや資料・動画のリンク集　(2024/5/23更新)

# 初めに
CDK学習のロードマップおよび役立つリンクをまとめました。皆さんも参考にしてください。

# 学習のロードマップ

## ゴール
CDK開発を進める上でどの程度のスキルが必要か、学習のゴールが書かれています。

https://qiita.com/Figure_Skate_IT/items/761e626b4213b6321e6d




## なんとなくCDKについて理解したい人
5分で理解するAWS CDK
https://qiita.com/Brutus/items/6c8d9bfaab7af53d154a
AWS CDKとTerraformどちらを使うのが良いのか？
https://qiita.com/luton-mr/items/afe70781807bf3b5016a
| |CDK|Terraform|
|--|--|---|
|メリット|・記述量が少ない<br>・AWS公式サポートが受けられる<br>・モジュール化できる|・情報やツールが豊富<br>・デプロイが早い|
|デメリット|・細かいパラメータ調整が困難<br>・デプロイが遅い|・記述量が多い<br>（ほぼCloudformationと同じ）|

## 【初級者】動画とワークショップでCDKについての理解を深める
### ①BlackBeltの動画を視聴する。

https://www.youtube.com/watch?v=BmCpa44rAXI&list=PLzWGOASvSx6FIwIC2X1nObr1KcMCBBlqY&index=37

https://www.youtube.com/watch?v=aqa2bFFzcjs


https://www.youtube.com/watch?v=z3Mst77p-aU&list=PLzWGOASvSx6FIwIC2X1nObr1KcMCBBlqY&index=28


https://www.youtube.com/watch?v=4dyiPsYXG8I&list=PLzWGOASvSx6FIwIC2X1nObr1KcMCBBlqY&index=36


### ②無料のCDKワークショップで実際に手を動かしてみる。
TypeScript の基礎から始める AWS CDK 開発入門

https://catalog.workshops.aws/typescript-and-cdk-for-beginner/ja-JP


https://cdkworkshop.com/ja/

AWS CDK Immersion Day Workshop（CDK没入日ワークショップ）

https://catalog.us-east-1.prod.workshops.aws/workshops/10141411-0192-4021-afa8-2436f3c66bd8/en-US


### ③良質なコードを参考にする。


[実践！AWS CDKシリーズ](https://dev.classmethod.jp/author/tanaka-keisuke/)は、CDKの導入から各種リソースの実装方法まで、コード付きの豊富な記事があり、かなりおすすめです。

以下のGithubには、AWS公式の様々なサンプルが載っています。

https://github.com/aws-samples

[BLEA](https://aws.amazon.com/jp/blogs/news/announcing-baseline-environment-on-aws/)を利用して、セキュリティに関するガードレールを作りましょう。

https://github.com/aws-samples/baseline-environment-on-aws

[AWS Solutions Constructs](https://docs.aws.amazon.com/solutions/latest/constructs/welcome.html) には、良くある構成のパターンが載っています。

https://github.com/awslabs/aws-solutions-constructs

Construct Hub で、open-source のコンストラクトを検索しましょう。

https://constructs.dev/


## 【中級者】CDKのベストプラクティスを理解する

https://aws.amazon.com/jp/blogs/news/best-practices-for-developing-cloud-applications-with-aws-cdk/

https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/introduction.html


## 【上級者】勉強会などに参加し、最新情報にキャッチアップする

https://jawsug-cdk.connpass.com/

AWS CDK Conference Japan 2023
https://www.youtube.com/watch?v=FqsUe3nV_R0
https://jawsug-cdk.connpass.com/event/278205/presentation/
AWS CDK Conference Japan 2022
https://www.youtube.com/watch?v=O2JXUyOBjt8
https://logmi.jp/events/3177



## 【実践編】公式リファレンスを見ながら設計・開発する
ディベロッパーガイド
https://docs.aws.amazon.com/cdk/v2/guide/home.html

CDKのAPIリファレンス
https://docs.aws.amazon.com/cdk/api/v2/docs/aws-construct-library.html

CloudformationのAPIリファレンス
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html

## 【番外編】開発環境を整備する
**Git** 
https://git-scm.com
**git-secrets** 
https://github.com/awslabs/git-secrets
**AWS CLI**
https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html
**VSCode**
https://code.visualstudio.com/
### ランタイム(TypeScriptの場合)
**Node.js**
https://nodejs.org/en/
~~~AWS CDK Toolkitのインストール
npm install -g aws-cdk
~~~



# その他のリンク集

## AWS公式資料

[CDKの公式サイト](https://docs.aws.amazon.com/cdk/api/v2/)
[Amazon Web Services Japan公式Youtube](https://www.youtube.com/@JPAmazonWebServices/playlists)

### 公式動画

[CloudFormation#1 基礎編](https://www.youtube.com/watch?v=4dyiPsYXG8I&list=PLzWGOASvSx6FIwIC2X1nObr1KcMCBBlqY&index=36)
[CloudFormation DeepDive 編](https://www.youtube.com/watch?v=o4QYVEtTSCg&list=PLzWGOASvSx6FIwIC2X1nObr1KcMCBBlqY&index=9)
[CloudFormation レジストリ編](https://www.youtube.com/watch?v=3-rOuhahaDI&list=PLzWGOASvSx6FIwIC2X1nObr1KcMCBBlqY&index=8)
[CloudFormation よくあるユースケースと質問編](https://www.youtube.com/watch?v=FHFfWMddd-0&list=PLzWGOASvSx6FIwIC2X1nObr1KcMCBBlqY&index=7)
[[AWS Black Belt Online Seminar] AWS Cloud Development Kit (CDK) 資料及び QA 公開](
https://aws.amazon.com/jp/blogs/news/webinar-bb-aws-cloud-development-kit-cdk-2020/)

### 公式ブログ

[AWS CDK 開発者プレビュー](https://aws.amazon.com/jp/blogs/news/aws-cdk-developer-preview/)

[Construct Hub と AWS Cloud Development Kit Version 2 の一般提供を発表](https://aws.amazon.com/jp/blogs/news/announcing-general-availability-of-construct-hub-and-aws-cloud-development-kit-version-2/)

[[AWS Summit Online Japan 2022 Developer Zone]「AWS CDK で CI/CD つきの Web アプリを作ろう！開発風景を Live Coding でお届けします」オンデマンド配信と QA 公開](
https://aws.amazon.com/jp/blogs/news/aws-summit-2022-cdk-livecoding/)

[CDK Aspectsを利用してベストプラクティスに従ったインフラストラクチャを構築する](https://aws.amazon.com/jp/blogs/news/align-with-best-practices-while-creating-infrastructure-using-cdk-aspects/#:~:text=CDK%20Aspects%20%E3%81%AF%E3%80%81%E7%89%B9%E5%AE%9A%E3%81%AE%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%97%E5%86%85%E3%81%AE%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%20construct%20%E3%81%AB%E5%AF%BE%E3%81%97%E3%81%A6%E5%85%B1%E9%80%9A%E3%81%AE%E6%93%8D%E4%BD%9C%E3%82%92%E9%81%A9%E7%94%A8%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%A7%E3%81%99%E3%80%82%20Aspect,%E3%81%AF%E3%80%81construct%20%E3%81%AE%E7%8A%B6%E6%85%8B%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E4%BD%95%E3%82%89%E3%81%8B%E3%81%AE%E6%A4%9C%E8%A8%BC%20%28%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E3%83%90%E3%82%B1%E3%83%83%E3%83%88%E3%81%8C%E6%9A%97%E5%8F%B7%E5%8C%96%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E4%BF%9D%E8%A8%BC%E3%81%99%E3%82%8B%E3%80%81%E3%81%AA%E3%81%A9%29%20%E3%82%92%E8%A1%8C%E3%81%AA%E3%81%A3%E3%81%9F%E3%82%8A%E3%80%81%E3%82%BF%E3%82%B0%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E3%81%AA%E3%81%A9%20construct%20%E3%81%AB%E5%AF%BE%E3%81%99%E3%82%8B%E4%BF%AE%E6%AD%A3%E3%82%92%E8%A1%8C%E3%81%AA%E3%81%86%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82)


## 参考資料、おすすめ記事
似たような記事で、こっちのほうが見やすいかもです。たまたま同じ日に更新されていてびっくりしました。

https://qiita.com/yoyoyo_pg/items/e7e85839341d16006b87


CDK開発の注意点をまとめてみました。是非読んでみてください。

https://qiita.com/Figure_Skate_IT/items/8561c3e65f4f01e6cca2





命名規則について参考になった記事です。

https://dev.classmethod.jp/articles/aws-cdk-resource-name-rule-logic/


CDKのテストに関して参考になった記事です。

https://dev.classmethod.jp/articles/cdk-practice-3-test/

https://qiita.com/y_matsuo_/items/bc27db7942179ffb5825

https://speakerdeck.com/mhrtech/cdkconjp2023