中小企業ITエンジニア学習日誌ー検証環境作成と開発費の捻出
こんにちは、ぶんです。
今回はクラウド環境で運用されているサービスについて、その検証環境を作る話をしようと思います。
自己紹介はこちら↓
学習日誌まとめ↓
前回
インフラ構成のコード化について書きました。
こちらではコード化を進めていったわけですが、実は大きな課題がありました。
検証環境について
私が運用・クラウドへのアサインが決まってからは、大変なことに気がつきました。
まともなステージング環境もなければ、検証をするための開発環境もなかったのです。
これはとても恐ろしいことで、本番環境をそのまま更新することでサービスをリリースしていたのです。
これはいけないと思い、検証環境を作ることにしました。
開発費の捻出
ここで一つ問題が生じます。
今まで本番環境だけで済んだクラウドリソースが、検証環境まで増えるとなると、開発費が上乗せされてしまいます。
本番と同じスペックのマシンリソースが欲しかったのですが、まだそこまでの成果(売上高)がなく、チームに抵抗感がありました。
そこで、ダウングレードしたスペックで検証環境を作ることを提案し、そこでリリースのリハーサルを行うこととしました。
コツとして、
リリース失敗時の損失 >>> 検証環境費用
をアピールすると良いです。
提案が通りやすくなります。
検証環境構築
terraformを利用して高速で開発…
といきたいところでしたが、あえてGUIからクラウドリソースをデプロイしていきました。
というのも、terraformで定義する設定が、具体的にどんなものかわからなかったためです。
まずは説明などのあるGUIコンソールから手作業にて実行しました。
次に、これらのリソースをterraformerにてインポートしていきました。
少し遠回りでしたが、具体的な設定などもよく理解することができました。
スペックに合わせてアプリをデプロイ
スペックを落としているため、当然本番環境同様の設定ではデプロイできません。
アプリに割り当てるメモリなどが足りないためです。
ここは、もともとDocker化されていたため、すんなり解決しました。
検証環境用にDockerの設定ファイルを複製し、デプロイしました。
デプロイプロセスの整理
改めてアプリデプロイに必要な作業を整理すると、手作業部分が非常に多いことに気づきました。
データベース上の初期データ投入なども手作業だったり、データベースのマイグレーション更新も極めて粗雑だったことに気がつきました。
そこで、これらの手順をまずはドキュメント化しました。
なんの説明も残っていなかったため、とても大変でしたが、いずれはスクリプト化する予定です。
まとめ
検証環境構築や開発費捻出についてまとめました。
もし、まともな環境がない方がいらっしゃれば、参考にしていただけると幸いです。
次回は、terraformについてもう少し深掘りしようと思います。
サポートいただけますと幸いです。さらなる励みにして精進します。