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

消えない 動かない 効かない

 消えない 動かない 効かない

Avatar for Yuuki Yamashita

Yuuki Yamashita

September 08, 2026

More Decks by Yuuki Yamashita

Other Decks in Technology

Transcript

  1. JAWS-UG CDK 支部 #26 CDKに関する真夏のLT大会 消えない 動かない 自分専用 YouTube 風動画配信アプリ

    mytube を CDK + Next.js on ECS Fargate で作って踏んだ 3 つの罠 ̶ CDK を実務で使うと踏むであろう、あの罠たち ̶ 2026年9月8日 山下 祐樹 効かない
  2. TODAY 'S AGENDA 今日話す 3 つのこと I II III 消えない

    動かない 効かない RemovalPolicy.RETAIN の罠 arm64 / x86̲64 アーキテクチャ不一致 CloudFront 署名付き Cookie の落とし穴 S3 / DynamoDB / Cognito ECS Fargate / circuitBreaker canned policy / Public Key
  3. mytube 自分専用 YouTube 風 動画配信アプリ AWS CDK (TypeScript) + Next.js

    on ECS Fargate 動画アップロード → 変換 → 配信を自前で JAWS-UG CDK 支部 #26
  4. #1 消えない RemovalPolicy.RETAIN → リソースが残り続ける TypeScript CDK スタック定義 // S3

    バケット、 DynamoDB 、 Cognito User Pool に設定 removalPolicy: RemovalPolicy.RETAIN, // ↑ スタック削除後もリソースが残り続ける スタック削除後も S3 / DynamoDB / Cognito User Pool が生き残る ROLLBACK̲COMPLETE スタックが残ったまま再デプロイしようとするとエラー
  5. ROLLBACK̲COMPLETE スタックは手動削除してから 再デプロイ delete-stack → cdk deploy • ROLLBACK̲COMPLETE スタックが残っていると

    cdk deploy はエラーになる • RemovalPolicy.RETAIN を設定したリソースはスタック削除後も残り続ける • まずコンソール / CLI でスタックの状態を確認してから進める
  6. Apple Silicon (arm64) ビルド × Fargate (x86̲64) = exec format

    error 原因① CDK コード TypeScript // taskDefinition に追加 runtimePlatform: { cpuArchitecture: ecs.CpuArchitecture.X86_64, // ← 明示必須 operatingSystemFamily: ecs.OperatingSystemFamily.LINUX, }, runtimePlatform でアーキテクチャを明示する
  7. 40 分 circuitBreaker を無効にすると 失敗に気づかない circuitBreaker: { enable: true, rollback:

    true } を必ず設定する デプロイ失敗はすぐ検知できる状態にしておく
  8. canned policy はワイルドカード URL に効かない custom policy に切り替えるだけで解決 NG canned

    policy — ワイルドカード URL に効かない TypeScript // ❌ canned policy — ワイルドカード URL に効かない cf.createSignedCookiesForCannedPolicy( url, keyPairId, privateKey }) // ✅ custom policy — ワイルドカード OK cf.createSignedCookiesForCustomPolicy({ policy: JSON.stringify(customPolicy), keyPairId, privateKey }) OK custom policy — JSON.stringify(customPolicy) を policy に渡す custom policy を使う
  9. 同一アカウント内の別プロジェクトの Public Key を掴みかけた Public Key は名前で管理しない ARN または CDK

    の参照で確実に特定する 名前の類似は思わぬ混乱を招く ̶ 参照は明示的に
  10. RECAP I 3 つの罠 II III RemovalPolicy.RETAIN exec format error

    canned policy ROLLBACK̲COMPLETE スタックは 手動削除してから再デプロイ runtimePlatform を明示し circuitBreaker を有効に 署名付き Cookie は custom policy を使う S3 / DynamoDB / Cognito arm64 → X86̲64 / ECS Fargate CloudFront / Public Key 管理 消えない 動かない 効かない