【すてーじんぐかんきょう】

ステージング環境 とは?

💡 本番前のリハーサル、ここで最終チェック
📌 このページのポイント
開発環境 Development コード作成 ユニットテスト ステージング Staging 結合テスト 本番同等環境 本番環境 Production 実ユーザー 安定稼働 検証 承認 デプロイメントパイプライン 本番のミラー構成 各環境間のゲートでテスト・承認を経てプロモーション
デプロイメント環境の構成
ひよこ ひよこ

開発環境ではちゃんと動いてたのに、本番にデプロイしたら動かなかった…。なんで?

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

開発環境と本番環境の差異が原因だね。それを防ぐのがステージング環境だよ。本番と同じ構成のテスト環境で、デプロイ前に最終確認するんだ。

ひよこ ひよこ

開発環境でテストするだけじゃダメなの?

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

開発環境はローカルPCだったり簡易的な構成だったりするでしょ。本番ではロードバランサーがあったり、データ量が全然違ったりする。ステージング環境はそこを本番に合わせるから、環境差異のバグを事前に潰せるんだ。

ひよこ ひよこ

じゃあ、どうやってステージング環境を運用するの?

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

CI/CDパイプラインに組み込むのが定番だよ。コードをプッシュしたら自動でステージングにデプロイされて、テストが通ったら本番へ、という流れだね。手動で本番デプロイするより格段に安全だよ。

ひよこ ひよこ

ステージング環境って本番と全く同じにしないとダメなの?

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

理想は完全に同じだけど、コストの問題で妥協することも多いよ。サーバスペックは本番の半分にするとか、データは本番のサブセットにするとか。ただし「OS・ミドルウェアのバージョン」と「ネットワーク構成」は必ず一致させるべき。ここが違うと環境差異のバグを見逃すことになるからね。

ひよこ ひよこ

ステージング環境のデータってどうするの?本番のデータを使うの?

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

本番データをそのまま使うのは個人情報の観点でNGなことが多い。マスキング(名前をダミーに置換、メールアドレスを匿名化)した上で投入するのが一般的だよ。あるいはFaker等のライブラリでリアルっぽい偽データを生成する方法もある。本番データのコピーは漏洩リスクがあるから、アクセス権限の管理も厳しくする必要があるんだ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
ステージング環境は、本番と同じ構成で最終テストを行うための環境です。CI/CDパイプラインに組み込んで、ステージングでの検証を通過しないと本番にデプロイできない仕組みにするのがベストプラクティスです。開発環境では見つからない問題を本番前にキャッチできます。
📖 おまけ:英語の意味
「Staging Environment」 = 準備段階の環境
💬 stagingは舞台用語で「上演準備」の意味。本番(production)の前の準備段階であることを表す
← 用語集にもどる