SRE歴2ヶ月でも開発6年の知見を活かして、チームで止まっていた環境改善を前に進めた話
by
a_ono
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
SRE歴2ヶ月でも開発6年の知見を 活かして、チームで止まっていた 環境改善を前に進めた話 株式会社イノベーション 大野 厚
Slide 2
Slide 2 text
自己紹介 [やっていること ] Engineering Manager / SRE 最近はインフラコスト最適化に夢中 💰 [趣味] ● ピアノ ● 作曲 ● 坂道 https://my.prairie.cards/u/ono_asagi
Slide 3
Slide 3 text
● はじめに ● 事例 ● まとめ 目次
Slide 4
Slide 4 text
はじめに
Slide 5
Slide 5 text
これは「あるある」でしょうか? ここ改善したいけど、アプリの仕様がわから ないから触ると事故るかも。 手をつけられない。でも開発チーム忙しそう だし...。時間がある時に相談しよう。 しかし、誰に聞けばいいんだろうか (気まずい)
Slide 6
Slide 6 text
あるある解消事例を話したい 結論:サービスを長くやっている人を、 SRE業務にアサ インする 新しくSREを採用するよりも、ドメイン知識や開発フロー を知っていて判断ができる開発者を突っ込むと早そう。 =>自分がやってみた
Slide 7
Slide 7 text
● インフラまわり ○ 2026年4月〜(2ヶ月)。IaCやCI/CDの実装経験 ほぼなし ● アプリ開発 ○ 2020年3月(6年)。機能・仕様や誰が関わるかは 大体わかる スキル
Slide 8
Slide 8 text
事例① CI移行 事例② DB同期リプレイス 事例③ ポストモーテム 2ヶ月でできた事例紹介
Slide 9
Slide 9 text
事例
Slide 10
Slide 10 text
事例① CI移行 やったこと Circle CI → GitHub Actionsへの移行 一週間で6リポジトリ なぜ必要だったか 全社的なGitHubのプラン変更のため。Teamsから Enterpriseになった
Slide 11
Slide 11 text
アプリがわかる自分だからできたこと 一人で十分な動作確認ができる 誰かと連携するコミュニケーションコストが0 事例① CI移行
Slide 12
Slide 12 text
概要 テストのため、本番環境のデータを検証環境にイン ポートする なぜリプレイスが必要だったか コスト削減:月額$400 → $80 高速化:10時間 → 1時間 事例② DB同期リプレイス
Slide 13
Slide 13 text
事例② DB同期リプレイス 前提 CodeBuild(10時間) ● 本番環境RDSのダンプを取得してS3に保存 ● 検証環境RDSにS3からインポート 毎週実行
Slide 14
Slide 14 text
やったこと Step Functions・Lambda(1時間) ● 本番環境スナップショットからリストア 必要な時に手動実行 事例② DB同期リプレイス
Slide 15
Slide 15 text
事例② DB同期リプレイス 選定理由 課金形態を調べて、Step Functions・Lambda に変え た。待ち時間分の課金したくないのでsfnにした CodeBuild:1秒単位で課金 Step Functions:state切り替わり単位で課金
Slide 16
Slide 16 text
信頼性・運用面でのメリット 1時間になったことで日中にリカバリが可能になった 10時間かかっていた時はエラー時のリトライや確認が 翌日になり運用負荷が高かった。 事例② DB同期リプレイス
Slide 17
Slide 17 text
アプリがわかる自分だからできたこと そもそも毎週同期する必要がない。 DBマイグレーションはリリース前に検証環境でも実行さ れているので、スキーマは揃う。 本番相当のデータが検証環境で必要な時のみ同期で きれば良い。 事例② DB同期リプレイス
Slide 18
Slide 18 text
概要 hotfixの内容を振り返る なぜ必要だったか hotfixが多く、週一回のリリースサイクルを守れていな い期間があった。振り返りの文化を作って、失敗から次 の開発に活かしたい 事例③ ポストモーテム
Slide 19
Slide 19 text
背景・起こったこと 原因は、LaravelからGoへの段階的リプレイス。 物理削除から論理削除になったことで、取得対象を正しく絞り込めな くなった ● DB(テーブルA)には deleted_at カラムが存在していた。 ● しかし、実は物理削除の運用だった。 ● Go側で新しく実装した際、このカラムを見て「あ、論理削除のテーブルなんだな」と判 断してしまった。 ● 結果、過去のゴミデータをGoが掘り起こした 事例③ ポストモーテム
Slide 20
Slide 20 text
事例③ ポストモーテム データが何件追加さ れても、この行が取得 されるようになってい た 本来こっち
Slide 21
Slide 21 text
アプリがわかる自分だからできたこと ● hotfixの内容・背景を開発リーダーと把握する ● 暫定対応だけでなく、システムをあるべき姿を議論 し、改善するきっかけにした =>次の開発時の認知負荷を下げるため deleted_at を削除する判断 事例③ ポストモーテム
Slide 22
Slide 22 text
まとめ
Slide 23
Slide 23 text
冒頭から再掲 ここ改善したいけど、アプリの仕様がわから ないから触ると事故るかも。 手をつけられない。でも開発チーム忙しそう だし...。時間がある時に相談しよう。 しかし、誰に聞けばいいんだろうか (気まずい)
Slide 24
Slide 24 text
手応え 結論:サービスを長くやっている人を、 SRE業務にアサ インする インフラ経験が浅くとも、ドメイン知識のある 人間がSREに関わることで、“コミュニケー ションの気まずさ” や “事故る恐怖” が少な く、2ヶ月で改善を進めることができた
Slide 25
Slide 25 text
完