Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS CDKでリソースを作成する際の判断フロー
Search
Shoma Kobayashi
September 16, 2025
82
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS CDKでリソースを作成する際の判断フロー
Shoma Kobayashi
September 16, 2025
More Decks by Shoma Kobayashi
See All by Shoma Kobayashi
AWS CDKでリソースを作成する際の 判断フロー
shomakobayashi
1
630
AWS初心者の私が語る_CDKのココがイイ_.pdf
shomakobayashi
0
9
Featured
See All Featured
エンジニアに許された特別な時間の終わり
watany
108
250k
Test your architecture with Archunit
thirion
2
2.4k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Designing Powerful Visuals for Engaging Learning
tmiket
1
510
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
310
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
450
Transcript
みんなのAWS CDK事情⼤公開スペシャル#3 製造ビジネステクノロジー部 コネクティッドカーチーム ⼩林 翔⾺ AWS CDKでリソースを作成する際の 判断フロー
⾃⼰紹介 2 • ⾼校卒業 • トラックの運ちゃん • ⾼知県で漁師 • SES
◦ ビッグデータ分析基盤開発 • ⾃社開発 ◦ 労務管理WEBアプリケーション開発 • 2025.03~ クラスメソッド⼊社 ◦ ⾃動⾞のコネクティッドサービス開発 ▪ サーバーサイドエンジニア • 最近の出来事 ◦ 茨城県の⿓神バンジーで100mバンジー ◦ クラスメソッドベトナムオフィスに突撃 • 部署 ◦ 製造ビジネステクノロジー部 コネクティッドカーチーム • 名前 ◦ ⼩林 翔⾺ • 住まい ◦ 東京 • 2025 Japan All AWS Certifications Engineers
今⽇お話しすること 3 1. 背景(きっかけ) 2. 結論 3. CDK化の判断フロー 4. 実践例:Security
Hub の新コントロールをCDKで実装 5. まとめ
前提 4 • AWS のリソースを CDK (TypeScript) で実装したい⽅
Security Hub の新コントロール [SSM.7] がリリース!
きっかけ 6 • AWS Security Hub に新しいコントロール [SSM.7] がリリースされた •
これにより、Security Hub から MEDIUM のアラートが発⽣ • アラートを抑制するためにリソースを修正する⽅針となった https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/doc-history.html
いつも通り L2 コンストラクトで実装しよう😎
きっかけ 8 • 壁にぶつかる ◦ 第⼀の困惑 ▪ ドキュメントを確認 • 「あれ?L2に該当するプロパティがない...」
◦ 第⼆の困惑 ▪ 「さらに調べると...L1でも⾒つからない。どうしよう...?」
きっかけ 9 • 壁にぶつかる ◦ 第⼀の困惑 ▪ ドキュメントを確認 • 「あれ?L2に該当するプロパティがない...」
◦ 第⼆の困惑 ▪ 「さらに調べると...L1でも⾒つからない。どうしよう...?」 困った....😔
先輩からのアドバイス 「AWS の実装をCDK化する際の考え⽅があるんやで😎」
結論 1 1 • AWS の実装をCDK化したい場合は、以下の順で実装可能性を検 討していくと良い ◦ L2 コンストラクト
◦ L1 コンストラクト ◦ カスタムリソース ◦ CLI‧マネコン L2 コンストラクト L1 コンストラクト カスタムリソース CLI ‧マネコン 上から順に 検討してい くと良い
なぜこの順番なのか?🧐
CDK のレイヤーについておさらい 1 3 https://cloud.nri-net.com/reports/aws-cdk-report-2404/ CloudFormationリソースと 1:1で対応していて、名前の接 頭辞に「Cfn」が利⽤される L1 Constructにデフォルト
値や関数を加えて抽象化し たもの 複数のAWSリソースを組み 合わせてたもの((API Gateway-Lambda-Dynamo DB等))
L2 コンストラクトが良い理由 1 4 • 適切なデフォルトプロパティ設定、ベストプラクティスのセ キュリティポリシーが設定されている • ⾼度な抽象化が提供されており、少ないコードで実装可能
ベストプラクティスの設定がされている 1 5 S3 バケットを L2 コンストラクトで作成 S3バケットをL2コンストラクトでインスタ ンス化して作成したら、⾃動でパブリック アクセスブロックが付与される!😎
S3 バケットを L1 コンストラクトで作成 パブリックアクセス のブロックは明⽰的 に記載する必要があ る🥺
• ⾼度な抽象化が提供されており、少ないコードで実装可能 1 6 S3 バケット‧Lambda を L1 コンストラクトで作成 S3
バケット‧Lambda を L2 コンストラクトで作成 600⽂字 1688⽂字🥺 書ききれない!
L2 コンストラクトが良い理由 1 7 • 適切なデフォルトプロパティ設定、ベストプラクティスのセ キュリティポリシーが設定されている • ⾼度な抽象化が提供されており、少ないコードで実装可能 •
ヘルパーメソッドにより簡単にプロパティ、アクセス許可を定 義できる
L1 コンストラクト 1 8 • 抽象化はおこなわず、AWS CloudFormation リソースに直接 マッピングされる •
CloudFormationリソースと1対1で対応しており、より細かい 制御が可能 • こんな時に使う ◦ 細かいカスタマイズが必要な場合 ◦ L2で未対応の新しいプロパティを使いたい場合 ⚠ コード量が多くなりがち ⚠ AWSベストプラクティスは⾃分で実装する必要
カスタムリソース 1 9 • Lambda関数を⾃分で書かずにAWS APIを宣⾔的に呼び出し IaCで管理できない設定をコード化して⼀元管理できる • こんなときに使う ◦
CDKでサポートされていないAWSサービスや複雑なロジッ クが必要な場合 ⚠ 実⾏タイミング:onCreate/onUpdate/onDelete を適切に選択 ⚠ Lambda実⾏時間制限:最⼤15分でタイムアウト
カスタムリソースについての詳細はこちらを 2 0 https://www.youtube.com/watch?v=KgA41_aZ9o0 morimorikochanさん https://dev.classmethod.jp/articles/shoma-security -hub-control-ssm7-block-public-sharing-settings-en abled-with-custom-resource/
CLI‧マネジメントコンソール 2 1 • CDKでの⾃動化が困難、または⼀時的な作業の場合の最終⼿段 として⼿動操作を検討する ⚠ 『再現性の低下』や『設定ミスのリスク』があるためCDKでの実 装を⽬指す上では最終⼿段となる
実践におこなったフロー
SecurityHubコントロール [SSM.7] の対応 • 要件 ◦ SSMドキュメントのパブリック共有ブロックを有効化し、 Security Hub [SSM.7]
コントロールを PASS する ◦ 可能な限り CDK で実装する
SecurityHubコントロール [SSM.7] の対応 • 実践におこなったCDK化のフロー L2 コンストラクトの調査 方法 APIリファレンス等でSSM関連の L2コンストラクトを確認
結果 パブリック共有ブロック設定のプ ロパティが見つからない ❌ Step 1 Step 2 Step 3 L1 コンストラクトの調査 方法 APIリファレンス等でSSM関連の L1コンストラクトを確認 結果 パブリック共有ブロック設定のプ ロパティが見つからない ❌ カスタムリソース の調査 方法 AWS CLIドキュメントでSSM関連の APIコマンドを調査 結果 aws ssm update-service-settingコ マンドで設定変更が可能! ✅
まとめ 2 5 • AWS の実装をCDK化したい場合は、以下の順で実装可能性 を検討していくと良い! ◦ L2 コンストラクト
◦ L1 コンストラクト ◦ カスタムリソース ◦ CLI‧マネコン
ご清聴ありがとうございました