Share
Embed
AWS CDK ExpressモードとCI/CDの組み合わせ
Satoshi Kaneyasu
July 15, 2026
Transcript
17 slides
-
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 -
1. AWS CDK Express モードとは 2. 実測ベンチマーク結果 3. Express モードの使いどころ
4. AWS CDK Express モードと CI/CD パイプライン 目次 -
4 AWS CDK Express モードとは ⚫ 2026年6月末リリースの新機能 ⚫ スタック操作の完了判定を設定適用時点に前倒し ⚫
安定化チェックをバックグラウンドに移動させ、 デプロイ時間を最大4倍高速化 ⚫ テンプレート変更は一切不要 ⚫ 同じ CDK コードをフラグ違いで流すだけ # 通常モード cdk deploy --all # Express モード(追加するのは --express だけ) cdk deploy --all --express -
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 -
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% -
8 検証結果 – 全部入り サービス 通常 Express 短縮率 新規作成 451秒
455秒 ≒0% 一旦全部デプロイした後の差分デプロイ サービス 通常 Express 短縮率 Amazon SQS + DLQ 追加 183秒 70秒 62% 全部入りを新規デプロイした -
9 所感 ⚫ 全部入りスタックを新規デプロイすると効果が実感できない 処理が長くExpressモードの効果が薄いサービスに全体処理時間が 引っ張られてしまう ⚫ 一度デプロイした後の更新=差分デプロイなら効果が実感できる
開発プロセスにおいて、差分デプロイは高頻度で起きるはず そう考えると開発プロセス全体の効率化に効果があるはず -
10 AWS CDK Expressモードの使いどころ ⚫ 開発・検証環境での高速イテレーション ⚫ 初回デプロイ後の細かな変更の繰り返し ⚫ 本番環境に適用するのは現状避けたほうが良さげ
ロールバック無効のリスク 完了 ≠ トラフィック準備完了 -
11 AWS CDK Express モードと CI/CD パイプライン パターン 仕組み 特徴
GitHub Actions Only GitHub Actions で直接 cdk deploy 最もシンプル AWS CodePipeline V2 Only AWS 内で完結 ブランチ別にパイプライン Hybrid GitHub Actions → S3 → AWS CodePipeline V2 セキュリティ重視 ⚫ どのCI/CDパイプラインでもデプロイ対象に応じて、 CDK Express モードの有効/無効は切り替えられる ⚫ 個人的には予算とスケジュールが許すならHybridを選びたい -
12 なぜ Hybrid という面倒な構成を取るのか? ⚫ GitHub Actions OIDC のリスク
GitHub Actions Only パターンでは、 OIDC ロールに CDK デプロイ権限 (CloudFormation, IAM, S3 等)を付与する → GitHub 側でトークンが漏洩した場合、 AWS アカウント全体に影響が及ぶ ⚫ 昨年から GitHub リポジトリのセキュリティ事故が散見される 「GitHub を信頼境界の外に置く」設計が望ましい -
13 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 }} AWS CodePipeline V2(V1は不可)を起動する時に、 --variableseでパラメータを渡す パラメータでExpressモードの要否を渡すイメージ -
14 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 -
15 まとめ ⚫ AWS CDK Expressモードは開発プロセスの効率化に寄与すると思う ただし、スタックの構成により効果に差が出る 効果が実感しやすいのは差分デプロイの場合
⚫ 予算・スケジュールなどが許すなら、 セキュリティ的にはCIはGitHub Actions、 CDはAWS(というかデプロイ先のクラウド)で完結する方が望ましい -
16 参考 ⚫ Accelerate your infrastructure deployments by up to
4x with AWS CloudFormation Express mode ⚫ サーバーワークスエンジニアブログ - 早速お試し、新機能のAWS CDK のExpressモードはどれぐらい速いのか?