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

AWS CDK ExpressモードとCI/CDの組み合わせ

AWS CDK ExpressモードとCI/CDの組み合わせ

Avatar for Satoshi Kaneyasu

Satoshi Kaneyasu

July 08, 2026

More Decks by Satoshi Kaneyasu

Other Decks in Programming

Transcript

  1. 2 氏名:兼安 聡 所属:株式会社サーバーワークス アプリケーションサービス部 在住:広島(フルリモート) 担当:DevOps、技術支援、PM、SM SNS(X):@satoshi256kbyte • 2026

    Japan AWS Ambassadors • 2024-26 Japan AWS Top Engineers • 2024-26 Japan AWS All Certifications Engineers • 2025-26 AWS Community Builders • 認定スクラムマスター • PMP Speaker Introduction
  2. 4 AWS CDK Express モードとは ⚫ 2026年6月末リリースの新機能 ⚫ スタック操作の完了判定を設定適用時点に前倒し ⚫

    安定化チェックをバックグラウンドに移動させ、 デプロイ時間を最大4倍高速化 ⚫ テンプレート変更は一切不要 ⚫ 同じ CDK コードをフラグ違いで流すだけ # 通常モード cdk deploy --all # Express モード(追加するのは --express だけ) cdk deploy --all --express
  3. 6 早速検証してみます ⚫ 検証環境  AWS CDK (TypeScript)  CDK

    CLI 2.1129.0 / aws-cdk-lib 2.260.0  cdk-nag / ESLint / Prettier / Jest 入り  3 回計測の平均で比較 ⚫ cdk deployコマンドが返ってくるまでの時間で計測 ⚫ 検証対象リソース カテゴリ サービス 公式ブログで効果大 SQS+DLQ、VPC内Lambda、SNS、SSM コンテナ Web 構成 ALB、ECS Fargate、RDS
  4. 7 検証結果 – サービス別 サービス 通常 Express 短縮率 Amazon SQS

    + DLQ 83秒 57秒 32% AWS Lambda with Amazon VPC 190秒 160秒 16% Amazon SNS / AWS Systems Manager (SSM) 17秒 16秒 0% Application Load Balancer 209秒 211秒 0% Amazon ECS on Fargate 403秒 94秒 77% Amazon RDS 454秒 435秒 4%
  5. 8 検証結果 – 全部入り サービス 通常 Express 短縮率 新規作成 451秒

    455秒 ≒0% 一旦全部デプロイした後の差分デプロイ サービス 通常 Express 短縮率 Amazon SQS + DLQ 追加 183秒 70秒 62% 全部入りを新規デプロイした
  6. 10 AWS CDK Express モードと CI/CD パイプライン パターン 仕組み 特徴

    GitHub Actions Only GitHub Actions で直接 cdk deploy 最もシンプル AWS CodePipeline V2 Only AWS 内で完結 ブランチ別にパイプライン Hybrid GitHub Actions → S3 → AWS CodePipeline セキュリティ重視
  7. 11 GitHub Actions + AWS CodePipeline(Hybrid) パターン 仕組み 特徴 GitHub

    Actions Only Actions で直接 cdk deploy 最もシンプル CodePipeline V2 Only AWS 内で完結 ブランチ別にパイプライン Hybrid Actions → S3 → CodePipeline セキュリティ重視 GitHub Actions側 # _trigger-pipeline.yml - run: zip -r source.zip . -x '.git/*' - run: aws s3 cp source.zip s3://$BUCKET/source/latest.zip - run: | aws codepipeline start-pipeline-execution \ --name $PIPELINE_NAME \ --variables \ name=prefix,value=${{ inputs.prefix }} \ name=express,value=${{ inputs.express }}
  8. 12 GitHub Actions + AWS CodePipeline(Hybrid) パターン 仕組み 特徴 GitHub

    Actions Only Actions で直接 cdk deploy 最もシンプル CodePipeline V2 Only AWS 内で完結 ブランチ別にパイプライン Hybrid Actions → S3 → CodePipeline セキュリティ重視 AWS CodePipeline から呼ぶ AWS CodeBuildのbuildspec # buildspec(Pipeline Variables で mode を切り替え) if [ "$EXPRESS" = "true" ]; then EXPRESS_FLAG="--express" else EXPRESS_FLAG="" fi npx cdk deploy --all \ --app "npx ts-node bin/cicd-app.ts" \ -c prefix=$PREFIX \ --require-approval never $EXPRESS_FLAG
  9. 13 なぜ Hybrid という面倒な構成を取るのか? ⚫ GitHub Actions OIDC のリスク 

    GitHub Actions Only パターンでは、 OIDC ロールに CDK デプロイ権限 (CloudFormation, IAM, S3 等)を付与する  → GitHub 側でトークンが漏洩した場合、 AWS アカウント全体に影響が及ぶ ⚫ 昨今の GitHub セキュリティ事故  2024: tj-actions/changed-files サプライチェーン攻撃  Actions の secrets が外部に流出  2025: GitHub Actions artifacts からの OIDC トークン漏洩  ワークフロー定義を改ざんされるリスクも  「GitHub を信頼境界の外に置く」設計が求められる
  10. 14 まとめ ⚫ AWS CDK Expressモードは開発プロセスの効率化に寄与すると思う  ただし、スタックの構成により効果に差が出る  効果が実感しやすいのは更新差分の場合

    ⚫ 予算・スケジュールなどが許すなら、 セキュリティ的にはCIはGitHub Actions、 CDはAWS(というかデプロイ先のクラウド)で完結する方が望ましい
  11. 15 参考 ⚫ Accelerate your infrastructure deployments by up to

    4x with AWS CloudFormation Express mode ⚫ サーバーワークスエンジニアブログ - 早速お試し、新機能のAWS CDK のExpressモードはどれぐらい速いのか? ⚫ 検証コード  https://github.com/satoshi256kbyte/cdk-express-mode