【リクリエイトデプロイ】

Recreateデプロイ とは?

💡 お店を一度完全閉店してからリニューアルオープンする改装工事方式
📌 このページのポイント
Recreateデプロイ:全停止してから新バージョン起動 時間 → ① 旧バージョン稼働中 ② 停止中 ③ 新バージョン稼働中 v1.0(旧) 稼働中 ✓ ダウンタイム サービス停止中 ✗ v2.0(新) 稼働中 ✓ 👤 応答あり 👤 503エラー 👤 応答あり Recreateの特徴 シンプルな手順 ダウンタイムあり 新旧が混在しないため安全 他のデプロイ方式 Rolling Update:段階的に切替 Blue-Green:瞬時に切替 いずれもダウンタイムなし KubernetesのDeploymentでstrategy: Recreateと設定するだけで使える
Recreateデプロイ:最もシンプルだがダウンタイムが発生するデプロイ方式
ひよこ ひよこ

Recreateデプロイってどういうやり方なの?

ペンギン先生 ペンギン先生

今動いている旧バージョンのサービスをすべて停止してから、新バージョンを起動するシンプルな方法だよ。停止と起動の間はサービスが使えない「ダウンタイム」が発生するんだ。

ひよこ ひよこ

それって困らないの?

ペンギン先生 ペンギン先生

本番サービスには辛いね。でもメンテナンス時間を設定できる社内ツールや夜間バッチシステム、ダウンタイムが許容できる開発・検証環境なら問題ないよ。

ひよこ ひよこ

なぜわざわざ全部止める必要があるの?

ペンギン先生 ペンギン先生

データベーススキーマを大きく変えるような、旧バージョンと新バージョンが共存できない変更のときに必要なんだよ。ローリングアップデートだと新旧が混在する期間が生まれて矛盾が起きることがあるんだ。

ひよこ ひよこ

ブルーグリーンデプロイとはどう違うの?

ペンギン先生 ペンギン先生

ブルーグリーンデプロイは新環境を事前に用意してからトラフィックを瞬時に切り替えるので、ダウンタイムがないんだよ。ただしインフラを2倍用意する必要があってコストがかかるんだ。

ひよこ ひよこ

Kubernetesだとどう設定するの?

ペンギン先生 ペンギン先生

DeploymentのstrategyフィールドをRecreateにするだけだよ。デフォルトのRollingUpdateから変えるだけのシンプルな設定なんだ。手順の単純さがRecreateデプロイの最大の利点だね。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Recreateデプロイ」って出てきたら「一度全停止してから新バージョンを起動するデプロイ方式」と思えればだいたいOK!
📖 おまけ:英語の意味
「Recreate Deployment」 = 再作成デプロイ
💬 「recreate」は「再作成する」という意味だよ。既存の環境を一度壊して(停止して)新しく作り直すことからこの名前がついているんだ
← 用語集にもどる