目次
こんにちは、九州大学大学院システム情報科学府修士1年の楠見健太郎です!9月末から5週間、リクルートのクラウドアーキテクトグループ(CAG)でインターンシップに参加したので、そこでの学びや気づきについて紹介します。
組織の紹介
私の配属された組織はクラウドアーキテクトグループ(CAG)で、いわばリクルートのクラウド専門家集団です。クラウド活用に関する技術的支援を提供しており、業務内容は主にプロダクトのインフラを支える「プロダクト支援」とクラウド基盤の維持や構築など「インフラ運用」に大別できます。その中でも私が配属されたSENTOチームは
「インフラ運用」に属し、主に販促・SaaS(ライフスタイル)事業(例: 『Air ビジネスツールズ』など)のためのAWS基盤を提供しています。
SENTOチームは、クラウドの自由さを存分に活かしたいという意識のもと、ユーザーが高い自由度・柔軟性を持てるようなクラウド基盤を目指しています。その高い自由度のほかに自動構築テンプレートによる高速なサイト立ち上げや密な伴走サポートを特徴としており、「まずはチャレンジしよう」というようなフットワークの軽さが重要な際に最も真価を発揮します。インターンシップ中、私はこのSENTO基盤の信頼性と安全性を守る監査システムに携わりました。
SENTOチームは2週間1スプリントのアジャイル体制を採用しており、社員・パートナーの皆さんが一丸となって疾走感のある開発が行われています。また、金曜日の夕方のプランニング後には「パッショーネ」という任意参加の集まりがあって、話題を持ち寄って発表しています。期間中2度パッショーネのタイミングがあり、1度目は社員の方の3D
プリンタの話(プリンタにそもそも興味がありとても引き込まれた)を聞くことができ、2度目は私の中間発表でした。バックナンバーを見ても技術分野というより自由に幅広い話題が話されてきていたようで、チームの魅力のひとつに感じました。
案件の紹介
今回私が担当した案件は、SENTOチームが独自に開発・運用してきたリアルタイム監査システム「SENTO Cloud Linebacker (SCL)」を、AWS Security Hubをはじめとしたマネージドサービスへ移行する技術検証(PoC)です。
SCLについて
SCLは、AWS Security Hubが登場する以前の2018年から稼働し、SENTO基盤
においてインフラ起因のセキュリティ事故ゼロを実現してきたインフラセキュリティ管理を支える中核的な仕組みです。仕組みは下の図のようになっていて、プロダクト開発担当者側のAWSアカウント上での設定変更をSENTOチーム側のアカウントで評価し、もしルールに違反している変更ならSENTOチームからプロダクト担当者に改善を促すという流れです。評価ロジックや管理下アカウントからの設定変更通知の集約は独自に構築されており、非常にカスタマイズ性が高い一方で学習コス
ト・運用維持コストが高いという課題がありました。監査担当者はWebページ(ビューア)を介してデータベース上の設定変更の詳細にアクセスし、内容を踏まえてプロダクト担当者と会話します。データベースにはダッシュボード機能もついており、そこでは設定変更情報の傾向などを知ることができます。

案件について
一層の業務効率化のため、今回このSCLをAWS Security Hubで代替できないか、可能性を探ることになりました。主な目標としては監査システムの維持運用工数を削減することですが、さらにほかの社内クラウド基盤と監査技術を共通化できる、複数リージョンへ対応できるなどといった副次的な効果も期待されています。一方で、SENTOチームの高い伴走力を体現するひとつの要素である「監査担当者とプロダクト担当者の会話」という点は、自動化するべきではないということになりました。

最終的に、Security Hub代替作業を通じて3つの観点で業務が効率化できるということが分かりました。1つ目は、独自ロジックからマネージドサービスを利用することによる利点です。機能を維持しつつ運用工数・学習コストを削減できることは実現可能であり、加えてほかのクラウド基盤とノウハウをシェアできるようになることも期待できます。2つ目は、デ
ータベース構造の見直しにより、ビューアの表示速度の向上やメンテナンス性の向上が見込まれます。最後に、AIによる検知結果のサマリによって、監査担当者の対応時間を短縮できます。
PoCとしては、7割くらいは代替できるが3割は代替できないという結論を得ました。評価・集約ロジックについてはSecurity Hubで代替できるものの、ビューアや通知機能に関しては代替できないようです。
案件を担当した経緯
リクルートは幅広いサービスを展開しています。そんなリクルートのインフラ基盤について学ぶ機会は非常に貴重だと思い、インターンシップに応募した経緯があります。また、それに加えて座学ではなく実際のプロダクト開発における「チーム開発」の進め方、特にアジャイル開発やタスク管理の手法を実務で学びたいと強く思っていました。このような意向を汲んでいただき、初めての経験でしたがインフラ方面でのチーム開発に携わることになりました。SENTOチーム配属後も、PoCという裁量の大きい案件を担当させていただいたり、メンターの方のサポートを受けつつタスクの洗い出しやストーリーポイント(SP)の見積もりに挑戦させていただけたりと、挑戦の機会を多分に提供していただきました。このPoCについてもさまざまな課題候補のうちの1つで、柔軟に対応いただけたのは大変ありがたかったです。
案件を通して学んだこと・成長したと感じたこと・やりがいを感じたこと
案件を通して、当初希望していたアジャイル開発でのタスク見積もりについての経験が積めたことはもちろん、AWSの高度なアーキテクチャ設計についても理解が深まりました。
技術的な学び(アーキテクチャ)
PoCの過程で、単に機能を移行するだけでなく、多くの技術的トレードオフを議論しました。例えば、検知結果のダッシュボード(OpenSearch Dashboards)をVPC内に閉じて運用コストを取る(VPC Access)か、Cognito認証・権限管理を前提に公開して利便性を取る(Public Access、SCLはこちら)かという議論がありました。VPC Accessにすると外部からアクセスする場合にプロキシを挟む必要があるようで、コストが高すぎると判断しPublic Accessのままにすることにしました。
また、データベース自体もAmazon Detectiveで代替できないかという検証も行いました。Amazon DetectiveはAWS Security Hubからのセキュリティ検知を機械学習で分析し、脅威を検知するというサービスです。今回の要件に照らすと、Amazon Detective は脅威分析には強みがあるものの、設定変更の監査用途では十分に要件を満たさない点があり、今回は採用を見送りました。
技術的な学び(実装)
PoCと並行し、既存のSCLが抱えていたモニターの表示速度の課題に対し、データベース構造の見直しを提案しました。具体的には、ページネーション対応やインデックスの削減を行い、メンテナンス性とパフォーマンスの向上に取り組みました。
プロセス面の学び(見積もり)
特に成長したと感じたのは「見積もり」です。今回参加したスプリントでは、PoC特有の調査(脇道)やアーキテクチャ議論の時間を見積もれず、予定SPをオーバーしてしまいました。この経験から、「正確な見積もり」ではなく「余裕がありつつ余裕すぎない見積もり」を目指すという、不確実性を受け入れるアジャイルな考え方を学びました。
やりがい
SENTOチームが大事にしている「サイトへの通知をあえて人力で行う」という「伴走のきめ細かさ」の思想を守りつつ、いかに技術で運用工数を下げるか、というSENTOチームのカルチャーに触れられたことに一番のやりがいを感じました。
その他・まとめ
約1ヶ月のインターンシップで、AWSの技術的な知見はもちろん、アジャイルな環境での「チーム開発」の進め方や、QCD(質・コスト・納期)の最適解を見極めるプロの仕事を間近で学ぶことができました。データセンター見学で「このラック全部で数億円」という話に圧倒されたのもいい思い出です。
技術的な挑戦と、活発なチーム開発の両方を経験したい方にお勧めのインターンシップだと思うので、興味がありましたらぜひエントリーしてみてはいかがでしょうか?
末尾になりますが、メンターの方々、人事の方々をはじめ、インターンシップ期間中サポートをしてくださった皆様に心から感謝申し上げます。