見出し画像

中小企業ITエンジニア学習日誌ー検証環境作成と開発費の捻出

こんにちは、ぶんです。
今回はクラウド環境で運用されているサービスについて、その検証環境を作る話をしようと思います。

自己紹介はこちら↓

学習日誌まとめ↓

前回

インフラ構成のコード化について書きました。
こちらではコード化を進めていったわけですが、実は大きな課題がありました。

検証環境について

私が運用・クラウドへのアサインが決まってからは、大変なことに気がつきました。

まともなステージング環境もなければ、検証をするための開発環境もなかったのです。

これはとても恐ろしいことで、本番環境をそのまま更新することでサービスをリリースしていたのです。

これはいけないと思い、検証環境を作ることにしました。

開発費の捻出

ここで一つ問題が生じます。
今まで本番環境だけで済んだクラウドリソースが、検証環境まで増えるとなると、開発費が上乗せされてしまいます。

本番と同じスペックのマシンリソースが欲しかったのですが、まだそこまでの成果(売上高)がなく、チームに抵抗感がありました。

そこで、ダウングレードしたスペックで検証環境を作ることを提案し、そこでリリースのリハーサルを行うこととしました。

コツとして、
リリース失敗時の損失 >>> 検証環境費用
をアピールすると良いです。

提案が通りやすくなります。

検証環境構築

terraformを利用して高速で開発…
といきたいところでしたが、あえてGUIからクラウドリソースをデプロイしていきました。

というのも、terraformで定義する設定が、具体的にどんなものかわからなかったためです。
まずは説明などのあるGUIコンソールから手作業にて実行しました。

次に、これらのリソースをterraformerにてインポートしていきました。
少し遠回りでしたが、具体的な設定などもよく理解することができました。

スペックに合わせてアプリをデプロイ

スペックを落としているため、当然本番環境同様の設定ではデプロイできません。

アプリに割り当てるメモリなどが足りないためです。
ここは、もともとDocker化されていたため、すんなり解決しました。

検証環境用にDockerの設定ファイルを複製し、デプロイしました。

デプロイプロセスの整理

改めてアプリデプロイに必要な作業を整理すると、手作業部分が非常に多いことに気づきました。

データベース上の初期データ投入なども手作業だったり、データベースのマイグレーション更新も極めて粗雑だったことに気がつきました。

そこで、これらの手順をまずはドキュメント化しました。
なんの説明も残っていなかったため、とても大変でしたが、いずれはスクリプト化する予定です。

まとめ

検証環境構築や開発費捻出についてまとめました。

もし、まともな環境がない方がいらっしゃれば、参考にしていただけると幸いです。

次回は、terraformについてもう少し深掘りしようと思います。

サポートいただけますと幸いです。さらなる励みにして精進します。