質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.91%

ステージング環境のDBは本番環境と同じであるべきでしょうか?

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 194

tomoyuki123

score 264

問題

ステージング環境だと動いたのに、本番環境だと動かなかったことがあります
原因としてステージングと本番のDBに差異があることが原因であることがあります

対策

本番環境の個人情報はマスキングして、ステージング環境のDBと日次で同期する
(自動で同期するとテスターが不便なので、同期のタイミングは要相談)

質問したいこと

  • 対策として上記がそもそも正しいかどうか
  • そもそもステージングと本番環境と同じデータであることが必要か
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+1

ステージング環境で本番環境のデータを使うことについて

対策として上記がそもそも正しいかどうか

これは開発・運用体制によって事情がことなるため、
一概に正しいかどうかは判断できませんが、
僕は同様の運用を行っていました

個人情報の扱いに関するセキュリティを心配されていると思います

本番環境のデータを開発環境で使うべきではない」という話があります

そこで、ステージング環境本番環境の一部とみなし、
ステージング環境でのテスターを
本番環境を操作する権限を持つメンバーに限定することで
ある程度セキュリティを担保することができます

また、別のサービスにデータをポストしたりしないよう、
他のネットワークとはできる限り隔離して構築します

上記の回答は、自動テストのための環境を別途用意していることが前提です

  • 本格的なテストを行っていては、実質的に開発しているのと同様であるため
  • 限られたメンバーがさっと問題ないかだけを見るのに使うので、
    ステージング環境でのテスト項目を十分減らす必要があるため
  • ステージング環境でのテストの安全性を確保するため
本番環境 →データは本番と同様のものを使用, 本番環境の運用とみなします
  • 本番環境
  • ステージング環境
開発環境 →データはダミーを使用, 開発作業とみなします
  • 自動テスト環境
  • ローカル開発環境

 

そもそもステージングと本番環境と同じデータであることが必要か

リスクとコストの比較によります

発生し得るリスクを分析して、その対策にどこまで投資するべきかを検討します

参考:
発生確率・影響度マトリックスとは何か?PMBOKのリスク分析の手法を解説 | Promapedia
リスクマネジメントとは? | 株式会社日本アルマック

今回の事故の原因のみを防ぎたい場合

同様の事故を再現させるテストデータを自動テストに組み込めば
防ぐことができます

将来起こり得る、想定していない本番環境のデータによる事故すべてを防ぎたい場合

ステージング環境で本番環境のデータを使うのが良さそうです

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

ステージング環境に何を求めるかによりますけど、本番で実行して検証したいがデータが変更されるとまずいので、別途環境を準備するというのが一番の理由だと思います。
なので、データは極力同じであるべきです。

ステージング環境は、本番環境リリース前に、本番のデータバックアップから都度構築するのがお手軽だと思います。
個人情報に関する制約があるなら、バックアップから構築する手順の中にマスキング処理を含めれば良いですし。

上記の場合、開発や検証環境は別途準備し、そこでの検証を終えているのが前提です。

環境のバリエーションについて考察されている記事がありましたので、紹介しておきます。
ステージング環境とは結局なんなのか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.91%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る