Webサイトや業務システムを外部の制作会社に任せていると、「更新作業は本番で直接やっています」「検証環境はありません」と言われて、それで良いのか判断がつかないことがあります。この記事では、ステージング環境(テスト環境・検証環境・STG環境とも呼ばれます)とは何か、なぜ本番で直接試してはいけないのか、自社に何を用意すればよいのかを、エンジニアではないサイト運営者・発注担当者の方に向けて整理します。
最後に、制作会社にそのまま聞ける確認リストを付けています。
この記事の要点
Photo by Taylor Vick on Unsplash
- ステージング環境は、本番とほぼ同じ構成で作った「リハーサル用の環境」です。更新・改修・診断を、お客様が使っている本番に触れずに試すために使います。
- 本番で直接試すと、サイトの停止、データの書き換え、お客様へのメールの誤送信など、戻せない事故が起こりえます。セキュリティ診断のように外からリクエストを送る作業は、特に本番では行いにくい作業です。
- 「本番相当」とは、ソフトウェアのバージョン・設定・データの形が本番と同じで、本物の個人情報は入っていない状態を指します。
- 小規模なサイトでも、最低限「更新前のバックアップ」と「本番と同じ構成で試せる場所」は持っておくべきです。用意の仕方は規模に合わせて選べます。
ステージング環境とは:本番環境・開発環境との違い
Photo by Glenn Carstens-Peters on Unsplash
システムの世界では、同じサイトを目的ごとに複数の場所で動かします。名前は会社によって違いますが、役割はおおむね次の3つです。
| 環境 | 何をする場所か | 誰が使うか | 中のデータ |
|---|---|---|---|
| 開発環境 | 作りかけのものを動かす作業場 | 開発者 | 開発者が用意した仮のデータ |
| ステージング環境(検証環境) | 本番に出す直前の最終確認をする場所 | 開発者・発注側の確認担当 | 本番と同じ形の、架空またはマスキングしたデータ |
| 本番環境 | お客様が実際に使う場所 | お客様・社員 | 本物のデータ |
飲食店にたとえると、開発環境は試作のキッチン、ステージング環境は開店前のリハーサル、本番環境は営業中のお店です。新しいメニューをいきなり営業中に出さず、リハーサルで手順と味を確かめてから出す。ステージング環境はその「リハーサルの場」にあたります。
「テスト環境」と「ステージング環境」を分けて呼ぶ会社もあります(テスト環境は機能ごとの確認用、ステージング環境は本番と同じ構成での最終確認用、という分け方です)。発注側としては呼び名よりも、「本番と同じ構成で、本番に影響を出さずに試せる場所があるか」を確認すれば十分です。
なぜ本番で直接試してはいけないのか
Photo by Benoit Adam on Unsplash
本番環境で直接作業したときに起きうる事故は、大きく4つに分けられます。
1. サイトが止まる・表示が崩れる
WordPressのようなCMSでは、本体やプラグインの更新で、他のプラグインやテーマとの相性が合わずに画面が崩れたり、エラーで表示されなくなったりすることがあります。WordPress公式の更新手順でも、更新前にバックアップを取り、そのバックアップが実際に使えるか確認すること、プラグインは1つずつ更新して警告やエラーを確認することが勧められています。
本番で直接更新すると、問題が起きた瞬間からお客様にその画面が見えてしまいます。ステージング環境で先に更新しておけば、壊れてもお客様には影響がなく、原因を落ち着いて調べられます。
2. 本物のデータが書き換わる・消える
動作確認のために注文や会員登録を試すと、本番では本物の注文データ・会員データとして残ります。確認後に消すつもりで手作業で削除すると、関係のないデータまで消してしまうことがあります。在庫数や売上集計が狂うと、後から気付いても元に戻すのは困難です。
3. お客様に本物のメール・通知が届く
本番の環境は、本物のメール送信・決済・外部サービスとつながっています。テストのつもりの操作で、お客様に注文確認メールが届く、実際の決済が走る、取引先のシステムにデータが送られるといったことが起こりえます。これは画面の崩れよりも説明が難しい事故です。
4. セキュリティ診断が本物の利用者やデータに影響する
脆弱性診断は、外部から大量のリクエストや想定外の入力を実際に送って、弱点が無いかを確かめる作業です。本番で行うと、診断の負荷でサイトが遅くなったり、入力フォームから診断用のデータが登録されたりするおそれがあります。そのため、診断はステージングなど本番相当の環境で行うのが原則です。シンシアの無料Web脆弱性診断も、原則としてステージング環境など本番相当の環境を対象にしています(提供開始のお知らせ)。
「本番相当」とは何を揃えることか
ステージング環境があっても、本番と中身が違えば、確認したことが本番で再現しません。「本番相当」と言える状態かは、次の5点で確認できます。
| 確認する点 | 本番相当と言える状態 | よくある不足 |
|---|---|---|
| ソフトウェアのバージョン | CMS本体・プラグイン・プログラム言語・データベースのバージョンが本番と同じ | ステージングだけ古いまま放置されている |
| 設定 | サーバーの設定、セキュリティの設定、キャッシュの設定が本番と同じ | 本番だけ後から設定を変えて、ステージングに反映していない |
| データの形 | 本番と同じ項目・同じくらいの件数のデータがある | データがほとんど空で、件数が多いときの動きを確かめられない |
| データの中身 | 本物の個人情報は入れず、架空のデータか、氏名・連絡先を置き換えた(マスキングした)データを使う | 本番データをそのままコピーしている |
| 外部とのつながり | メール・決済・外部サービスは、テスト用の宛先・テスト用の接続先に向いている | 本番と同じデータベースや送信設定を共有している |
特に注意したいのは最後の2つです。
本番データをそのままコピーしたステージング環境は、それ自体が情報漏えいの入口になります。 本番ほど厳重に管理されていないことが多く、外部から誰でもアクセスできる状態のまま放置されることもあるからです。廃止すべきテスト環境に顧客データが残ったまま外部からアクセスされた事案は、実際に起きています(長崎市の宿泊予約システムの事案を扱った記事)。ステージング環境にもパスワードやアクセス元の制限をかけ、使い終わった環境は削除するところまでを運用に入れておく必要があります。
また、本番とデータベースや外部サービスを共有しているステージング環境は、「本番相当」ではなく「本番の一部」です。 そこで試した操作は本番にも影響します。見た目が別のURLでも、裏側が本番とつながっていないかは確認が必要です。
ステージング環境の主な使い道
ステージング環境は、次のような場面で使います。
- 更新・改修の事前確認 — CMSやプラグインの更新、デザインの変更、機能の追加を、本番に出す前に試します。
- 受入テスト(UAT) — 開発会社から納品されたものを、発注側が実際に操作して、要件どおりかを確かめます。受入テストの進め方と検収の判断基準は受入テスト(UAT)の進め方を解説した記事にまとめています。
- 脆弱性診断 — 外部から実際にリクエストを送って、弱点が無いかを確かめます。診断の種類やペネトレーションテストとの違いはペネトレーションテストと脆弱性診断の違いを解説した記事をご覧ください。
- 不具合の再現と調査 — 本番で起きた不具合を、本番を止めずに再現して原因を調べます。
- 緊急のセキュリティ更新の事前確認 — 脆弱性が公表されたとき、修正版を当てても壊れないかを短時間で確かめます。修正を当てるまでの時間が短いほど攻撃を受ける期間も短くなるため、試せる場所があること自体が対応の速さに効きます(参考: パッチ運用の前提を見直す記事)。
ソースコード不要。Webシステムの脆弱性を無料で診断
OSSの診断ツールで脆弱性や設定不備を調べ、技術担当者がレビューした報告書を、契約の締結と必要な情報のご提供から1週間以内にお届けします。原則ステージング環境が対象です。無料診断の内容と申し込み方法を見る →ステージング環境が無い理由と、最低限の用意の仕方
中小企業のWebサイトや業務システムでは、ステージング環境が無いことは珍しくありません。理由として多いのは次のようなものです。
- 「小さなサイトだから要らない」と、作った当初に判断された
- サーバー代や構築費が追加でかかるため、見積の段階で外された
- 作った当初はあったが、本番だけが更新され続け、ステージングが古いまま使えなくなった
- 制作会社が変わり、環境があるかどうかを誰も把握していない
ただ、サイトが小さくても、止まったときの影響や、問い合わせフォーム・会員情報を扱っているかどうかで、必要性は変わります。規模に合わせて、次のような段階で用意できます。
| 段階 | 内容 | 向いているケース |
|---|---|---|
| 最低限 | 更新前に必ずバックアップを取り、戻せることを確認してから作業する | 更新頻度が低く、個人情報を扱わない小さなサイト |
| 簡易 | レンタルサーバーやホスティングのステージング機能で、本番の複製を作って試す(サービスによって提供の有無や仕様が違います。例: Kinsta のステージング環境) | WordPressで作ったコーポレートサイト・オウンドメディア |
| 標準 | 本番と同じ構成のサーバーを別に用意し、データはマスキングして入れる。アクセスは関係者に限定する | 会員情報・注文・予約を扱うサイト、業務システム |
「簡易」の段階でも、複製したデータに個人情報が含まれる場合は、上で書いたアクセス制限と使い終わったあとの削除を忘れないでください。
構築にかかる費用や作業量は、システムの構成によって大きく変わります。サーバー代が増える分は保守費の一部と考え、「止まったとき・漏れたときに失うもの」と比べて判断するのが現実的です。
シンシアでは、本番相当の環境が無いお客様に対しては、検証環境の構築からご相談をお受けしています(有料・個別見積)。無料Web脆弱性診断を受けたいが診断に使える環境が無い、という場合も、まず環境づくりからご一緒できます。
検証環境が無い、または本番と同じ状態か分からない場合は 現在のサーバー構成や制作会社とのやり取りが分かる資料があれば、どこまで揃っているか、何を足せばよいかを整理します。 検証環境の構築・開発体制について相談する
制作会社に聞いておきたい確認リスト
自社のサイトやシステムにステージング環境があるか、本番相当になっているかは、次の質問で確認できます。保守契約の更新時や、制作会社が変わるときに聞いておくと、後からのトラブルを防げます。
- ステージング環境(検証環境)はありますか。URLと、アクセスできる人は誰ですか。
- ステージング環境のCMS・プラグイン・サーバーのバージョンは、本番と同じですか。最後に揃えたのはいつですか。
- ステージング環境のデータは、本番のコピーですか。個人情報はマスキングされていますか。
- ステージング環境のメール送信・決済・外部連携は、本番とは別の宛先・接続先になっていますか。
- ステージング環境と本番環境で、データベースやファイルの保存先を共有していませんか。
- ステージング環境には、パスワードやアクセス元の制限がかかっていますか。検索エンジンに表示されない設定になっていますか。
- 更新作業の前にバックアップを取っていますか。そのバックアップから戻せることを確認したことはありますか。
- 本番に反映する前に、こちらが確認する機会はありますか。
- 使わなくなったテスト用の環境やデータは、いつ・誰が削除していますか。
- ステージング環境の維持費は、保守費に含まれていますか。
答えが「分からない」「ありません」でも、すぐに問題が起きるわけではありません。ただ、更新や診断のたびに本番で試すしかない状態は、リスクを毎回本番で引き受けていることになります。制作会社を替えたときに環境の情報が引き継がれず困る、というのもよくある話です(ベンダーロックインの原因と抜け出し方の記事)。
発注の段階で検証環境を見積に入れるかどうかは、システム開発の発注チェックリストや、可用性・セキュリティなどを決める非機能要件の記事とあわせて検討すると、後から追加するより手戻りが少なくなります。
よくある誤解
「小さなサイトだからステージング環境は要らない」 規模よりも、止まったときの影響と、扱っている情報で決まります。問い合わせフォームしか無いサイトでも、更新で表示が崩れれば営業機会を失います。最低限、戻せるバックアップは必要です。
「ステージング環境があるから安心」 本番とバージョンや設定がずれていれば、ステージングで問題が無くても本番で壊れます。本番データをそのまま入れて外部に公開していれば、むしろ漏えいの入口になります。
「本番データをコピーすれば一番正確に確かめられる」 形は本番と同じにすべきですが、中身は架空のデータかマスキングしたデータにします。本物の個人情報を、本番より管理の甘い環境に置く理由はありません。
FAQ:ステージング環境についてよくある質問
Q. ステージング環境とテスト環境は同じものですか? 同じ意味で使う会社も多いです。分けて呼ぶ場合は、テスト環境が機能ごとの確認用、ステージング環境が本番と同じ構成での最終確認用です。
Q. 「STG環境」とは何ですか? ステージング(staging)環境の略称です。
Q. ステージング環境はお客様から見えてしまいますか? アクセス制限をかけていなければ、URLを知っている人や検索エンジンから見える可能性があります。パスワードやアクセス元の制限をかけるのが基本です。
Q. ステージング環境が無いと、脆弱性診断は受けられませんか? 本番で診断することもできますが、利用者やデータへの影響を避けるための取り決めと手間が増えるため、一般に本番相当の環境で行うのが原則です。シンシアの無料診断も原則ステージング環境が対象で、本番環境での診断は個別見積です。
Q. ステージング環境の維持にはどんな費用がかかりますか? サーバー代と、本番と同じ状態に保つための作業が主な費用です。金額は構成によって変わるため、保守契約の中で扱うか、制作会社に確認してください。
Q. ステージング環境で確認したのに、本番で不具合が出たのはなぜですか? バージョン・設定・データ量・外部とのつながりのどれかが本番と違っていることが多いです。上の「本番相当」の5点を確認してみてください。
まとめ
- ステージング環境は、本番とほぼ同じ構成で作るリハーサル用の環境で、更新・受入テスト・脆弱性診断・不具合調査を本番に触れずに行うために使います。
- 本番で直接試すと、停止・データの書き換え・誤送信・診断の影響といった、戻せない事故が起こりえます。
- 「本番相当」とは、バージョン・設定・データの形・外部とのつながりが本番と同じで、本物の個人情報は入っていない状態です。ステージング環境自体のアクセス制限と後片付けも欠かせません。
- 自社にあるか分からない場合は、上の10の質問を制作会社に確認するところから始めてください。
シンシアは、原則ステージング環境を対象にした無料Web脆弱性診断を提供しています。本番相当の環境が無い場合は、検証環境の構築からご相談いただけます(有料)。
参考資料
- Upgrading WordPress(WordPress Developer Resources)
- ソースコード不要の「Webアプリケーション無料脆弱性診断」の提供を開始しました(株式会社シンシア)
- ステージング環境(Kinsta ドキュメント)