インフラを担当しているエンジニアの川口(@kawasystem)です。
今回はクロスマートでの本番相当のデータ環境をどのように用意しているか紹介したいと思います。
なぜ本番相当のデータ環境が必要なのか?
- ステージングだとデータ量が少なくてパフォーマンスを測定しずらい
- 本番だと意図しないデータパターンが存在する
- リリース前に本番と同じ、または近いデータでテストしたい
といったことは、どのチームでもあると思います。
どのように環境を作っているのか?
構成図を書くと以下のようになっています。
ポイント
- 本番環境とステージング環境はAWSアカウントが異なるので、共有スナップショットを利用しています。
- ストアパラメータでアプリの接続先のDBホストを管理しているので、ダウンタイムなしでDBを切り替えることが可能です。
- ステージングで作ったデータは消えるので、注意が必要です。
最後に
初めに作るところがまでが大変ですが、一回作ると構成を変更しない限り使いまわせるので、オススメです。
なお、StepFunctionsの中身はPythonで作っています。ついつい、楽してBash+AWS CLIで実装したくなりますが、後から変更が大変になるので、PythonでもRubyでも何でも良いと思いますが、きちんとした言語で書くのがオススメです。
クロスマートが気になってきた方はこちら
クロスマートでは絶賛エンジニア募集中です。
このお話を読んでちょっとでも気になった方がいたら
「話を聞きに行きたい」を押してみてください!