※この記事は、2025 Speee Advent Calendar5日目の記事です。 昨日の記事はこちら
こんにちは、デジタルトランスフォーメーション事業本部 開発基盤グループの長谷川です。
まず私が従事している開発基盤グループについて簡単に紹介しますと、開発基盤グループは、「SRE観点とPlatform Engineering観点を併せ持ち、デジタルトランスフォーメーション事業本部の各プロダクトと開発組織のQCDを最適化するために問題解決・技術コンサルティング・仕組みづくりを主導すること」をミッションとして、複数事業部のインフラ基盤の構築やサービス品質の保守を実施している部署になります。
デジタルトランスフォーメーション事業本部には6つ以上のサービスが存在しており、開発基盤には様々な依頼や運用のための業務が発生しています。今回はその中でよく発生していたGCPの権限追加に関する省人化を企画〜運用まで実施した事例を紹介します!
目次はこちら
そもそもトイルとはなんでしょうか。トイルとは、SRE(Site Reliability Engineering)において、エンジニアが本来注力すべき創造的な時間を奪う運用上の反復的なタスクを指します。Googleはこのトイルについて、以下のように定義しています。
トイルとは、手作業、繰り返される、自動化が可能、戦術的、長期的な価値がない、サービスの成長に比例して増加する、といった特徴を持つ作業です。
つまり、サービスの維持には不可欠ですが、長期的には改善を生まないため、自動化によって排除すべき「人間がやるべきではない単純作業」です。開発基盤グループでも、こうした差し込み作業が日々の開発業務のノイズとなっていました。
ただ、SREに関しての書籍や記事でも日々の業務でもトイルを削減した方が良いことはわかっているのですが、トイルとなるものは大量にあるため全てを自動化しきることは現実的ではありません。焦点を絞る必要はあるものの、何から着手したらいいかわからない。
感覚的に「この作業が多い」「ここで時間が取られている」といったアタリをつけることはできます。しかし、あくまで感覚値であるため、「本当にインパクトがあるのか?」「投資対効果に見合うのか?」といった問いに対し、自信を持って答えることができませんでした。
特にこういった内部オペレーションの省人化や品質改善のリファクタリングなど、外部のユーザーに直接価値が届かない部分の改善は得てして狙う成果と投資対効果が曖昧になりがちです。手応え感を持ってプロジェクトを推進するために、まずはトイルの状況を定量的に可視化する ところから始めました。
トイル削減に向けて、まず着手したのは問い合わせフローの整備です。
開発基盤グループではSlack にて依頼が飛ぶ形にしていましたが、そこにルールはほぼなく、特定のチャンネルで開発基盤グループのメンバーに向けて通知を行うというものくらいでした。そのため、実績として何にどのような依頼が来るかが一目ではわかりづらく、形式も揃っていないため微妙な認知負荷も乗り続ける状態でした。
◇Before
◇After
フローの整備に合わせ、分析を見据えて「依頼種別ラベル」を導入しました。依頼者が申請時にラベルを選択することで、データを構造化して蓄積できるようにしました。
(*1ヶ月間で発生がなかった項目は除外しています)
* AWS/GCPの利用に関する相談* 権限に関して - BigQuery* 権限に関して - AWS/GCP* 権限に関して - DB(MySQL)* 権限に関して - Redash* 権限に関して - SendGrid* 権限に関して - iDaaS* 権限に関して - その他* ドメイン・DNSレコード追加管理依頼* メール認証レコード設定依頼 (SPF/DKIM)* その他
問い合わせフローは実行後に Google Spreadsheet に記録されるようになっているため、あとは集計するだけです。
準備が整ったところで、約1ヶ月間のデータを集計し、解決策の立案(企画フェーズ)に入ります。
集計結果は以下のとおりです。

明らかにBigQuery の権限追加 が多いことが分かります。「AWS/GCPの利用に関する相談」というのも大半が BigQuery の権限追加に関しての依頼だったため、実質的には4割程度は BigQuery の権限追加に関する依頼でした。これでインパクト評価の土台が整ったので、次はこれが解決可能な問題なのかを特定していきます。
では、なぜ BigQuery の権限追加の依頼が増えていたのでしょうか。当時のフローを整理すると、以下の構造的な課題が見えてきました。

抽出した課題:
現状のフローを整理する前までは頭にありませんでしたが、整理してみると運用と実態が乖離している状況になっており、それにより本来必要のない作業が発生していることがわかりました。
課題を踏まえ、以下のように対応方針を整理しました。(ほぼ課題の裏返しですが)
暗黙的に求められている要件も踏まえ、要件定義として整理すると次のようになります。
## 機能要件- データセットとしては分かれているが実際は一緒に使用されているものをパッケージ化し一回の申請で共有できるようにすること- 権限付与作業を一本化した上で、そこからの申請を自動化すること- ユーザー個別で設定している権限をGoogleグループ(メーリングリスト)に対して付与することで権限管理を単純化すること- 責任者による承認を得ることができること## 非機能要件- 現状会社内で使用している承認を得るツールを使用することで、申請者のツール使用コストや確認コストを減らすこと- BigQueryの権限追加に限らず、他のトイル削減に対応しやすい拡張性があること
ここまで要件が固まればあとは設計・実装のみ。
最終的に構築したアーキテクチャは以下の通りです。

申請フロー:
Speee で使用している Azure のアクセスパッケージを軸に申請・権限付与フローを作成しました。このフローでは開発基盤グループの作業が不要となっています。
このアーキテクチャを実現するには、GWSグループの作成権限など、開発基盤グループ単独では持っていない権限が必要でした。
このような他部署を巻き込んでの実施はこれまであまり経験はなかったのですが、ここまでの一連のプロセスをドキュメンテーションしプロジェクトの定義を明確にしていたことであとは説明するだけの状態になっており、非常にスムーズに協力を得ることができました。
結果として、情報システム部の方々に迅速に対応いただくことができ、想定よりも早く上記のアーキテクチャに変更することができました。(情報システム部の皆さん、ありがとうございました)
リリースから半月ほど経過しましたが、今のところBigQueryの権限追加に関する問い合わせは0件 です。 開発基盤グループが抱えていた単純作業の約半分を自動化できた計算になり、差し込み作業が減った実感もあります。
今回のプロジェクトを通じた学びをまとめます。
トイルの分析から始めていたことで「ここは無理に実施しなくていいんじゃないか」「逆にここは必須」という判断基準が明確になり、チーム内でも対応スコープを明確にする会話がスムーズにできました。
機能要件もですが、将来的なトイル削減の成果を考慮して非機能要件もシャープにできたことが、成果定義を実施していたことの利点を強く感じました。
エンジニアとして開発するにあたり「これは本当に価値はあるのか?」がわからなくなり不安を抱えながら開発することも少なくないと思います。それに対して、自分の中で「ここまでやればこういった結果が出る」というのが明確になっていることで自信を持って進めることができました。
トイル削減についての一つの事例を紹介しました。Speee ではどのレイヤーに携わるエンジニアでもアウトカムを意識し技術を活用していく文化があります。そのことが読んでくださった方に伝わると嬉しいです。
そんな Speeeでは一緒にサービス開発を推進してくれる熱い仲間を募集しています!
新卒の方はこちら より本選考に申し込みが可能です!キャリア採用の方はこちらのForm よりカジュアル面談も気軽にお申し込みいただけます!
Speeeでは様々なポジションで募集中なので「どんなポジションがあるの?」と気になってくれてた方は、こちら をチェックしてみてください!興味がある方は一緒に働きましょう!
引用をストックしました
引用するにはまずログインしてください
引用をストックできませんでした。再度お試しください
限定公開記事のため引用できません。