こんにちは、株式会社カミナシのエンジニア @imu です。
はじめに
2021年11月に以下の開発者ブログを公開しました。
kaminashi-developer.hatenablog.jp
α版として構築したインフラですが、2022年1月にインフラ移行の話が突如検討されました。 なぜ最終的にAWSへ移行になったのかと私が何を感じたのかをお話します!
補足
- 完全移行したのはAPIサーバーです。クライアントアプリはCloudBuild + Firebase Hostingの環境が残った状態です。
- 移行後のAWS構成図はここでは共有していません。また別の機会に。
- GCPを否定する記事ではありません。
本記事で様々なコメントを頂いておりますが、追加で補足をさせてください。
記事内の「私がGCPを選択した理由」で、私個人が勝手な意思決定をしてGCPを選択したように受け止められてしまう書き方でした。
インフラを構築した当時はMySQL 8.x系が利用できるのがGCPで、社内の分析はBigQueryを利用していたため、予めGCP側に寄せておくほうが後々メリットがあるのでは?とチーム内で検討していました。
また、α版からβ版へフェーズが変わる際にはインフラ環境を見直す話も事前にありました。
その上で私がインフラ構築をお願いされたとき、GCPに詳しいメンバーもいない中、新しいことにチャレンジしたいという気持ちを後押ししてくれて構築しています!
私個人としては、GCPにチャレンジ出来たことはポジティブにとらえています!
移行の話は突然に
新年早々「新規プロダクトのインフラについてGCP→AWSにすべきか、利用ユーザーが少ない2022年2月までに決めておきたいという話」がslackで流れた。GCP環境を徐々に整備していた私は「???」状態になった。事前に何も聞いてないし、何が起きているかさっぱりだった。
通知されてから数日後、MTGが開催され議論されたことは以下の通りです。
上記のことを踏まえて、最終的にざっくり以下の内容になりました。
MySQLのバージョンも今現在では差がなくなり、社内のナレッジや採用を考えるとAWSに移行待ったなしとなりました。
余談)私が当時GCPを選択した理由
- MySQL 8.xを使いたい
- インフラ環境を一から作る機会は滅多にないので、既にIaC化されたAWSはモチベーションが個人的に上がらない
- カミナシレポートの分析はBigQueryを利用していたので、Auroraからの移行の手間を減らしたい
- やるからには新しいことをしたい!(←コレが一番大事だけど、メンバーからもチャレンジを認めてくれました)
見てわかる通り、ほとんど私のモチベーションで決めたインフラです。なので、GCPで絶対にやっていきたい!とは強く言えないし、社内のリソースを鑑みると無理だったので、AWSに移行は必然だったと思いました。更に、GCPを今採用するのは早すぎるという意見もあったので…。
(なので、正直インフラに対してのモチベーションはガクッと落ちましたね…。もちろん正論だし納得しました。)
AWS移行計画
下記画像の通り、APIサーバー部分をAWSへ移行する計画を立てました。
まずはGCPとAWS間のサービスマッピングを作成して、どの機能がどれに当たるのかを整理しました。移行期間が限られていたので、後戻りが難しいものを優先的に作成していくことになりました。
既にカミナシレポートはAWSをほぼIaC化しているため、必要なサービスを選択しながら構築するだけになりました。
私は実際に手を動かす機会はほとんどなく、AWSを熟知しているメンバーが移行する際のDesign Docがまとめられており、非常に分かりやすくて私は勉強させてもらいました!
移行期間は短く、2週間で対応しなければなりませんでしたが、ほぼオンスケジュールでDevelop環境も無事に移行され、あとは本番環境の移行のみとなりました。
移行当日
2022年2月上旬。
IaC化されているのでTerraform Cloudを使って、AWS環境が構築されるのを待つだけです! (環境だけではなくOrganizationも変更していたので、少し躓いたけど問題なく移行完了)
私が対応したことは
です。短い期間だったけど、α版の運用が出来て良かったなと思います!
所感
- GCPの経験が少しでも出来たことは私にとってスキルアップになった
- 結果論にはなりますが、AWSになるなら最初から議論すべきだった
- 私のモチベーションでGCPを選択したが、先を見据えてやっても良かったかなと思いました
- モチベーションを高く持つ要素を見つければ良かったかも知れない
- AWSも慣れていかないとな…
おわりに
まさかGCPの環境が数ヶ月で終わりを迎えるだなんて思ってもいませんでした。正直GCPでやってみたいなと思いましたが、議論した内容でGCPを絶対にやるべき!とまでは思えませんでしたね。
ですが、組織が拡大していくなかでGCPを採用できる機会があればやってきたいと思いました!GCPの経験は私自身の財産になったかなと思うので、コレはコレで良しとしておきましょう。
と、カミナシって面白いことやってるエンジニアがいるんだなと興味をもっていただければ良いです笑
実際に事業やどんなエンジニアが働いているのか等、気になることがありましたら、カジュアルにお話できればなと思いますので、TwitterのDMや下記の採用情報サイトからご連絡お待ちしております!
最後まで読んでいただき、ありがとうございました!