はじめに私はインフラに対して苦手意識(詳しく知らない)があり、issueに対して率先して改善しようとしませんでした。このまま深く触ることはないかなと思っていた矢先、新規プロダクトのインフラ構築をお願いされました。不安しかなかったのですが、最初から構築する機会なんて滅多にないのでチャレンジすることに!(内心はやりたくないなと思ったけど...)私自身は知らない領域にチャレンジすることは好きなので、楽しんでやろうと思いました。苦手意識がある私がどのように、リリースできる環境を構築したか共有できればと思います!注意)本内容はα版という位置づけで構築しており、正式リリース時には都度変更をしていきます。1(技術選定)弊社はカミナシレポートというサービスを提供しています。このプロダクトはAWSを利用しており、その構成を真似て構築するの予定でしたが、インフラが苦手な私にとっては若干ハードルが高いです。一人でやるとなれば尚更ですよ...。kaminashi.jpとなれば、イチから構築するなら別サービスを検討しても良いと思い、ちょうどその頃、社内でデータ基盤をGCP側に構築する話が上がっていたので、新規プロダクトはGCPに構築しようと思いました。GCP経験者は社内にいませんでしたが、弊社のバリューに「β版マインド」があるのでチャレンジしたいと伝えて、運用が耐えれない場合は別のサービスに乗り換えるという話でGCPを採用しました。(と言うより、自分一人でやるならやってみたい方を採用したかったのが本音)こういったチャレンジが弊社では出来るのでありがたいです。2(インフラ構成図)とはいえ、いきなりGCPのコンソールをいきなり触るのはちょっとハードル高いです。いった機能が提供されているか分からないまま進められないのでインフラ構成図を書きました。構成図を書くことで頭の整理にもなるし、誰かに説明するとき楽ですね。プロダクトに必要な機能から作成したインフラ構成図(α版)です!インフラ全体はβ版以降まで見据えて書き出しましたが、正直これが正しいのか不安なんですよね...。社内にGCPのインフラ経験者はいないため、業務委託で関わっていたメンバーに壁打ちをお願いしました!予め構成図を共有してインフラMTGを開催し、気になる点やアドバイスをいただきました。α版までの期間が短かったこともあり、作りすぎずに後から追加できるものは後回しにするCI/CDを回せることを意識して、最小構成をを目指す未経験あるある的なことだと思いますが、いきなり完璧なものを目指してしまったので小さく早く仕組みづくりをすることにしました。RunにDeploy基本は公式ドキュメント!ドキュメントに従ってAPIを有効にしたり、cloudbuild.yamlを最小構成で作成しました。未経験だといきなりは怖くて、以下の最小構成でまずDeployされるか確かめました。追加してDeployできました。(APIを有効にしたり権限周りで出来ないことはありましたが...)FirebaseにDeployWebアプリケーションのDeployはFirebaseを利用して、公式ドキュメントを見ました。cloud.google.com余裕余裕!と思っていた矢先、Firebase側からプロジェクトが見えないという問題に当たりました。ドロップダウンリストに追加したプロジェクト名が表示されない!別のプロジェクトは表示されているのに...。ドキュメント等を探しましたが検討が付かず、他のプロジェクトの差分を見ると怪しい箇所がありました。結論はGCPで新規プロジェクトを作成するとき、プロジェクト名とプロジェクトIDを同一にしていると表示されないです。kaminashi-blog-123とすれば表示されました。原因が分かったので新しく作り直すことに...。MySQLのインスタンス作成)インスタンスを作成するだけなので、公式ドキュメントを見て最小構成で作成しました。cloud.google.comα版のため基本最小構成でインスタンスを作成しています。なるので注意してください。Buildを再実行してDB接続まで出来ていることを確認しておわりです。Route53を利用していたのでこちらを使います。接続用のマネージド証明書が自動的に発行、更新されるので便利ですね。いった細かいことをGCP側がやってくれるので非常に助かってます。ちなみにマッピングが終わるまでに40分くらい掛かりました。詰まったポイントググったときに公式ドキュメントじゃなくて個人ブログを参考にすると、内容が古い場合が多かったので公式ドキュメントを見よう!GCPも日々進化しているので公式ドキュメントが一番良いなと思います。可能であれば現役でGCPを触っているエンジニアと壁打ちできると尚良いですね。GCPのAPIサービスの有効化、サービスアカウントなどに権限付与は、Try&Errorを繰り返すしかない。Buildのエラーを見るとわかりやすいが、一覧で分からないのが難点。おわりにインフラ未経験の私が爆速でインフラ構築出来たのも、業務委託のメンバーと週次で壁打ちや、随時困ったときに相談出来たことが要因だと思います。苦手な私に対してペアプロをしていただいたり、様々な提案をしていただきホントに助かりました。手動で動く環境を構築するのを優先したため、今ではTerraform化や別の環境を作ったり、私自身がインフラに対する意識も変わりました。あれこれやってみたい、これはどうすればいいんだろう?などの課題を上げ、解決していくのが楽しくなりました。いえ、まだ正式リリースまでにやることはあります!リリース後も都度改善をしていく必要があるのでチャレンジしがいがありますよ。ソフトウェアエンジニアが挑む爆速DXカミナシ・エンジニアの浦岡です。9はてなブログをはじめよう!kaminashi-developerさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。