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
76
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
570
AWS初心者の私が語る_CDKのココがイイ_.pdf
shomakobayashi
0
6
Featured
See All Featured
Writing Fast Ruby
sferik
630
63k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Amusing Abliteration
ianozsvald
1
210
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
540
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
780
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
740
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Crafting Experiences
bethany
1
190
How STYLIGHT went responsive
nonsquared
100
6.2k
Are puppies a ranking factor?
jonoalderson
1
3.6k
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‧マネコン
ご清聴ありがとうございました