面白そうなプロダクトで一山当てたい
まだ若く、養う人も居ないうちにチャレンジをしたいと考えている。
熱量を持つメンバーと熱量を持ってプロダクトに携わり、本当に良いプロダクトを世に送り出したい。そして当てたい。
新卒入社した大企業では、多様な経験を積むことができ、貴重な時間を過ごすことができました。
技術的な成長も感じられ、大きな実りを得たと感じています。
しかし、副業でいくつかスタートアップに関わる中で、自分も0→1や1→10のフェーズで戦いたいと強く思うようになりました。
熱量を持ったメンバーと共にやっていきの精神でワークし、良いプロダクトを作っていきたいです。
合同会社DMM.comに新卒入社、研修後にSRE部へ配属され、初めての業務としてDMMブックス等を運用する電子書籍事業部のJenkinsをリプレイスすることとなった。
バッチ実行やマイグレーションの実行環境となっている、EC2上で動作しているJenkinsがあったのだが、長期間メンテナンスがされておらず、塩漬け状態になっていた。それを起因とした障害が発生しており、またAuto Healingな構成にもなっていなかったためAZ障害等によく巻き込まれ、その際に手で再起動が必要だった。
よって、それらの課題を解決するために新しい環境を作成することになった。が、問題としてエンジニア以外も使用する環境であったためJenkinsである必要はあった。
上記問題を解決する手段として、ECS上にJenkinsを構築することとし、自身でアーキテクチャを検討、構築した。またアプリケーション自体はコンテナベースでECSを利用しており、事業部内のエンジニアの学習コストが低いという点から事業部内のエンジニアが継続的にメンテナンスをすることが出来ると考え、採用材料となった。
ECS上にJenkinsを構築することにより ECS Serviceの高可用性、高耐障害性をそのまま享受することが出来た。
また、コンテナベースでMaster Node,Slave Nodeが動作するのでメンテナンスも容易であり、Terraformで構成を定義することにより再利用、展開が容易になった。
https://2357-gi.medium.com/2020年にjenkinsをaws上で動かす選択肢としてecsを強く推したい-72c7d508c84b
SRE部として新卒配属後、電子書籍事業部に参画、その中でアプリケーションのモダン化やオンプレからの移設等をこなしながら、並行してSREとしての業務を行った。
CI/CDの整備や監視の導入、非常時の切り戻し訓練の実施などを行った。
元々ECS Fargateに乗せられ単純なCodePipelineを用いたローリングデプロイが行われていた。が、その中でtask definitionのライフサイクルの違いやデプロイ時の無駄な作業が問題になっていた。
そこで、問題解決のためにcodePipelineとさらにCodeDeployを利用したデプロイフローを整備し、それらを用いて根本的な問題の解消を行った。
元々aws consoleを用いた切り戻し手段はあったが、インフラ側の操作が必要なのでアプリケーションを更新、デプロイするエンジニアはその方法を熟知しておらず、git上でrevert commitを作成し切り戻し操作を行っていた。その切り戻し手段だとcci等を経由するため無駄な時間が生じていた。
そこへ新たに効率的かつ高速な切り戻し方法を実現できるようにし、且つエンジニアメンバーに向けて切り戻しや緊急対応時のワークショップを行い、チームメンバーが効率的な緊急対応方法を実現できるようにした。
DMMでの勤務が長く、またすでにある程度基盤が出来上がった中で手を動かすことが長かった為、もっと混沌とした所で手を動かしたいと思いシード期のスタートアップに副業としてジョイン。クラウドインフラの統括を行う。
エンジニア3人チーム(ジョイン時には2人)にて、
AWS API Gateway/ AWS Lambda / Aurora Serverless v2 / AWS SAM / AWS Activate / AWS Control Tower / AWS SSO / github actions
シード既のスタートアップなので多くの変更が行われることを考え、柔軟なアーキテクチャと且つ新しい変更を柔軟に実施できるような構成を用意した。
また、新規スタートアップにありがちなとにかく動けばいいという状態にすべて倒さずに最低限のセキュリティや冗長性の確保を行った。
また、awsさんとの調整も行い、スタートアッププログラム (aws activate)やアーキテクチャの設計相談も実施した。
スタートアップとして必要なスピードを担保するためにCI/CDの整備からマルチアカウントの用意(aws control tower, aws sso)、最低限のIaCの整備を行った。
過剰なIaCではなくコンパクトな必要最低限のIaCと、lambda, api gateway用にaws samを用意した。
aws samを使用することによりlocalでの開発環境の整備やスムーズなデプロイも実現した。
学生時代の業務経験です
学生の頃アルバイトでpythonとECRを用いたレコメンドシステムを構築した。
webサービスにトラッキングコードを埋め込むことから始め、トラッキングデータをため込むdbの作成、実際にそのデータを使用してのレコメンドモデルの実装まで行った。
レコメンドシステム自体はsparkを用いて作成、実際のモデル生成はEMRを使用した。
数か月間しかデータをため込む期間が無かったため高水準なレコメンドモデルの作成はできなかったが、ゼロからシステム設計を行い技術選定も行い、初めて大規模なAWS環境の作成を行った。
データ分析周りのタスクよりもインフラのアーキテクチャ設計といった業務の方が楽しく、その後はデータサイエンスよりもクラウドインフラの仕事を行うようになった。
アーキテクチャ図
https://drive.google.com/file/d/1Dbr4Ejb-FoP0D8QOHTU1L5pKJf3NiG_D/view?usp=sharing