こんにちは。2020年4月にClassiに新卒入社し、エンジニアをやっている小川です。 私が入社した後に、各プロダクトの実行環境をEC2からECSにリプレイスしていく取り組みが始まりました。 AWSに触れた経験が全くありませんでしたが、私もこのECS化に取り組み、無事にリリースすることができました。 私がこのECS化を通して良かったと思うこと・学んだこと・感じたことを、新卒の視点で振り返ろうと思います。
なぜECS化をしたのか
これまでのEC2での運用ではデプロイフローが複雑になっており、機能改善のためのリリースのサイクルが遅くなってしまっているという課題がありました。 教育現場の状況が日々変化する中で、ユーザからのニーズに素早く対応する必要があります。
ECS化することで、例えば次のようなメリットがあります。
- すぐにロールバックできる
- タスク数の増減が簡単にできる
また、ECS化のタイミングで既存のデプロイフローの見直し・改善を行うことで、次のようなメリットもあります。
- デプロイの手順が簡潔になる
- 環境変数の管理がわかりやすくなる
このようなことから結果的にリリースサイクルを改善することができるため、アプリケーションの実行環境をEC2からECSにリプレイスする取り組みが始まりました。
Classiでは機能別にプロダクトが分かれており、並行して各プロダクトのECS化が進められました。 私は同じチームのエンジニアの先輩と2人でペアを組み、ポートフォリオという機能のECS化を担当しました。
良かったと思うこと
ECS化を進める上で良かったと思うことは次の2つです。
- ドライバーを任せてもらえたこと
- ドキュメントにまとめたこと
ドライバーを任せてもらえたこと
作業はペアプロで行いましたが、基本的にドライバーを自分に任せてくださいました。 AWSはおろかインフラも何もわからなかったので、ちゃんと進められるか不安がありましたが、先輩が作業手順や作業内容を丁寧に教えてくださいました。 そのおかげで不安は消え、1つ1つ理解しながら進めることができました。
自分自身、わからないことがあればすぐに質問するように心がけました。 わからないことだらけだったので、うざいくらい聞いていたと思います笑。 1つ1つにちゃんと意味があり、それが今後の開発や運用に関わってくることが後から分かり、聞いておいて良かったと思っています。
入社してからずっとリモートワークだったので、画面共有をしながら作業しました。 自分や相手の画面をしっかり確認できる点が良かったと思います。 また、VSCodeのLive Share機能を使って、共同編集しながら行いました。 Live Share機能とても便利です。 共有画面には写っていないソースコードも確認でき、細かいスペルミスの修正や「こうも書ける」みたいなことなどを、チャットを介さずに直接編集できるので、作業効率が上がると思いました。
ドキュメントにまとめたこと
インフラの構成やアプリケーションの仕様などを、作業を進めながらドキュメントにまとめるようにしました。 自分なりに整理して言語化することで、頭の中が整理されて記憶に残りやすいと感じました。 また、作業に関わっていない人でもどんな構成・仕様になっているかを知ることができます。 自分自身も他の人が書いたドキュメントがとても参考になりました。 ECS化が終わってからもドキュメントに残すことを意識するようになりました。
学んだこと
アプリケーションの実行環境を移行するためには、アプリケーションのことだけでなくその周辺のことについても、様々なことを知る必要がありました。 例えばRailsやAngularのアーキテクチャの理解、リクエストがアプリケーションに届くまでの通信経路の把握、ログの保存方法、セキュリティの考慮などです。 ECS化を通じてこれらのことを学ぶことができ、とても貴重な経験になりました。
また、機能の変更を行う際にインフラの変更も必要になることが多くあります。 その時には何をするべきかを想定できるようになり、ECS化の経験を活かすことができていると思います。
感じたこと
新卒1年目でサービスの基盤であるインフラの構築を経験させてもらえたのはとても貴重だったと感じています。 実行環境を入れ替える機会はそう多くないことだと思うので。 会社全体として新卒や若手に役割をどんどん任せていく雰囲気があるため、チャレンジすることに躊躇はありませんでした。 また詳しい方たちのサポートも厚く、失敗したとしてもしっかりフォローしてくださる体制だったので、主体的に取り組むことができました。
まとめ
入社してから取り組んだことの中で特に印象に残っているECS化について振り返りました。 新卒でもどんどんチャレンジさせてくれるClassiの皆さんのおかげでこの1年でとても成長したことを感じています。 この経験を活かして今後も主体的に取り組んでいこうと思います。