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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Shoma Kobayashi
September 16, 2025
570
1
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
0
76
AWS初心者の私が語る_CDKのココがイイ_.pdf
shomakobayashi
0
6
Featured
See All Featured
The SEO Collaboration Effect
kristinabergwall1
1
490
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
The browser strikes back
jonoalderson
0
1.3k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
340
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
320
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
From π to Pie charts
rasagy
0
220
Art, The Web, and Tiny UX
lynnandtonic
304
22k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
250
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/ 細かい制御が可能だが、抽象 化はされない。名前の接頭辞 に「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⽂字🥺 書ききれない! grantRead で必要なIAMポリシーを⾃動作成
L2 コンストラクトが良い理由 1 7 • 開発効率とセキュリティの両⾯で⼤きなメリットがあるため、 CDK化をする際には、最初に検討すべき選択肢となる
L1 コンストラクト 1 8 • 抽象化はおこなわず、AWS CloudFormation リソースに直接 マッピングされる •
CloudFormationリソースと1対1で対応しており、細かい制御 が可能 • こんな時に使う ◦ 細かいカスタマイズが必要な場合 ◦ L2で未対応の新しいプロパティを使いたい場合 ⚠ コード量が多くなりがち ⚠ AWSベストプラクティスは⾃分で実装する必要
カスタムリソース 1 9 • ⾃分でLambda関数を実装せずに、AWS APIを宣⾔的に呼び出 し、⼿動設定をコード化して⼀元管理できる • こんなときに使う ◦
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での実 装を⽬指す上では最終⼿段となる
実際にCDK化を⾏った際のフロー
SecurityHubコントロール [SSM.7] の対応 • 要件 ◦ Security Hubの新コントロール [SSM.7] のアラート対応
◦ SSMドキュメントのパブリック共有ブロックを有効化する ことで、 [SSM.7] のアラートを 解消する
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コ マンドで設定変更が可能! ✅
SecurityHubコントロール [SSM.7] の対応 • L2、L1から実装可能性を検討し、最後にカスタムリソースで実装 • このフローに則ることで、CDKのメリットを最⼤限に活かしつつ、 AWSリソースをコードで管理していくことが可能になるのかなと思い ます
まとめ 2 6 • AWS の実装をCDK化したい場合は、以下の順で実装可能性 を検討していくと良い! ◦ L2 コンストラクト
◦ L1 コンストラクト ◦ カスタムリソース ◦ CLI‧マネコン
ご清聴ありがとうございました