0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CloudWatch Synthetics Canary の DryRun 機能でランタイムバージョンを上げてみた

0
Last updated at Posted at 2026-02-06

CloudWatch Synthetics Canary を運用していると、
「ランタイム(Node.js / Puppeteer)のバージョンを上げたいけど、
本番 Canary をいきなり更新するのは怖い」
という場面に遭遇します。

そんなときに使えるのが DryRun 機能です。

この記事では、
DryRun を使って Canary のランタイムバージョンを安全に更新してみた記録をまとめます。


前提

  • CloudWatch Synthetics Canary を利用中
  • ランタイムを旧バージョン → 新バージョンに上げたい
  • 本番 Canary を壊さず事前検証したい

Canary の「DryRun」とは?

DryRun は一言でいうと、

「設定変更を保存せずに、その設定で Canary を一度だけ実行できる機能」

です。

特徴:

  • Canary 本体の設定は変更されない
  • 実行結果(成功 / 失敗・ログ)は確認できる
  • ランタイムやコード変更の事前検証に最適

今回やりたいこと

  • 既存 Canary のランタイムをアップグレード
  • 本番反映前に DryRun で動作確認

例:

syn-nodejs-puppeteer-3.9 → syn-nodejs-puppeteer-6.0


実施手順

1. Canary の編集画面を開く

AWS コンソールから以下へ遷移:

CloudWatch → Synthetics → Canaries

Canary 一覧画面から、
対象 Canary の「Edit」をクリックする。


2. ランタイムバージョンを変更

  • Runtime version を新しいものに変更
  • Canary スクリプト自体は変更しない

この時点では まだ Update は押さない


3. DryRun を実行する

ランタイムを変更した状態で、
画面 右上 にある

Start dry run

ボタンをクリックする。

すると:

  • 変更後の設定(新ランタイム)を使って Canary が1回だけ実行される
  • Canary の設定は一切保存されない

DryRun 実行結果の確認

DryRun 完了後、以下を確認する。

成功した場合

  • Canary run status が Succeeded
  • スクリーンショット / HAR / ログが正常
  • 例外やエラーが出ていない

→ このランタイムバージョンで問題なし


失敗した場合

よくあるエラー例:

  • Node.js バージョン差分による例外
  • Puppeteer API の変更
  • 非同期処理の挙動差分

例:

TypeError: page.waitForTimeout is not a function

→ DryRun なので本番 Canary への影響はゼロ


DryRun 成功後にやること(重要)

DryRun が成功しても、
この時点では Canary のランタイムはまだ更新されていない。

次に行うのは以下:

  • Canary 一覧画面に戻る

  • 対象 Canary の設定変更内容を確認

    Update

ボタンをクリックする

これにより、
実際に Canary のランタイムバージョンが更新される。


DryRun が便利な理由

1. 本番 Canary を壊さない

  • 設定は一切保存されない
  • 失敗してもアラームや定期実行に影響しない

2. ランタイム差分検証に最適

  • Node.js / Puppeteer の互換性チェック
  • deprecated API の事前検出が可能

3. Canary を複製せずに検証できる

  • 同一 Canary / 同一環境で検証可能
  • 管理対象が増えない

注意点

  • DryRun の実行結果は履歴としては残らない
  • 定期実行や CloudWatch Alarm とは連動しない
  • あくまで一時的な検証用

検証が終わったら、
必ず Update を押して反映する必要がある。


実際に使ってみた所感

  • いきなりランタイム更新する怖さがなくなった
  • Puppeteer の破壊的変更にすぐ気づけた
  • Canary を複製する必要がなく、運用が楽

Canary のランタイムアップデート前には、
必ず DryRun を挟むべきだと感じました。


まとめ

  • CloudWatch Synthetics Canary の DryRun は
    • 設定変更を保存せずに
    • 実行だけを試せる安全装置
  • Start dry run は編集状態で実行
  • DryRun 成功後、一覧画面の Update で初めて反映される

CloudWatch Synthetics を運用しているなら、
DryRun を使わない理由はない、というのが結論です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?