本番相当のデータ環境を作ってみる

インフラを担当しているエンジニアの川口(@kawasystem)です。

今回はクロスマートでの本番相当のデータ環境をどのように用意しているか紹介したいと思います。

なぜ本番相当のデータ環境が必要なのか?

  • ステージングだとデータ量が少なくてパフォーマンスを測定しずらい
  • 本番だと意図しないデータパターンが存在する
  • リリース前に本番と同じ、または近いデータでテストしたい

といったことは、どのチームでもあると思います。

 

どのように環境を作っているのか?

構成図を書くと以下のようになっています。

本番相当のデータ環境を作るときの構成図

ポイント

  • 本番環境とステージング環境はAWSアカウントが異なるので、共有スナップショットを利用しています。
  • ストアパラメータでアプリの接続先のDBホストを管理しているので、ダウンタイムなしでDBを切り替えることが可能です。
  • ステージングで作ったデータは消えるので、注意が必要です。

 

最後に

初めに作るところがまでが大変ですが、一回作ると構成を変更しない限り使いまわせるので、オススメです。

なお、StepFunctionsの中身はPythonで作っています。ついつい、楽してBashAWS CLIで実装したくなりますが、後から変更が大変になるので、PythonでもRubyでも何でも良いと思いますが、きちんとした言語で書くのがオススメです。

 

クロスマートが気になってきた方はこちら

クロスマートでは絶賛エンジニア募集中です。

このお話を読んでちょっとでも気になった方がいたら

「話を聞きに行きたい」を押してみてください!

www.wantedly.com