Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS CDKでリソースを作成する際の 判断フロー

Avatar for Shoma Kobayashi Shoma Kobayashi
September 16, 2025
38

AWS CDKでリソースを作成する際の 判断フロー

Avatar for Shoma Kobayashi

Shoma Kobayashi

September 16, 2025
Tweet

Transcript

  1. ⾃⼰紹介 2 • ⾼校卒業 • トラックの運ちゃん • ⾼知県で漁師 • SES

    ◦ ビッグデータ分析基盤開発 • ⾃社開発 ◦ 労務管理WEBアプリケーション開発 • 2025.03~ クラスメソッド⼊社  ◦ ⾃動⾞のコネクティッドサービス開発 ▪ サーバーサイドエンジニア • 最近の出来事 ◦ 茨城県の⿓神バンジーで100mバンジー ◦ クラスメソッドベトナムオフィスに突撃 • 部署 ◦ 製造ビジネステクノロジー部 コネクティッドカーチーム • 名前 ◦ ⼩林 翔⾺ • 住まい ◦ 東京 • 2025 Japan All AWS Certifications Engineers
  2. きっかけ 6 • AWS Security Hub に新しいコントロール [SSM.7] がリリースされた •

    これにより、Security Hub から MEDIUM のアラートが発⽣ • アラートを抑制するためにリソースを修正する⽅針となった https://docs.aws.amazon.com/ja_jp/securityhub/latest/userguide/doc-history.html
  3. きっかけ 8 • 壁にぶつかる ◦ 第⼀の困惑 ▪ ドキュメントを確認 • 「あれ?L2に該当するプロパティがない...」

    ◦ 第⼆の困惑 ▪ 「さらに調べると...L1でも⾒つからない。どうしよう...?」
  4. きっかけ 9 • 壁にぶつかる ◦ 第⼀の困惑 ▪ ドキュメントを確認 • 「あれ?L2に該当するプロパティがない...」

    ◦ 第⼆の困惑 ▪ 「さらに調べると...L1でも⾒つからない。どうしよう...?」 困った....😔
  5. 結論 1 1 • AWS の実装をCDK化したい場合は、以下の順で実装可能性を検 討していくと良い ◦ L2 コンストラクト

    ◦ L1 コンストラクト ◦ カスタムリソース ◦ CLI‧マネコン L2 コンストラクト L1 コンストラクト カスタムリソース CLI ‧マネコン 上から順に 検討してい くと良い
  6. ⾼度な抽象化が提供されており、少ないコードで実装可能 1 6 S3 バケット‧Lambda を L1 コンストラクトで作成 S3 バケット‧Lambda

    を L2 コンストラクトで作成 600⽂字 1688⽂字🥺 書ききれない! grantRead で必要なIAMポリシーを⾃動作成
  7. L1 コンストラクト 1 8 • 抽象化はおこなわず、AWS CloudFormation リソースに直接 マッピングされる •

    CloudFormationリソースと1対1で対応しており、細かい制御 が可能 • こんな時に使う ◦ 細かいカスタマイズが必要な場合 ◦ L2で未対応の新しいプロパティを使いたい場合 ⚠ コード量が多くなりがち ⚠ AWSベストプラクティスは⾃分で実装する必要
  8. カスタムリソース 1 9 • ⾃分でLambda関数を実装せずに、AWS APIを宣⾔的に呼び出 し、⼿動設定をコード化して⼀元管理できる • こんなときに使う ◦

    CDKでサポートされていないAWSサービスや複雑なロジッ クが必要な場合 ⚠ 実⾏タイミング:onCreate/onUpdate/onDelete を適切に選択 ⚠ Lambda実⾏時間制限:最⼤15分でタイムアウト
  9. SecurityHubコントロール [SSM.7] の対応 • 要件 ◦ Security Hubの新コントロール [SSM.7] のアラート対応

    ◦ SSMドキュメントのパブリック共有ブロックを有効化する ことで、 [SSM.7] のアラートを 解消する
  10. 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コ マンドで設定変更が可能! ✅󰢏