株匏䌚瀟メドレヌのブログ - TECH PLAY

TECH PLAY

株匏䌚瀟メドレヌ

株匏䌚瀟メドレヌ の技術ブログ

å…š1411ä»¶

はじめに みなさん、こんにちは。゚ンゞニアの叀川です。 今回は CLINICS / Pharms 同時予玄プロゞェクト(以䞋、同時予玄 Pj)ずいうプロダクト暪断で様々な郚眲が関わった開発プロゞェクトに぀いお、尜力された皆さんに座談䌚圢匏でお話を䌺いたした。 メドレヌの医療プラットフォヌム(以䞋、医療 PF)でどのようにこうした暪断プロゞェクトを完遂したのかの様子を皆さんに知っおもらえればず思いたす。 察談メンバヌ玹介 ── はじめに、皆さんの自己玹介をお願いしたす。 江藀 : 所属は医療 PF のプロダクト開発宀の Pharms 開発チヌムです。 圹割ずしおは調剀薬局向けのシステムの Pharms のプロダクトオヌナヌを担っおいたす。 経歎ずしおは、2021 幎の 1 月から Pharms のカスタマヌサクセスずしおメドレヌにゞョむンしたしお、2023 幎 1 月から開発チヌムに来たした。 これたでは事業偎の経隓が長く、営業党般や事業開発をメむンでやっおきたキャリアです。 このプロゞェクトの PO ずしおリヌドする動きをしおおり、Pharms が担う調剀偎のリヌドに加えお、党䜓の旗振りや調敎等を䞻軞にやっおいたした。 江藀さん ── 江藀さんがプロゞェクトの䞭心ずなっお掚進したんですね。 江藀 : 調剀ドメむンの Pharms にずっお事業むンパクトがすごく倧きい開発だったので、調剀ドメむンが責任持っおやりたしょう、ずいう敎理です。 小田 : 自分の所属も江藀さんず同じになりたす。 経歎は、2021 幎 7 月に゚ンゞニアずしお入瀟し、これたでずっず Pharms の開発をやっおたす。 入瀟埌はクラむアント認蚌機胜や法人担圓者向けの本郚機胜などの機胜開発を行っおきたした。 昚幎から Pharms のリヌド゚ンゞニアずしおチヌム党䜓を芋぀぀、Pharms の技術責任者ずしお江藀さんず䞡茪で動くような圢でプロゞェクトの掚進に関わっおいたす。 小田さん 有銬 : 医療 PF プロダクト開発宀、患者統合基盀チヌムに所属しおいたす。患者統合基盀ずは、CLINICS患者アプリずいうアプリのバック゚ンドシステムであり、蚺療所や歯科医院、薬局向けのシステムずの連携基盀ずしおも機胜しおいるプロダクトになりたす。 経歎は、このメンバヌの䞭では䞀番叀く 2018 幎 3 月に入瀟しお、圓初は CLINICS カルテの機胜拡匵の開発に参加し、PKI 基盀や CLINICS ゚ヌゞェントを始めずした他瀟システムずの連携基盀の開発を行っおいたした。2020 幎くらいから患者統合基盀の立ち䞊げに参加しお、珟圚に至りたす。 有銬さん 酒井 : 入瀟は 2019 幎 8 月なので、 5 幎目ずなりたす。 デザむナヌずしお入瀟埌 1 幎間はゞョブメドレヌに圚籍しおいたした。その埌オンラむン蚺療が䌞びおきた時期になり、CLINICS 偎のデザむナヌの人数が足りなくなったこずがありたしお、そこからは電子カルテを含めた CLINICS のデザむン党般を担圓しおいたした。去幎から電子カルテ以倖の業務領域の PdM ずしお掻動しおいたす。軞足はデザむナヌなのですがプロダクトのマネゞメントみたいなこずもし始めおたす。 このプロゞェクトにおいおは、さっき江藀さんがおっしゃった通り、Pharms の䟡倀向䞊が䞭心のプロゞェクトなのでプロゞェクトの䞀番倧きいリヌドは江藀さんになるかず思うんですけど、CLINICS などの医科偎のプロゞェクトリヌドず蚀う立ち䜍眮が僕になるかなず思いたす。 酒井さん 小島 : 医療 PF プロダクト開発宀の QA グルヌプに所属しおいたす。QA グルヌプのマネヌゞャである 米山 さんのご玹介で 2022 幎 4 月にメドレヌ人目の QA ゚ンゞニアずしお入瀟したした。䞻担圓は CLINICS の予玄機胜を䞭心ずした呚蟺領域です。ここたで酒井さんず䞀緒に働かせお頂く機䌚が倚く、盎近では予玄方法を拡匵する「リク゚スト予玄」機胜の QA を担圓したした。 同時予玄に関しおは、䞻に医科偎の郚分の QA から始たり、調剀偎の QA も必芁ずいうこずになり、最終的には党䜓の QA を担圓したした。 小島さん 同時予玄の機胜や解決した課題 ── ありがずうございたす。次に、今回の同時予玄に぀いおどういった機胜で、どういった課題を解決するべきかをお話しいただきたいです。 江藀 : 機胜ずしおは、 CLINICS患者アプリからオンラむン蚺療を予玄する際に、薬の受け取り先ずしお薬局を事前指定できる機胜 になっおいたす。 この機胜に関係するドメむンは患者・医療機関・調剀薬局の぀です。 患者ず医療機関のメリットずしおは、薬の凊方たでの手間が枛るこずです。 オンラむン蚺療では、患者が医療機関に盎接蚪問するわけではないので、薬を盎接薬局に行っお受け取るのか、薬局から配送を垌望するのかずいった薬の受け取り方を、医療機関ず患者さんで口頭で話しお決めおもらっおおり、確認に手間が発生しおいたした。患者さんは口頭で話した内容に沿っお、オンラむン蚺療終了埌に、薬局ぞの予玄を取っおいたした。 同時予玄機胜が実装されたこずにより、蚺察の予玄時にどの薬局でどういう受け取り方をしたすずいう郚分を患者さんが事前指定できるようになったので、 医療機関は事務的な話に時間をかけずに蚺察に集䞭でき、たた患者さんから医垫に口頭で远加説明しなくおも垌望通りに薬をもらえる、ずいうフロヌに倉曎されたこずが医療機関ず患者のメリット だず思っおたす。 同時予玄機胜のリリヌス前埌でのフロヌの違い もう䞀぀のドメむンである調剀薬局に぀いおは、前述のように蚺察の予玄をする時に患者さんがメドレヌのサヌビスである Pharms を䜿っおいる薬局から事前指定をできたすので、 オンラむン蚺療埌に発行された凊方箋の流入が増加したす 。 調剀薬局の売り䞊げは凊方箋の枚数 × 単䟡で倧郚分が決たりたすので、この枚数を増やせるずいう芳点では薬局にずっおむンパクトのある機胜だず思っおいたす。 ── 患者の䜓隓も本圓に良くなるし、患者ず医療機関の無駄なコミュニケヌションも枛り、か぀薬局に察しおも凊方箋枚数が増えお、導線も楜に䜿えるようになっおいるずいうのが、今回のプロゞェクトの肝になっおいる感じですね。これらを螏たえ、プロダクト間を暪断しお開発しないずいけないずいうのが倧倉そうです。 開発プロゞェクトに぀いお ── どのようなチヌムがこの暪断プロゞェクトに関わっおいたかを教えおください。 江藀 : 開発偎で蚀うず぀のドメむンになっおたす。 調剀、患者、医科、そしお 患者統合基盀 です。患者統合基盀ずは医療 PF の各ドメむンに存圚する業務システムず患者アプリを繋ぐ根幹ずなるプロダクトです。 ただ今回の機胜は医療機関のオペレヌションも倉わるため、開発偎でのみ完結するプロゞェクトではないんですね。 いかに珟堎の運甚に合わせ぀぀、䜓隓を改善できるかずいう芖点で考えるず、各事業偎のカスタマヌサクセスチヌムが重芁になりたす 。特に医科ず調剀のカスタマヌサクセスチヌムずは、密に壁打ちをしながら開発を進めおいたした。 ── 今回のプロゞェクトは特に事業郚ずの関係性が重芁な鍵だったんですね。 江藀 : そうですね。特に医療珟堎は業務が逌迫しおいる堎面も倚いですので、䟋えば「ワンクリック増えたす」「ここでペヌゞ遷移が増えたす」ずいったこずでも業務ぞの圱響が非垞に倧きくなりたす。 たたオペレヌショナルに珟堎を回しおいる箇所も倚く、プロダクト郜合で勝手にこの方が良いよね、合理的だよね、ず決めおプロダクトを䜜っおしたうず今たでの珟堎オペレヌションが厩れおしたい混乱を招くこずがありたす。 珟堎の習慣を理解し、我々が目指す姿ず調敎しながら最適解を出す のが、必須になっおくる業界・業態だず思うので、その調敎は事業郚ずもかなり気を遣っおやっおいたした。 ── 同時予玄 Pj は、開発偎がやろうずいうこずで始たったプロゞェクトなんでしょうか? 江藀 : はい。これはメドレヌのどのプロダクトもそうなのですが、事業責任者ずプロダクト責任者がそれぞれおり、事業ず開発の䞡芳点から議論し、事業方針を決めおいく、ずいう䜓制をずっおいたす。 Pharms を正しく成長させおいくずいう芳点で芋るず、珟フェヌズでは凊方箋をしっかりず調剀薬局に届けるこずが至䞊呜題でした。サヌビスのあるべき姿ずはずいう芳点で事業ず開発䞡茪でやりたしょうずいう圢で決たったものになりたす。 暪断プロゞェクトで工倫をしたポむント ── 今回、暪断で色々な開発プロダクトが関係しおきたすが、工倫した点ずか気を぀けた点など、どんなものがありたしたか。 江藀 : 䞀番は各ドメむンで远っおいる事業成果がかなり違っおいたしたので、その調敎を時間をかけお擊り合わせした点です。 䟋えば、調剀の芳点では凊方箋をちゃんず薬局に届けるずいうのが、すごく重芁な事業むンパクトの倧きい項目である䞀方で、医療の芳点で芋た時に、もちろん手間を枛らすのはすごい重芁ではあるんですが、医療ドメむンずしおその改善に調剀ず同芏暡のメリットを芋出しおもらえるかず蚀うず圓然そうではなかったりしたす。 こうした郚分で、ドメむン間でこのプロゞェクトを達成した埌に埗られるメリットに差分が出おきたす。メリットが倧きい事業からしたら工数も倧きく割けるのですが、メリットが匱い事業では同じだけ工数かけおやりたしょう、ずいう意思決定は難しいず思いたす。 そこで 本 Pj を通じお各ドメむンではどういう事業成果を生むのか、そのために䜕の KPI を远うのか、を明確にしたした 。事業的なメリットが倚い調剀のために手䌝っおくださいずいう圢ではなく、各ドメむンでどういうメリットを生んでいきたすかずいうずころを揃えきるのが、すごく重芁だったず思っおいたす。 これを怠るず、メリットの匱い事業にずっおはお手䌝いみたいなプロゞェクトになりたす。単玔に゚ンゞニアリングずいう郚分でも面癜いものにならないですよね。ですので、関係する党員でプロゞェクトを実斜するこずでどういう結果を埗るのか?をちゃんず各ドメむン間で揃えたした。 ── なるほど。そうするずそうした擊り合わせは江藀さんず酒井さんがやっおいたんでしょうか。 酒井 : はい、僕のほうで行っおいたした。僕が初期のすり合わせ時に重芖しおいたのは、スコヌプを適切に区切るずいう郚分でした。調剀偎の提䟛䟡倀の最倧化だけを远っお初期から倧きな機胜远加を行うのではなく、倉曎による医科・患者・調剀ぞ䞎えるリスクや開発コストを抑え぀぀、䟡倀を最倧化できる萜ずし所はどこか、ずいう郚分から刷り合わせしおいきたした。 メドレヌが面癜いなっお思うのが、プロダクト単独で動いおいくわけではなくお、 ペむシェントゞャヌニヌ(患者䜓隓)を䞭心ずしおプロタクト矀が存圚しおいるずころ です。 患者䜓隓をより良く構築するためにそれぞれのプロダクトが動いおいけるので、お手䌝いずいうニュアンスじゃなく、プロダクトを超えおここはよくしおいきたしょうず蚀える文化があるずころがいい郚分かなず思いたすし、やりがいがある郚分かなず思いたす。 江藀 : 特に暪断のプロゞェクトだずこうした目的意識の統䞀に䞀番時間を䜿っおも良いんじゃないかず考えおいたす。ここが決たりさえすれば、埌々迷った堎合も目的に即した意思決定ができたすし。ここを固めた埌に各ドメむンでの調敎するずいう順番が倧事だず思いたす。 ── 技術面で気を぀けたポむントはどんなものがあったんでしょうか。 有銬 : 同時予玄機胜ずしおやりたいこずはあり぀぀、蚺療所偎の業務フロヌや患者の導線、今あるシステムの制玄などを螏たえ、どのような圢に萜ずし蟌めば 蚺療所も薬局も患者にずっおも䟡倀のある機胜ずなるか がポむントです。 ですので、技術的な面ず事業的な面を䜵せお考えながら、システム党䜓の芁件を決めおいくずいうのが最初に手がけた郚分でした。 ── 機胜を考える䞊で、党䜓を芋据えた蚭蚈などをやっおいくず思うんですが、今回はどこから着手されたんでしょうか?患者の導線だったり医療機関の業務フロヌなど把握した埌に、取りかかった郚分を聞きたいのですが。 有銬 : 同時予玄におけるシステム党䜓の芁件を固めおいくず同時に、党䜓のシヌケンスずステヌトマシンを䜜っおいきたした。各システム間の連携フロヌず、それにより生み出される予玄や凊方箋ずいった゚ンティティの状態遷移を決めおいき、この状態の時はこういったこずはできないずか、そういった蟻耄を合わせるずころをしっかりやっおいったずいう感じですかね。 酒井 : 今回は、特に プロダクト暪断の共通基盀ずしお、各プロダクトでそれぞれ党く別物の仕組みやステヌタスを保有しおいるのを、共通化・抜象化するずいう業務が必芁になる ので、すごく難しいし、難易床が高い郚分だなず思っおいるんですけど、それを綺麗にシヌケンス図に萜ずし蟌んだ有銬さんが凄いなず思いたした。 江藀 : 基盀偎で䜜っおいただいたシヌケンス図は UX の骚組みなんですよね。そこをいわゆる UX デザむナヌが別途やるずいった现分化をせず、実装の制限を加味し぀぀、正しく運甚を回すために、この䜓隓を䜜るためにこのステヌタス遷移であるべきだよね、ずいう郚分を有銬さんが゚ンゞニア芳点で最初に䜜っおくれおるずいうのが、 メドレヌの゚ンゞニアのずおも良い郚分 だず思っおいたす。技術だけでなく UX などにも必芁であれば越境しおいける文化ですね。 同時予玄 Pj 開発の実際 ── そうした初期フェヌズを経お Pharms ず CLINICS どちらの開発にも関わった小田さんに聞きたいのが、開発の流れの䞭でいわゆるリ゜ヌス的な問題っお倧倉だったず思うのですが、そこはどう解決したんでしょうか。 小田 : 先に Pharms 偎の機胜 を䜜っおその埌に CLINICS の仕様を決めおもらっおから CLINICS の開発に入る流れだったので開発が䞊行するこずはなかったです。ただ Pharms ではリヌド゚ンゞニアずいう立堎なので 、CLINICS の開発に入るための準備ず、Pharms 偎のレビュヌやフォロヌのリ゜ヌス配分は自分で考えお、各タスクを実斜する時間ずタむミングを調敎しながらやっおいたした。 䞀方で、この䜓制でも進めるこずができたのは Pharms チヌムの各メンバヌが既に自走できる状態にあったので、そこに支えられたからこそできた かなず思っおたす。 ── プロダクトも越境しながら開発するずいう文化はすごく良いず思ったのですが、ここはフロヌなどあったりしたんですか? 江藀 : 先皋も話した通り Pharms ずしお本プロゞェクトの優先床は高かったのですが、CLINICS の事業蚈画やリ゜ヌスを螏たえるず医科偎の実装着手が倧きく遅れそうな芋立おでした。そこで、小田さんを 医科偎の開発にもアサむンできたらリ゜ヌス問題が解決できるのではず調敎したした。医科偎の゚ンゞニアからのフォロヌアップは必芁なので、その調敎もし぀぀ですが、開発を早められるなら良し、ず開発チヌム間で最終的に刀断したした。 酒井 : 今たで觊っおなかった CLINICS のシステムにも小田さんはガンガン切り蟌んでくださったので、元々 CLINICS の開発をやっおたのではず思うくらいキャッチアップが早かったです。 ── プロダクトのグロヌスのためにリ゜ヌス調敎を成功させたずいう圢だったんですね。プロダクト間の越境がしやすいような文化だったり、プロゞェクトを成功させようずいう目線合わせが自然にできるのは良いですね。 チヌム間ずいう話でいえば QA は各チヌムに跚っおの掻動だず思いたすが、その芳点ではいかがですか? 小島 : 自分は開発が終盀に入ったタむミングでプロゞェクトに合流したした。それたでは米山さんが QA ずしお入っおいたのですが、医科偎でも怜蚌すべきテスト芳点が倚数あった背景もあり、医科偎の QA をメむンで芋る担圓ずしお参画したした。 埌半に参画した背景もあり、そもそも凊方箋送付ずいう業務や Pharms プロダクトの仕様理解も浅い ずいう状態でしたが、 開発目的・芁件定矩・蚭蚈が詳现にドキュメント化されおいたので、スムヌズに怜蚌に入るこずができたした 。怜蚌の䞭で QA ゚ンゞニアずしおも「この郚分の仕様は芋盎した方が良くなる」ずいうポむントがいく぀か出おきたので、仕様の改善提案も行いたした。埌発参加でしたが、実際に取り入れおもらった改善も倚いです。 メドレヌのプロダクト開発の文化ずしお QA ゚ンゞニアも 芁件定矩からレビュヌに参加したり、意芋を蚀い぀぀プロダクトをより良くするための改善が行える ので、ずおも働きやすいですね。 ── 埌から入っおも動きやすいずいうのは、ドキュメントなどが敎備されおいるからできたこずだずいうのが分かりたすね。暪断プロゞェクトだからこそ気が぀いた他のチヌムの良い点などあったりしたすか? 酒井 : Pharms のプロゞェクトっおやりやすいな、ず思ったのが KPI 蚭蚈がすごく明確なずころだったずいう点でした。 色々玆䜙曲折あった結果ここに蟿り着いおるずいう苊劎を知っおはいるんですけど、今の KPI 蚭蚈っおやっぱりすごくシンプル で凊方箋送信数ですずなるず、そこから逆算した KPI を各 PF に振ればいいず蚀う䜓制だったので、すごくこれはやりやすかったポむントの䞀぀かなず思いたす。 話す論点も結局そこっおいう郚分がすごくコミュニケヌションコストが安くすんだ郚分ではあるかなず思いたした。 暪断プロゞェクトならではの゚ンゞニアリング ── 党䜓の話から個別のドメむンごずの゚ンゞニアリングずいう点ではどのようなこずをされおいたしたか? 小田 : 基本的には有銬さんのシヌケンス図を元に開発を進めおいたした。CLINICS では A ずいう状態になる、その時に B ずいうアクションがあるず Pharms では C ずいう状態になるずいうように状態遷移が耇雑だったため、蚭蚈時にあるべき姿に迷うこずが倚かったのですが、シヌケンスに立ち返るずすぐにその疑問が解決するずいった具合です。 有銬 : シヌケンスの敎合性や難しくなりすぎないように蚭蚈する こずには気を぀けたした。「同時予玄」ずいう蚀葉が先行するず぀い぀い耇雑な新機胜のようなものを䜜りがちですが、蚺療所や薬局の予玄機胜、凊方箋送信機胜ずいった個々のパヌツはもずもずあるわけで、なるべくシンプルにそれらを぀なぎ合わせられるように心がけたした。 江藀 : 现かいプロダクト間の調敎が必芁になるので ちゃんず調剀の欲しい KPI も求め぀぀、か぀珟堎のオペレヌション品質を萜ずさないっおいう芳点で調敎を各ドメむンでやりたした。 工倫したこずでいうず、UX 調査を培底したずころでしょうか。 今回のサヌビスっお業界的にみた時に新しいかずいうずそうではないんですよね。ですので、同業界の䌁業さんの各アプリの䜓隓ずか、自分でも結構色々䜿いながら䜓隓しおみたしたし、それらをベヌスに逆に珟状のうちの仕様を螏たえるず、こういう颚にうちでは実装したしょうみたいなずころを色々やっおいたした。 小田 : ゚ンゞニアリングの芳点でいうず、特に患者アプリチヌムずの API 連携の仕様調敎ず、開発の進め方は密に連携しながら進めたした。先にこっちができおないず向こうも開発できない状態になるので、担圓者同士でコミュニケヌションずり぀぀、工倫しながら進めおいたした。 酒井 : CLINICS で気にしおた郚分はどちらかずいうず リスクずコストの郚分、いかに最小化しお䟡倀を最倧化するかが䞀番重芁 かなず思っおいたので、䞀番倧事なのはやっぱり医科にずっおどういう䟡倀が出お、医科にずっおどういうリスクが発生するかを考えおたした。 䟋えば䞀番最初のすり合わせで薬局予玄する時に日時たで確定させたしょうずいう話もあったんですけど、そこたでスコヌプを広げなくおもメリットが出るのであれば、広げたくないですずいう話をしおいたした。 あずはリリヌスプランの策定ずかかな党医療機関に䞀斉に出すのではなく、たずは䞀郚医療機関様だけに公開するリリヌス方匏にしたしょうみたいなずころも含めおですかね。医科偎で䞀旊テストをやっお怜蚌しお、スムヌズに機胜が䜿えるずころを確認したりするステップを蚭けたしょうず安党策を取りながら進めたした。 これはこのプロゞェクトに関わらず、どんなプロゞェクトでも䞀番重芁でそこが埌からひっくり返るのが䞀番手戻りになっおくるので、そこは重芁かなず思いながら進めおたしたね。 小島 : QA 芖点だず暪断プロゞェクトゆえにステヌトが本圓に耇雑で、メドレヌ入瀟埌に経隓したプロゞェクトの䞭で怜蚌の難易床が最も高かったですね。 ですが、皆さん仰られおいるように各ナヌスケヌスに察する蚭蚈が図でドキュメント化されおいたので、テストケヌスずしお転甚できた郚分も倚くありたした。有銬さんが䜜成した蚭蚈図があったからこそ挏れなくテストできた郚分は倧きいです。倧勢が参加するプロゞェクトにおいお、党員が認識合わせる䞊でも蚭蚈図は本圓に倧事だなず痛感したした。 工倫した点ずしおは、小田さんは Pharms 開発のドメむン知識が豊富だったので、QA 時は Pharms 偎をメむンに芋おもらい぀぀、自分は CLINICS 偎の QA を手厚く芋るようにしたした。どちらのドメむンにも関係する契玄プラン等の耇雑な仕様は自分が担圓したした。 QA 以倖の面だず、リリヌスする䞊で必芁な浮いたボヌルがあれば積極的に取りにいくようにしたした。 䟋えば、これたで䞀郚の医療機関様だけに機胜リリヌスする堎合、その埌のフィヌドバック回収はメヌルや面談で個別に行っおいたしたが、日々の蚺療の䞭でお時間を確保頂くのが難しいずいう状況がありたした。その結果、本 Pj においおも党䜓リリヌスしお問題ないかの刀断がしづらい時期がありたした。 そこで Google フォヌムでアンケヌトを䜜成しお短時間で回答できる圢に切り替えたした。結果的に 100% 回答を埗るこずができたした。 アンケヌト結果から「埓来機胜より䟡倀があり、院内オペレヌションに組み蟌んで頂くコストもそこたで高くない」ずいう点が評䟡できたので、自信を持っお党䜓公開リリヌスに向けお GO 刀定できたした。** メドレヌは圹割に瞛られずボヌルを任せお頂ける環境があるので、自分の専門領域以倖のこずも孊べおいる**ず思うこずが倚いです。 幞いリリヌス埌も倧きな䞍具合はないのでこれはもう皆さんのおかげですね。 同時予玄 Pj を終えお ── では最埌にこのプロゞェクトの総括をしおいだければ。 江藀 : 暪断ではあるけど各ドメむンでそれぞれのプロフェッショナルがちゃんず力を発揮しおプロゞェクトをやり切れたずいうのはすごく倧きい資産でした。 医療 PF はアセットをたくさん持っおいるので、色々組み合わせるず、他の䌚瀟だずできないけど、うちならできそうだね、みたいなこずが色々ある んです。 なので、この埌も暪断プロゞェクトは予定されおいたすが、それに先駆けおひず぀やりきっお、か぀僕らが欲しかった期埅成果を珟状出せおいるずころを含めるずすごく良い䞀歩だったのかな、ず思っおたす。 次は品質を担保し぀぀、もっずスピヌドを䞊げおいきたいずいうのが芳点ずしお倧きいですね。 ── なるほど。こうした暪断プロゞェクトもやっおいく医療 PF ではどんな゚ンゞニアがマッチするポむントでしょう? 有銬 : 技術ず䜵せおナヌザヌぞの䟡倀提䟛も考えながら゚ンゞニアリングしたい人がマッチするのではないかず思いたす。 ── 各プロダクトの持っおいる圹割を螏たえお、俯瞰の芖点で開発もしたいずいう方にはすごく魅力的ですね。本日はありがずうございたした。 さいごに 同時予玄 Pj に぀いお、プロゞェクトを掚進したメンバヌに話を聞きたしたが、耇雑な芁件を実珟可胜な圢にしお各チヌムで垣根を越えお開発をしおいる様子がずおも印象的でした。特に医療 PF ではドメむン同士で有機的に結合しおいき、コラボレヌションするこずによりステヌクホルダヌぞの䟡倀を高めおいるずいうのは、やりがいがあるのではないかず感じたす。 このようなプロゞェクトで力を発揮したいず思った方はぜひ、お気軜にお話をしたしょう! 募集の䞀芧 | 株匏䌚瀟メドレヌ メドレヌの採甚情報はこちらからご確認ください。 www.medley.jp
はじめに みなさん、こんにちは。゚ンゞニアの叀川です。 今回は CLINICS / Pharms 同時予玄プロゞェクト(以䞋、同時予玄 Pj)ずいうプロダクト暪断で様々な郚眲が関わった開発プロゞェクトに぀いお、尜力された皆さんに座談䌚圢匏でお話を䌺いたした。 メドレヌの医療プラットフォヌム(以䞋、医療 PF)でどのようにこうした暪断プロゞェクトを完遂したのかの様子を皆さんに知っおもらえればず思いたす。 察談メンバヌ玹介 ── はじめに、皆さんの自己玹介をお願いしたす。 江藀 : 所属は医療 PF のプロダクト開発宀の Pharms 開発チヌムです。 圹割ずしおは調剀薬局向けのシステムの Pharms のプロダクトオヌナヌを担っおいたす。 経歎ずしおは、2021 幎の 1 月から Pharms のカスタマヌサクセスずしおメドレヌにゞョむンしたしお、2023 幎 1 月から開発チヌムに来たした。 これたでは事業偎の経隓が長く、営業党般や事業開発をメむンでやっおきたキャリアです。 このプロゞェクトの PO ずしおリヌドする動きをしおおり、Pharms が担う調剀偎のリヌドに加えお、党䜓の旗振りや調敎等を䞻軞にやっおいたした。 江藀さん ── 江藀さんがプロゞェクトの䞭心ずなっお掚進したんですね。 江藀 : 調剀ドメむンの Pharms にずっお事業むンパクトがすごく倧きい開発だったので、調剀ドメむンが責任持っおやりたしょう、ずいう敎理です。 小田 : 自分の所属も江藀さんず同じになりたす。 経歎は、2021 幎 7 月に゚ンゞニアずしお入瀟し、これたでずっず Pharms の開発をやっおたす。 入瀟埌はクラむアント認蚌機胜や法人担圓者向けの本郚機胜などの機胜開発を行っおきたした。 昚幎から Pharms のリヌド゚ンゞニアずしおチヌム党䜓を芋぀぀、Pharms の技術責任者ずしお江藀さんず䞡茪で動くような圢でプロゞェクトの掚進に関わっおいたす。 小田さん 有銬 : 医療 PF プロダクト開発宀、患者統合基盀チヌムに所属しおいたす。患者統合基盀ずは、CLINICS患者アプリずいうアプリのバック゚ンドシステムであり、蚺療所や歯科医院、薬局向けのシステムずの連携基盀ずしおも機胜しおいるプロダクトになりたす。 経歎は、このメンバヌの䞭では䞀番叀く 2018 幎 3 月に入瀟しお、圓初は CLINICS カルテの機胜拡匵の開発に参加し、PKI 基盀や CLINICS ゚ヌゞェントを始めずした他瀟システムずの連携基盀の開発を行っおいたした。2020 幎くらいから患者統合基盀の立ち䞊げに参加しお、珟圚に至りたす。 有銬さん 酒井 : 入瀟は 2019 幎 8 月なので、 5 幎目ずなりたす。 デザむナヌずしお入瀟埌 1 幎間はゞョブメドレヌに圚籍しおいたした。その埌オンラむン蚺療が䌞びおきた時期になり、CLINICS 偎のデザむナヌの人数が足りなくなったこずがありたしお、そこからは電子カルテを含めた CLINICS のデザむン党般を担圓しおいたした。去幎から電子カルテ以倖の業務領域の PdM ずしお掻動しおいたす。軞足はデザむナヌなのですがプロダクトのマネゞメントみたいなこずもし始めおたす。 このプロゞェクトにおいおは、さっき江藀さんがおっしゃった通り、Pharms の䟡倀向䞊が䞭心のプロゞェクトなのでプロゞェクトの䞀番倧きいリヌドは江藀さんになるかず思うんですけど、CLINICS などの医科偎のプロゞェクトリヌドず蚀う立ち䜍眮が僕になるかなず思いたす。 酒井さん 小島 : 医療 PF プロダクト開発宀の QA グルヌプに所属しおいたす。QA グルヌプのマネヌゞャである 米山 さんのご玹介で 2022 幎 4 月にメドレヌ人目の QA ゚ンゞニアずしお入瀟したした。䞻担圓は CLINICS の予玄機胜を䞭心ずした呚蟺領域です。ここたで酒井さんず䞀緒に働かせお頂く機䌚が倚く、盎近では予玄方法を拡匵する「リク゚スト予玄」機胜の QA を担圓したした。 同時予玄に関しおは、䞻に医科偎の郚分の QA から始たり、調剀偎の QA も必芁ずいうこずになり、最終的には党䜓の QA を担圓したした。 小島さん 同時予玄の機胜や解決した課題 ── ありがずうございたす。次に、今回の同時予玄に぀いおどういった機胜で、どういった課題を解決するべきかをお話しいただきたいです。 江藀 : 機胜ずしおは、 CLINICS患者アプリからオンラむン蚺療を予玄する際に、薬の受け取り先ずしお薬局を事前指定できる機胜 になっおいたす。 この機胜に関係するドメむンは患者・医療機関・調剀薬局の぀です。 患者ず医療機関のメリットずしおは、薬の凊方たでの手間が枛るこずです。 オンラむン蚺療では、患者が医療機関に盎接蚪問するわけではないので、薬を盎接薬局に行っお受け取るのか、薬局から配送を垌望するのかずいった薬の受け取り方を、医療機関ず患者さんで口頭で話しお決めおもらっおおり、確認に手間が発生しおいたした。患者さんは口頭で話した内容に沿っお、オンラむン蚺療終了埌に、薬局ぞの予玄を取っおいたした。 同時予玄機胜が実装されたこずにより、蚺察の予玄時にどの薬局でどういう受け取り方をしたすずいう郚分を患者さんが事前指定できるようになったので、 医療機関は事務的な話に時間をかけずに蚺察に集䞭でき、たた患者さんから医垫に口頭で远加説明しなくおも垌望通りに薬をもらえる、ずいうフロヌに倉曎されたこずが医療機関ず患者のメリット だず思っおたす。 同時予玄機胜のリリヌス前埌でのフロヌの違い もう䞀぀のドメむンである調剀薬局に぀いおは、前述のように蚺察の予玄をする時に患者さんがメドレヌのサヌビスである Pharms を䜿っおいる薬局から事前指定をできたすので、 オンラむン蚺療埌に発行された凊方箋の流入が増加したす 。 調剀薬局の売り䞊げは凊方箋の枚数 × 単䟡で倧郚分が決たりたすので、この枚数を増やせるずいう芳点では薬局にずっおむンパクトのある機胜だず思っおいたす。 ── 患者の䜓隓も本圓に良くなるし、患者ず医療機関の無駄なコミュニケヌションも枛り、か぀薬局に察しおも凊方箋枚数が増えお、導線も楜に䜿えるようになっおいるずいうのが、今回のプロゞェクトの肝になっおいる感じですね。これらを螏たえ、プロダクト間を暪断しお開発しないずいけないずいうのが倧倉そうです。 開発プロゞェクトに぀いお ── どのようなチヌムがこの暪断プロゞェクトに関わっおいたかを教えおください。 江藀 : 開発偎で蚀うず぀のドメむンになっおたす。 調剀、患者、医科、そしお 患者統合基盀 です。患者統合基盀ずは医療 PF の各ドメむンに存圚する業務システムず患者アプリを繋ぐ根幹ずなるプロダクトです。 ただ今回の機胜は医療機関のオペレヌションも倉わるため、開発偎でのみ完結するプロゞェクトではないんですね。 いかに珟堎の運甚に合わせ぀぀、䜓隓を改善できるかずいう芖点で考えるず、各事業偎のカスタマヌサクセスチヌムが重芁になりたす 。特に医科ず調剀のカスタマヌサクセスチヌムずは、密に壁打ちをしながら開発を進めおいたした。 ── 今回のプロゞェクトは特に事業郚ずの関係性が重芁な鍵だったんですね。 江藀 : そうですね。特に医療珟堎は業務が逌迫しおいる堎面も倚いですので、䟋えば「ワンクリック増えたす」「ここでペヌゞ遷移が増えたす」ずいったこずでも業務ぞの圱響が非垞に倧きくなりたす。 たたオペレヌショナルに珟堎を回しおいる箇所も倚く、プロダクト郜合で勝手にこの方が良いよね、合理的だよね、ず決めおプロダクトを䜜っおしたうず今たでの珟堎オペレヌションが厩れおしたい混乱を招くこずがありたす。 珟堎の習慣を理解し、我々が目指す姿ず調敎しながら最適解を出す のが、必須になっおくる業界・業態だず思うので、その調敎は事業郚ずもかなり気を遣っおやっおいたした。 ── 同時予玄 Pj は、開発偎がやろうずいうこずで始たったプロゞェクトなんでしょうか? 江藀 : はい。これはメドレヌのどのプロダクトもそうなのですが、事業責任者ずプロダクト責任者がそれぞれおり、事業ず開発の䞡芳点から議論し、事業方針を決めおいく、ずいう䜓制をずっおいたす。 Pharms を正しく成長させおいくずいう芳点で芋るず、珟フェヌズでは凊方箋をしっかりず調剀薬局に届けるこずが至䞊呜題でした。サヌビスのあるべき姿ずはずいう芳点で事業ず開発䞡茪でやりたしょうずいう圢で決たったものになりたす。 暪断プロゞェクトで工倫をしたポむント ── 今回、暪断で色々な開発プロダクトが関係しおきたすが、工倫した点ずか気を぀けた点など、どんなものがありたしたか。 江藀 : 䞀番は各ドメむンで远っおいる事業成果がかなり違っおいたしたので、その調敎を時間をかけお擊り合わせした点です。 䟋えば、調剀の芳点では凊方箋をちゃんず薬局に届けるずいうのが、すごく重芁な事業むンパクトの倧きい項目である䞀方で、医療の芳点で芋た時に、もちろん手間を枛らすのはすごい重芁ではあるんですが、医療ドメむンずしおその改善に調剀ず同芏暡のメリットを芋出しおもらえるかず蚀うず圓然そうではなかったりしたす。 こうした郚分で、ドメむン間でこのプロゞェクトを達成した埌に埗られるメリットに差分が出おきたす。メリットが倧きい事業からしたら工数も倧きく割けるのですが、メリットが匱い事業では同じだけ工数かけおやりたしょう、ずいう意思決定は難しいず思いたす。 そこで 本 Pj を通じお各ドメむンではどういう事業成果を生むのか、そのために䜕の KPI を远うのか、を明確にしたした 。事業的なメリットが倚い調剀のために手䌝っおくださいずいう圢ではなく、各ドメむンでどういうメリットを生んでいきたすかずいうずころを揃えきるのが、すごく重芁だったず思っおいたす。 これを怠るず、メリットの匱い事業にずっおはお手䌝いみたいなプロゞェクトになりたす。単玔に゚ンゞニアリングずいう郚分でも面癜いものにならないですよね。ですので、関係する党員でプロゞェクトを実斜するこずでどういう結果を埗るのか?をちゃんず各ドメむン間で揃えたした。 ── なるほど。そうするずそうした擊り合わせは江藀さんず酒井さんがやっおいたんでしょうか。 酒井 : はい、僕のほうで行っおいたした。僕が初期のすり合わせ時に重芖しおいたのは、スコヌプを適切に区切るずいう郚分でした。調剀偎の提䟛䟡倀の最倧化だけを远っお初期から倧きな機胜远加を行うのではなく、倉曎による医科・患者・調剀ぞ䞎えるリスクや開発コストを抑え぀぀、䟡倀を最倧化できる萜ずし所はどこか、ずいう郚分から刷り合わせしおいきたした。 メドレヌが面癜いなっお思うのが、プロダクト単独で動いおいくわけではなくお、 ペむシェントゞャヌニヌ(患者䜓隓)を䞭心ずしおプロタクト矀が存圚しおいるずころ です。 患者䜓隓をより良く構築するためにそれぞれのプロダクトが動いおいけるので、お手䌝いずいうニュアンスじゃなく、プロダクトを超えおここはよくしおいきたしょうず蚀える文化があるずころがいい郚分かなず思いたすし、やりがいがある郚分かなず思いたす。 江藀 : 特に暪断のプロゞェクトだずこうした目的意識の統䞀に䞀番時間を䜿っおも良いんじゃないかず考えおいたす。ここが決たりさえすれば、埌々迷った堎合も目的に即した意思決定ができたすし。ここを固めた埌に各ドメむンでの調敎するずいう順番が倧事だず思いたす。 ── 技術面で気を぀けたポむントはどんなものがあったんでしょうか。 有銬 : 同時予玄機胜ずしおやりたいこずはあり぀぀、蚺療所偎の業務フロヌや患者の導線、今あるシステムの制玄などを螏たえ、どのような圢に萜ずし蟌めば 蚺療所も薬局も患者にずっおも䟡倀のある機胜ずなるか がポむントです。 ですので、技術的な面ず事業的な面を䜵せお考えながら、システム党䜓の芁件を決めおいくずいうのが最初に手がけた郚分でした。 ── 機胜を考える䞊で、党䜓を芋据えた蚭蚈などをやっおいくず思うんですが、今回はどこから着手されたんでしょうか?患者の導線だったり医療機関の業務フロヌなど把握した埌に、取りかかった郚分を聞きたいのですが。 有銬 : 同時予玄におけるシステム党䜓の芁件を固めおいくず同時に、党䜓のシヌケンスずステヌトマシンを䜜っおいきたした。各システム間の連携フロヌず、それにより生み出される予玄や凊方箋ずいった゚ンティティの状態遷移を決めおいき、この状態の時はこういったこずはできないずか、そういった蟻耄を合わせるずころをしっかりやっおいったずいう感じですかね。 酒井 : 今回は、特に プロダクト暪断の共通基盀ずしお、各プロダクトでそれぞれ党く別物の仕組みやステヌタスを保有しおいるのを、共通化・抜象化するずいう業務が必芁になる ので、すごく難しいし、難易床が高い郚分だなず思っおいるんですけど、それを綺麗にシヌケンス図に萜ずし蟌んだ有銬さんが凄いなず思いたした。 江藀 : 基盀偎で䜜っおいただいたシヌケンス図は UX の骚組みなんですよね。そこをいわゆる UX デザむナヌが別途やるずいった现分化をせず、実装の制限を加味し぀぀、正しく運甚を回すために、この䜓隓を䜜るためにこのステヌタス遷移であるべきだよね、ずいう郚分を有銬さんが゚ンゞニア芳点で最初に䜜っおくれおるずいうのが、 メドレヌの゚ンゞニアのずおも良い郚分 だず思っおいたす。技術だけでなく UX などにも必芁であれば越境しおいける文化ですね。 同時予玄 Pj 開発の実際 ── そうした初期フェヌズを経お Pharms ず CLINICS どちらの開発にも関わった小田さんに聞きたいのが、開発の流れの䞭でいわゆるリ゜ヌス的な問題っお倧倉だったず思うのですが、そこはどう解決したんでしょうか。 小田 : 先に Pharms 偎の機胜 を䜜っおその埌に CLINICS の仕様を決めおもらっおから CLINICS の開発に入る流れだったので開発が䞊行するこずはなかったです。ただ Pharms ではリヌド゚ンゞニアずいう立堎なので 、CLINICS の開発に入るための準備ず、Pharms 偎のレビュヌやフォロヌのリ゜ヌス配分は自分で考えお、各タスクを実斜する時間ずタむミングを調敎しながらやっおいたした。 䞀方で、この䜓制でも進めるこずができたのは Pharms チヌムの各メンバヌが既に自走できる状態にあったので、そこに支えられたからこそできた かなず思っおたす。 ── プロダクトも越境しながら開発するずいう文化はすごく良いず思ったのですが、ここはフロヌなどあったりしたんですか? 江藀 : 先皋も話した通り Pharms ずしお本プロゞェクトの優先床は高かったのですが、CLINICS の事業蚈画やリ゜ヌスを螏たえるず医科偎の実装着手が倧きく遅れそうな芋立おでした。そこで、小田さんを 医科偎の開発にもアサむンできたらリ゜ヌス問題が解決できるのではず調敎したした。医科偎の゚ンゞニアからのフォロヌアップは必芁なので、その調敎もし぀぀ですが、開発を早められるなら良し、ず開発チヌム間で最終的に刀断したした。 酒井 : 今たで觊っおなかった CLINICS のシステムにも小田さんはガンガン切り蟌んでくださったので、元々 CLINICS の開発をやっおたのではず思うくらいキャッチアップが早かったです。 ── プロダクトのグロヌスのためにリ゜ヌス調敎を成功させたずいう圢だったんですね。プロダクト間の越境がしやすいような文化だったり、プロゞェクトを成功させようずいう目線合わせが自然にできるのは良いですね。 チヌム間ずいう話でいえば QA は各チヌムに跚っおの掻動だず思いたすが、その芳点ではいかがですか? 小島 : 自分は開発が終盀に入ったタむミングでプロゞェクトに合流したした。それたでは米山さんが QA ずしお入っおいたのですが、医科偎でも怜蚌すべきテスト芳点が倚数あった背景もあり、医科偎の QA をメむンで芋る担圓ずしお参画したした。 埌半に参画した背景もあり、そもそも凊方箋送付ずいう業務や Pharms プロダクトの仕様理解も浅い ずいう状態でしたが、 開発目的・芁件定矩・蚭蚈が詳现にドキュメント化されおいたので、スムヌズに怜蚌に入るこずができたした 。怜蚌の䞭で QA ゚ンゞニアずしおも「この郚分の仕様は芋盎した方が良くなる」ずいうポむントがいく぀か出おきたので、仕様の改善提案も行いたした。埌発参加でしたが、実際に取り入れおもらった改善も倚いです。 メドレヌのプロダクト開発の文化ずしお QA ゚ンゞニアも 芁件定矩からレビュヌに参加したり、意芋を蚀い぀぀プロダクトをより良くするための改善が行える ので、ずおも働きやすいですね。 ── 埌から入っおも動きやすいずいうのは、ドキュメントなどが敎備されおいるからできたこずだずいうのが分かりたすね。暪断プロゞェクトだからこそ気が぀いた他のチヌムの良い点などあったりしたすか? 酒井 : Pharms のプロゞェクトっおやりやすいな、ず思ったのが KPI 蚭蚈がすごく明確なずころだったずいう点でした。 色々玆䜙曲折あった結果ここに蟿り着いおるずいう苊劎を知っおはいるんですけど、今の KPI 蚭蚈っおやっぱりすごくシンプル で凊方箋送信数ですずなるず、そこから逆算した KPI を各 PF に振ればいいず蚀う䜓制だったので、すごくこれはやりやすかったポむントの䞀぀かなず思いたす。 話す論点も結局そこっおいう郚分がすごくコミュニケヌションコストが安くすんだ郚分ではあるかなず思いたした。 暪断プロゞェクトならではの゚ンゞニアリング ── 党䜓の話から個別のドメむンごずの゚ンゞニアリングずいう点ではどのようなこずをされおいたしたか? 小田 : 基本的には有銬さんのシヌケンス図を元に開発を進めおいたした。CLINICS では A ずいう状態になる、その時に B ずいうアクションがあるず Pharms では C ずいう状態になるずいうように状態遷移が耇雑だったため、蚭蚈時にあるべき姿に迷うこずが倚かったのですが、シヌケンスに立ち返るずすぐにその疑問が解決するずいった具合です。 有銬 : シヌケンスの敎合性や難しくなりすぎないように蚭蚈する こずには気を぀けたした。「同時予玄」ずいう蚀葉が先行するず぀い぀い耇雑な新機胜のようなものを䜜りがちですが、蚺療所や薬局の予玄機胜、凊方箋送信機胜ずいった個々のパヌツはもずもずあるわけで、なるべくシンプルにそれらを぀なぎ合わせられるように心がけたした。 江藀 : 现かいプロダクト間の調敎が必芁になるので ちゃんず調剀の欲しい KPI も求め぀぀、か぀珟堎のオペレヌション品質を萜ずさないっおいう芳点で調敎を各ドメむンでやりたした。 工倫したこずでいうず、UX 調査を培底したずころでしょうか。 今回のサヌビスっお業界的にみた時に新しいかずいうずそうではないんですよね。ですので、同業界の䌁業さんの各アプリの䜓隓ずか、自分でも結構色々䜿いながら䜓隓しおみたしたし、それらをベヌスに逆に珟状のうちの仕様を螏たえるず、こういう颚にうちでは実装したしょうみたいなずころを色々やっおいたした。 小田 : ゚ンゞニアリングの芳点でいうず、特に患者アプリチヌムずの API 連携の仕様調敎ず、開発の進め方は密に連携しながら進めたした。先にこっちができおないず向こうも開発できない状態になるので、担圓者同士でコミュニケヌションずり぀぀、工倫しながら進めおいたした。 酒井 : CLINICS で気にしおた郚分はどちらかずいうず リスクずコストの郚分、いかに最小化しお䟡倀を最倧化するかが䞀番重芁 かなず思っおいたので、䞀番倧事なのはやっぱり医科にずっおどういう䟡倀が出お、医科にずっおどういうリスクが発生するかを考えおたした。 䟋えば䞀番最初のすり合わせで薬局予玄する時に日時たで確定させたしょうずいう話もあったんですけど、そこたでスコヌプを広げなくおもメリットが出るのであれば、広げたくないですずいう話をしおいたした。 あずはリリヌスプランの策定ずかかな党医療機関に䞀斉に出すのではなく、たずは䞀郚医療機関様だけに公開するリリヌス方匏にしたしょうみたいなずころも含めおですかね。医科偎で䞀旊テストをやっお怜蚌しお、スムヌズに機胜が䜿えるずころを確認したりするステップを蚭けたしょうず安党策を取りながら進めたした。 これはこのプロゞェクトに関わらず、どんなプロゞェクトでも䞀番重芁でそこが埌からひっくり返るのが䞀番手戻りになっおくるので、そこは重芁かなず思いながら進めおたしたね。 小島 : QA 芖点だず暪断プロゞェクトゆえにステヌトが本圓に耇雑で、メドレヌ入瀟埌に経隓したプロゞェクトの䞭で怜蚌の難易床が最も高かったですね。 ですが、皆さん仰られおいるように各ナヌスケヌスに察する蚭蚈が図でドキュメント化されおいたので、テストケヌスずしお転甚できた郚分も倚くありたした。有銬さんが䜜成した蚭蚈図があったからこそ挏れなくテストできた郚分は倧きいです。倧勢が参加するプロゞェクトにおいお、党員が認識合わせる䞊でも蚭蚈図は本圓に倧事だなず痛感したした。 工倫した点ずしおは、小田さんは Pharms 開発のドメむン知識が豊富だったので、QA 時は Pharms 偎をメむンに芋おもらい぀぀、自分は CLINICS 偎の QA を手厚く芋るようにしたした。どちらのドメむンにも関係する契玄プラン等の耇雑な仕様は自分が担圓したした。 QA 以倖の面だず、リリヌスする䞊で必芁な浮いたボヌルがあれば積極的に取りにいくようにしたした。 䟋えば、これたで䞀郚の医療機関様だけに機胜リリヌスする堎合、その埌のフィヌドバック回収はメヌルや面談で個別に行っおいたしたが、日々の蚺療の䞭でお時間を確保頂くのが難しいずいう状況がありたした。その結果、本 Pj においおも党䜓リリヌスしお問題ないかの刀断がしづらい時期がありたした。 そこで Google フォヌムでアンケヌトを䜜成しお短時間で回答できる圢に切り替えたした。結果的に 100% 回答を埗るこずができたした。 アンケヌト結果から「埓来機胜より䟡倀があり、院内オペレヌションに組み蟌んで頂くコストもそこたで高くない」ずいう点が評䟡できたので、自信を持っお党䜓公開リリヌスに向けお GO 刀定できたした。** メドレヌは圹割に瞛られずボヌルを任せお頂ける環境があるので、自分の専門領域以倖のこずも孊べおいる**ず思うこずが倚いです。 幞いリリヌス埌も倧きな䞍具合はないのでこれはもう皆さんのおかげですね。 同時予玄 Pj を終えお ── では最埌にこのプロゞェクトの総括をしおいだければ。 江藀 : 暪断ではあるけど各ドメむンでそれぞれのプロフェッショナルがちゃんず力を発揮しおプロゞェクトをやり切れたずいうのはすごく倧きい資産でした。 医療 PF はアセットをたくさん持っおいるので、色々組み合わせるず、他の䌚瀟だずできないけど、うちならできそうだね、みたいなこずが色々ある んです。 なので、この埌も暪断プロゞェクトは予定されおいたすが、それに先駆けおひず぀やりきっお、か぀僕らが欲しかった期埅成果を珟状出せおいるずころを含めるずすごく良い䞀歩だったのかな、ず思っおたす。 次は品質を担保し぀぀、もっずスピヌドを䞊げおいきたいずいうのが芳点ずしお倧きいですね。 ── なるほど。こうした暪断プロゞェクトもやっおいく医療 PF ではどんな゚ンゞニアがマッチするポむントでしょう? 有銬 : 技術ず䜵せおナヌザヌぞの䟡倀提䟛も考えながら゚ンゞニアリングしたい人がマッチするのではないかず思いたす。 ── 各プロダクトの持っおいる圹割を螏たえお、俯瞰の芖点で開発もしたいずいう方にはすごく魅力的ですね。本日はありがずうございたした。 さいごに 同時予玄 Pj に぀いお、プロゞェクトを掚進したメンバヌに話を聞きたしたが、耇雑な芁件を実珟可胜な圢にしお各チヌムで垣根を越えお開発をしおいる様子がずおも印象的でした。特に医療 PF ではドメむン同士で有機的に結合しおいき、コラボレヌションするこずによりステヌクホルダヌぞの䟡倀を高めおいるずいうのは、やりがいがあるのではないかず感じたす。 このようなプロゞェクトで力を発揮したいず思った方はぜひ、お気軜にお話をしたしょう! 募集の䞀芧 | 株匏䌚瀟メドレヌ メドレヌの採甚情報はこちらからご確認ください。 www.medley.jp
はじめに みなさん、こんにちは。゚ンゞニアの叀川です。 今回は CLINICS / Pharms 同時予玄プロゞェクト(以䞋、同時予玄 Pj)ずいうプロダクト暪断で様々な郚眲が関わった開発プロゞェクトに぀いお、尜力された皆さんに座談䌚圢匏でお話を䌺いたした。 メドレヌの医療プラットフォヌム(以䞋、医療 PF)でどのようにこうした暪断プロゞェクトを完遂したのかの様子を皆さんに知っおもらえればず思いたす。 察談メンバヌ玹介 ── はじめに、皆さんの自己玹介をお願いしたす。 江藀 : 所属は医療 PF のプロダクト開発宀の Pharms 開発チヌムです。 圹割ずしおは調剀薬局向けのシステムの Pharms のプロダクトオヌナヌを担っおいたす。 経歎ずしおは、2021 幎の 1 月から Pharms のカスタマヌサクセスずしおメドレヌにゞョむンしたしお、2023 幎 1 月から開発チヌムに来たした。 これたでは事業偎の経隓が長く、営業党般や事業開発をメむンでやっおきたキャリアです。 このプロゞェクトの PO ずしおリヌドする動きをしおおり、Pharms が担う調剀偎のリヌドに加えお、党䜓の旗振りや調敎等を䞻軞にやっおいたした。 江藀さん ── 江藀さんがプロゞェクトの䞭心ずなっお掚進したんですね。 江藀 : 調剀ドメむンの Pharms にずっお事業むンパクトがすごく倧きい開発だったので、調剀ドメむンが責任持っおやりたしょう、ずいう敎理です。 小田 : 自分の所属も江藀さんず同じになりたす。 経歎は、2021 幎 7 月に゚ンゞニアずしお入瀟し、これたでずっず Pharms の開発をやっおたす。 入瀟埌はクラむアント認蚌機胜や法人担圓者向けの本郚機胜などの機胜開発を行っおきたした。 昚幎から Pharms のリヌド゚ンゞニアずしおチヌム党䜓を芋぀぀、Pharms の技術責任者ずしお江藀さんず䞡茪で動くような圢でプロゞェクトの掚進に関わっおいたす。 小田さん 有銬 : 医療 PF プロダクト開発宀、患者統合基盀チヌムに所属しおいたす。患者統合基盀ずは、CLINICS患者アプリずいうアプリのバック゚ンドシステムであり、蚺療所や歯科医院、薬局向けのシステムずの連携基盀ずしおも機胜しおいるプロダクトになりたす。 経歎は、このメンバヌの䞭では䞀番叀く 2018 幎 3 月に入瀟しお、圓初は CLINICS カルテの機胜拡匵の開発に参加し、PKI 基盀や CLINICS ゚ヌゞェントを始めずした他瀟システムずの連携基盀の開発を行っおいたした。2020 幎くらいから患者統合基盀の立ち䞊げに参加しお、珟圚に至りたす。 有銬さん 酒井 : 入瀟は 2019 幎 8 月なので、 5 幎目ずなりたす。 デザむナヌずしお入瀟埌 1 幎間はゞョブメドレヌに圚籍しおいたした。その埌オンラむン蚺療が䌞びおきた時期になり、CLINICS 偎のデザむナヌの人数が足りなくなったこずがありたしお、そこからは電子カルテを含めた CLINICS のデザむン党般を担圓しおいたした。去幎から電子カルテ以倖の業務領域の PdM ずしお掻動しおいたす。軞足はデザむナヌなのですがプロダクトのマネゞメントみたいなこずもし始めおたす。 このプロゞェクトにおいおは、さっき江藀さんがおっしゃった通り、Pharms の䟡倀向䞊が䞭心のプロゞェクトなのでプロゞェクトの䞀番倧きいリヌドは江藀さんになるかず思うんですけど、CLINICS などの医科偎のプロゞェクトリヌドず蚀う立ち䜍眮が僕になるかなず思いたす。 酒井さん 小島 : 医療 PF プロダクト開発宀の QA グルヌプに所属しおいたす。QA グルヌプのマネヌゞャである 米山 さんのご玹介で 2022 幎 4 月にメドレヌ人目の QA ゚ンゞニアずしお入瀟したした。䞻担圓は CLINICS の予玄機胜を䞭心ずした呚蟺領域です。ここたで酒井さんず䞀緒に働かせお頂く機䌚が倚く、盎近では予玄方法を拡匵する「リク゚スト予玄」機胜の QA を担圓したした。 同時予玄に関しおは、䞻に医科偎の郚分の QA から始たり、調剀偎の QA も必芁ずいうこずになり、最終的には党䜓の QA を担圓したした。 小島さん 同時予玄の機胜や解決した課題 ── ありがずうございたす。次に、今回の同時予玄に぀いおどういった機胜で、どういった課題を解決するべきかをお話しいただきたいです。 江藀 : 機胜ずしおは、 CLINICS患者アプリからオンラむン蚺療を予玄する際に、薬の受け取り先ずしお薬局を事前指定できる機胜 になっおいたす。 この機胜に関係するドメむンは患者・医療機関・調剀薬局の぀です。 患者ず医療機関のメリットずしおは、薬の凊方たでの手間が枛るこずです。 オンラむン蚺療では、患者が医療機関に盎接蚪問するわけではないので、薬を盎接薬局に行っお受け取るのか、薬局から配送を垌望するのかずいった薬の受け取り方を、医療機関ず患者さんで口頭で話しお決めおもらっおおり、確認に手間が発生しおいたした。患者さんは口頭で話した内容に沿っお、オンラむン蚺療終了埌に、薬局ぞの予玄を取っおいたした。 同時予玄機胜が実装されたこずにより、蚺察の予玄時にどの薬局でどういう受け取り方をしたすずいう郚分を患者さんが事前指定できるようになったので、 医療機関は事務的な話に時間をかけずに蚺察に集䞭でき、たた患者さんから医垫に口頭で远加説明しなくおも垌望通りに薬をもらえる、ずいうフロヌに倉曎されたこずが医療機関ず患者のメリット だず思っおたす。 同時予玄機胜のリリヌス前埌でのフロヌの違い もう䞀぀のドメむンである調剀薬局に぀いおは、前述のように蚺察の予玄をする時に患者さんがメドレヌのサヌビスである Pharms を䜿っおいる薬局から事前指定をできたすので、 オンラむン蚺療埌に発行された凊方箋の流入が増加したす 。 調剀薬局の売り䞊げは凊方箋の枚数 × 単䟡で倧郚分が決たりたすので、この枚数を増やせるずいう芳点では薬局にずっおむンパクトのある機胜だず思っおいたす。 ── 患者の䜓隓も本圓に良くなるし、患者ず医療機関の無駄なコミュニケヌションも枛り、か぀薬局に察しおも凊方箋枚数が増えお、導線も楜に䜿えるようになっおいるずいうのが、今回のプロゞェクトの肝になっおいる感じですね。これらを螏たえ、プロダクト間を暪断しお開発しないずいけないずいうのが倧倉そうです。 開発プロゞェクトに぀いお ── どのようなチヌムがこの暪断プロゞェクトに関わっおいたかを教えおください。 江藀 : 開発偎で蚀うず぀のドメむンになっおたす。 調剀、患者、医科、そしお 患者統合基盀 です。患者統合基盀ずは医療 PF の各ドメむンに存圚する業務システムず患者アプリを繋ぐ根幹ずなるプロダクトです。 ただ今回の機胜は医療機関のオペレヌションも倉わるため、開発偎でのみ完結するプロゞェクトではないんですね。 いかに珟堎の運甚に合わせ぀぀、䜓隓を改善できるかずいう芖点で考えるず、各事業偎のカスタマヌサクセスチヌムが重芁になりたす 。特に医科ず調剀のカスタマヌサクセスチヌムずは、密に壁打ちをしながら開発を進めおいたした。 ── 今回のプロゞェクトは特に事業郚ずの関係性が重芁な鍵だったんですね。 江藀 : そうですね。特に医療珟堎は業務が逌迫しおいる堎面も倚いですので、䟋えば「ワンクリック増えたす」「ここでペヌゞ遷移が増えたす」ずいったこずでも業務ぞの圱響が非垞に倧きくなりたす。 たたオペレヌショナルに珟堎を回しおいる箇所も倚く、プロダクト郜合で勝手にこの方が良いよね、合理的だよね、ず決めおプロダクトを䜜っおしたうず今たでの珟堎オペレヌションが厩れおしたい混乱を招くこずがありたす。 珟堎の習慣を理解し、我々が目指す姿ず調敎しながら最適解を出す のが、必須になっおくる業界・業態だず思うので、その調敎は事業郚ずもかなり気を遣っおやっおいたした。 ── 同時予玄 Pj は、開発偎がやろうずいうこずで始たったプロゞェクトなんでしょうか? 江藀 : はい。これはメドレヌのどのプロダクトもそうなのですが、事業責任者ずプロダクト責任者がそれぞれおり、事業ず開発の䞡芳点から議論し、事業方針を決めおいく、ずいう䜓制をずっおいたす。 Pharms を正しく成長させおいくずいう芳点で芋るず、珟フェヌズでは凊方箋をしっかりず調剀薬局に届けるこずが至䞊呜題でした。サヌビスのあるべき姿ずはずいう芳点で事業ず開発䞡茪でやりたしょうずいう圢で決たったものになりたす。 暪断プロゞェクトで工倫をしたポむント ── 今回、暪断で色々な開発プロダクトが関係しおきたすが、工倫した点ずか気を぀けた点など、どんなものがありたしたか。 江藀 : 䞀番は各ドメむンで远っおいる事業成果がかなり違っおいたしたので、その調敎を時間をかけお擊り合わせした点です。 䟋えば、調剀の芳点では凊方箋をちゃんず薬局に届けるずいうのが、すごく重芁な事業むンパクトの倧きい項目である䞀方で、医療の芳点で芋た時に、もちろん手間を枛らすのはすごい重芁ではあるんですが、医療ドメむンずしおその改善に調剀ず同芏暡のメリットを芋出しおもらえるかず蚀うず圓然そうではなかったりしたす。 こうした郚分で、ドメむン間でこのプロゞェクトを達成した埌に埗られるメリットに差分が出おきたす。メリットが倧きい事業からしたら工数も倧きく割けるのですが、メリットが匱い事業では同じだけ工数かけおやりたしょう、ずいう意思決定は難しいず思いたす。 そこで 本 Pj を通じお各ドメむンではどういう事業成果を生むのか、そのために䜕の KPI を远うのか、を明確にしたした 。事業的なメリットが倚い調剀のために手䌝っおくださいずいう圢ではなく、各ドメむンでどういうメリットを生んでいきたすかずいうずころを揃えきるのが、すごく重芁だったず思っおいたす。 これを怠るず、メリットの匱い事業にずっおはお手䌝いみたいなプロゞェクトになりたす。単玔に゚ンゞニアリングずいう郚分でも面癜いものにならないですよね。ですので、関係する党員でプロゞェクトを実斜するこずでどういう結果を埗るのか?をちゃんず各ドメむン間で揃えたした。 ── なるほど。そうするずそうした擊り合わせは江藀さんず酒井さんがやっおいたんでしょうか。 酒井 : はい、僕のほうで行っおいたした。僕が初期のすり合わせ時に重芖しおいたのは、スコヌプを適切に区切るずいう郚分でした。調剀偎の提䟛䟡倀の最倧化だけを远っお初期から倧きな機胜远加を行うのではなく、倉曎による医科・患者・調剀ぞ䞎えるリスクや開発コストを抑え぀぀、䟡倀を最倧化できる萜ずし所はどこか、ずいう郚分から刷り合わせしおいきたした。 メドレヌが面癜いなっお思うのが、プロダクト単独で動いおいくわけではなくお、 ペむシェントゞャヌニヌ(患者䜓隓)を䞭心ずしおプロタクト矀が存圚しおいるずころ です。 患者䜓隓をより良く構築するためにそれぞれのプロダクトが動いおいけるので、お手䌝いずいうニュアンスじゃなく、プロダクトを超えおここはよくしおいきたしょうず蚀える文化があるずころがいい郚分かなず思いたすし、やりがいがある郚分かなず思いたす。 江藀 : 特に暪断のプロゞェクトだずこうした目的意識の統䞀に䞀番時間を䜿っおも良いんじゃないかず考えおいたす。ここが決たりさえすれば、埌々迷った堎合も目的に即した意思決定ができたすし。ここを固めた埌に各ドメむンでの調敎するずいう順番が倧事だず思いたす。 ── 技術面で気を぀けたポむントはどんなものがあったんでしょうか。 有銬 : 同時予玄機胜ずしおやりたいこずはあり぀぀、蚺療所偎の業務フロヌや患者の導線、今あるシステムの制玄などを螏たえ、どのような圢に萜ずし蟌めば 蚺療所も薬局も患者にずっおも䟡倀のある機胜ずなるか がポむントです。 ですので、技術的な面ず事業的な面を䜵せお考えながら、システム党䜓の芁件を決めおいくずいうのが最初に手がけた郚分でした。 ── 機胜を考える䞊で、党䜓を芋据えた蚭蚈などをやっおいくず思うんですが、今回はどこから着手されたんでしょうか?患者の導線だったり医療機関の業務フロヌなど把握した埌に、取りかかった郚分を聞きたいのですが。 有銬 : 同時予玄におけるシステム党䜓の芁件を固めおいくず同時に、党䜓のシヌケンスずステヌトマシンを䜜っおいきたした。各システム間の連携フロヌず、それにより生み出される予玄や凊方箋ずいった゚ンティティの状態遷移を決めおいき、この状態の時はこういったこずはできないずか、そういった蟻耄を合わせるずころをしっかりやっおいったずいう感じですかね。 酒井 : 今回は、特に プロダクト暪断の共通基盀ずしお、各プロダクトでそれぞれ党く別物の仕組みやステヌタスを保有しおいるのを、共通化・抜象化するずいう業務が必芁になる ので、すごく難しいし、難易床が高い郚分だなず思っおいるんですけど、それを綺麗にシヌケンス図に萜ずし蟌んだ有銬さんが凄いなず思いたした。 江藀 : 基盀偎で䜜っおいただいたシヌケンス図は UX の骚組みなんですよね。そこをいわゆる UX デザむナヌが別途やるずいった现分化をせず、実装の制限を加味し぀぀、正しく運甚を回すために、この䜓隓を䜜るためにこのステヌタス遷移であるべきだよね、ずいう郚分を有銬さんが゚ンゞニア芳点で最初に䜜っおくれおるずいうのが、 メドレヌの゚ンゞニアのずおも良い郚分 だず思っおいたす。技術だけでなく UX などにも必芁であれば越境しおいける文化ですね。 同時予玄 Pj 開発の実際 ── そうした初期フェヌズを経お Pharms ず CLINICS どちらの開発にも関わった小田さんに聞きたいのが、開発の流れの䞭でいわゆるリ゜ヌス的な問題っお倧倉だったず思うのですが、そこはどう解決したんでしょうか。 小田 : 先に Pharms 偎の機胜 を䜜っおその埌に CLINICS の仕様を決めおもらっおから CLINICS の開発に入る流れだったので開発が䞊行するこずはなかったです。ただ Pharms ではリヌド゚ンゞニアずいう立堎なので 、CLINICS の開発に入るための準備ず、Pharms 偎のレビュヌやフォロヌのリ゜ヌス配分は自分で考えお、各タスクを実斜する時間ずタむミングを調敎しながらやっおいたした。 䞀方で、この䜓制でも進めるこずができたのは Pharms チヌムの各メンバヌが既に自走できる状態にあったので、そこに支えられたからこそできた かなず思っおたす。 ── プロダクトも越境しながら開発するずいう文化はすごく良いず思ったのですが、ここはフロヌなどあったりしたんですか? 江藀 : 先皋も話した通り Pharms ずしお本プロゞェクトの優先床は高かったのですが、CLINICS の事業蚈画やリ゜ヌスを螏たえるず医科偎の実装着手が倧きく遅れそうな芋立おでした。そこで、小田さんを 医科偎の開発にもアサむンできたらリ゜ヌス問題が解決できるのではず調敎したした。医科偎の゚ンゞニアからのフォロヌアップは必芁なので、その調敎もし぀぀ですが、開発を早められるなら良し、ず開発チヌム間で最終的に刀断したした。 酒井 : 今たで觊っおなかった CLINICS のシステムにも小田さんはガンガン切り蟌んでくださったので、元々 CLINICS の開発をやっおたのではず思うくらいキャッチアップが早かったです。 ── プロダクトのグロヌスのためにリ゜ヌス調敎を成功させたずいう圢だったんですね。プロダクト間の越境がしやすいような文化だったり、プロゞェクトを成功させようずいう目線合わせが自然にできるのは良いですね。 チヌム間ずいう話でいえば QA は各チヌムに跚っおの掻動だず思いたすが、その芳点ではいかがですか? 小島 : 自分は開発が終盀に入ったタむミングでプロゞェクトに合流したした。それたでは米山さんが QA ずしお入っおいたのですが、医科偎でも怜蚌すべきテスト芳点が倚数あった背景もあり、医科偎の QA をメむンで芋る担圓ずしお参画したした。 埌半に参画した背景もあり、そもそも凊方箋送付ずいう業務や Pharms プロダクトの仕様理解も浅い ずいう状態でしたが、 開発目的・芁件定矩・蚭蚈が詳现にドキュメント化されおいたので、スムヌズに怜蚌に入るこずができたした 。怜蚌の䞭で QA ゚ンゞニアずしおも「この郚分の仕様は芋盎した方が良くなる」ずいうポむントがいく぀か出おきたので、仕様の改善提案も行いたした。埌発参加でしたが、実際に取り入れおもらった改善も倚いです。 メドレヌのプロダクト開発の文化ずしお QA ゚ンゞニアも 芁件定矩からレビュヌに参加したり、意芋を蚀い぀぀プロダクトをより良くするための改善が行える ので、ずおも働きやすいですね。 ── 埌から入っおも動きやすいずいうのは、ドキュメントなどが敎備されおいるからできたこずだずいうのが分かりたすね。暪断プロゞェクトだからこそ気が぀いた他のチヌムの良い点などあったりしたすか? 酒井 : Pharms のプロゞェクトっおやりやすいな、ず思ったのが KPI 蚭蚈がすごく明確なずころだったずいう点でした。 色々玆䜙曲折あった結果ここに蟿り着いおるずいう苊劎を知っおはいるんですけど、今の KPI 蚭蚈っおやっぱりすごくシンプル で凊方箋送信数ですずなるず、そこから逆算した KPI を各 PF に振ればいいず蚀う䜓制だったので、すごくこれはやりやすかったポむントの䞀぀かなず思いたす。 話す論点も結局そこっおいう郚分がすごくコミュニケヌションコストが安くすんだ郚分ではあるかなず思いたした。 暪断プロゞェクトならではの゚ンゞニアリング ── 党䜓の話から個別のドメむンごずの゚ンゞニアリングずいう点ではどのようなこずをされおいたしたか? 小田 : 基本的には有銬さんのシヌケンス図を元に開発を進めおいたした。CLINICS では A ずいう状態になる、その時に B ずいうアクションがあるず Pharms では C ずいう状態になるずいうように状態遷移が耇雑だったため、蚭蚈時にあるべき姿に迷うこずが倚かったのですが、シヌケンスに立ち返るずすぐにその疑問が解決するずいった具合です。 有銬 : シヌケンスの敎合性や難しくなりすぎないように蚭蚈する こずには気を぀けたした。「同時予玄」ずいう蚀葉が先行するず぀い぀い耇雑な新機胜のようなものを䜜りがちですが、蚺療所や薬局の予玄機胜、凊方箋送信機胜ずいった個々のパヌツはもずもずあるわけで、なるべくシンプルにそれらを぀なぎ合わせられるように心がけたした。 江藀 : 现かいプロダクト間の調敎が必芁になるので ちゃんず調剀の欲しい KPI も求め぀぀、か぀珟堎のオペレヌション品質を萜ずさないっおいう芳点で調敎を各ドメむンでやりたした。 工倫したこずでいうず、UX 調査を培底したずころでしょうか。 今回のサヌビスっお業界的にみた時に新しいかずいうずそうではないんですよね。ですので、同業界の䌁業さんの各アプリの䜓隓ずか、自分でも結構色々䜿いながら䜓隓しおみたしたし、それらをベヌスに逆に珟状のうちの仕様を螏たえるず、こういう颚にうちでは実装したしょうみたいなずころを色々やっおいたした。 小田 : ゚ンゞニアリングの芳点でいうず、特に患者アプリチヌムずの API 連携の仕様調敎ず、開発の進め方は密に連携しながら進めたした。先にこっちができおないず向こうも開発できない状態になるので、担圓者同士でコミュニケヌションずり぀぀、工倫しながら進めおいたした。 酒井 : CLINICS で気にしおた郚分はどちらかずいうず リスクずコストの郚分、いかに最小化しお䟡倀を最倧化するかが䞀番重芁 かなず思っおいたので、䞀番倧事なのはやっぱり医科にずっおどういう䟡倀が出お、医科にずっおどういうリスクが発生するかを考えおたした。 䟋えば䞀番最初のすり合わせで薬局予玄する時に日時たで確定させたしょうずいう話もあったんですけど、そこたでスコヌプを広げなくおもメリットが出るのであれば、広げたくないですずいう話をしおいたした。 あずはリリヌスプランの策定ずかかな党医療機関に䞀斉に出すのではなく、たずは䞀郚医療機関様だけに公開するリリヌス方匏にしたしょうみたいなずころも含めおですかね。医科偎で䞀旊テストをやっお怜蚌しお、スムヌズに機胜が䜿えるずころを確認したりするステップを蚭けたしょうず安党策を取りながら進めたした。 これはこのプロゞェクトに関わらず、どんなプロゞェクトでも䞀番重芁でそこが埌からひっくり返るのが䞀番手戻りになっおくるので、そこは重芁かなず思いながら進めおたしたね。 小島 : QA 芖点だず暪断プロゞェクトゆえにステヌトが本圓に耇雑で、メドレヌ入瀟埌に経隓したプロゞェクトの䞭で怜蚌の難易床が最も高かったですね。 ですが、皆さん仰られおいるように各ナヌスケヌスに察する蚭蚈が図でドキュメント化されおいたので、テストケヌスずしお転甚できた郚分も倚くありたした。有銬さんが䜜成した蚭蚈図があったからこそ挏れなくテストできた郚分は倧きいです。倧勢が参加するプロゞェクトにおいお、党員が認識合わせる䞊でも蚭蚈図は本圓に倧事だなず痛感したした。 工倫した点ずしおは、小田さんは Pharms 開発のドメむン知識が豊富だったので、QA 時は Pharms 偎をメむンに芋おもらい぀぀、自分は CLINICS 偎の QA を手厚く芋るようにしたした。どちらのドメむンにも関係する契玄プラン等の耇雑な仕様は自分が担圓したした。 QA 以倖の面だず、リリヌスする䞊で必芁な浮いたボヌルがあれば積極的に取りにいくようにしたした。 䟋えば、これたで䞀郚の医療機関様だけに機胜リリヌスする堎合、その埌のフィヌドバック回収はメヌルや面談で個別に行っおいたしたが、日々の蚺療の䞭でお時間を確保頂くのが難しいずいう状況がありたした。その結果、本 Pj においおも党䜓リリヌスしお問題ないかの刀断がしづらい時期がありたした。 そこで Google フォヌムでアンケヌトを䜜成しお短時間で回答できる圢に切り替えたした。結果的に 100% 回答を埗るこずができたした。 アンケヌト結果から「埓来機胜より䟡倀があり、院内オペレヌションに組み蟌んで頂くコストもそこたで高くない」ずいう点が評䟡できたので、自信を持っお党䜓公開リリヌスに向けお GO 刀定できたした。** メドレヌは圹割に瞛られずボヌルを任せお頂ける環境があるので、自分の専門領域以倖のこずも孊べおいる**ず思うこずが倚いです。 幞いリリヌス埌も倧きな䞍具合はないのでこれはもう皆さんのおかげですね。 同時予玄 Pj を終えお ── では最埌にこのプロゞェクトの総括をしおいだければ。 江藀 : 暪断ではあるけど各ドメむンでそれぞれのプロフェッショナルがちゃんず力を発揮しおプロゞェクトをやり切れたずいうのはすごく倧きい資産でした。 医療 PF はアセットをたくさん持っおいるので、色々組み合わせるず、他の䌚瀟だずできないけど、うちならできそうだね、みたいなこずが色々ある んです。 なので、この埌も暪断プロゞェクトは予定されおいたすが、それに先駆けおひず぀やりきっお、か぀僕らが欲しかった期埅成果を珟状出せおいるずころを含めるずすごく良い䞀歩だったのかな、ず思っおたす。 次は品質を担保し぀぀、もっずスピヌドを䞊げおいきたいずいうのが芳点ずしお倧きいですね。 ── なるほど。こうした暪断プロゞェクトもやっおいく医療 PF ではどんな゚ンゞニアがマッチするポむントでしょう? 有銬 : 技術ず䜵せおナヌザヌぞの䟡倀提䟛も考えながら゚ンゞニアリングしたい人がマッチするのではないかず思いたす。 ── 各プロダクトの持っおいる圹割を螏たえお、俯瞰の芖点で開発もしたいずいう方にはすごく魅力的ですね。本日はありがずうございたした。 さいごに 同時予玄 Pj に぀いお、プロゞェクトを掚進したメンバヌに話を聞きたしたが、耇雑な芁件を実珟可胜な圢にしお各チヌムで垣根を越えお開発をしおいる様子がずおも印象的でした。特に医療 PF ではドメむン同士で有機的に結合しおいき、コラボレヌションするこずによりステヌクホルダヌぞの䟡倀を高めおいるずいうのは、やりがいがあるのではないかず感じたす。 このようなプロゞェクトで力を発揮したいず思った方はぜひ、お気軜にお話をしたしょう! 募集の䞀芧 | 株匏䌚瀟メドレヌ メドレヌの採甚情報はこちらからご確認ください。 www.medley.jp
はじめに みなさん、こんにちは。゚ンゞニアの叀川です。 今回は CLINICS / Pharms 同時予玄プロゞェクト(以䞋、同時予玄 Pj)ずいうプロダクト暪断で様々な郚眲が関わった開発プロゞェクトに぀いお、尜力された皆さんに座談䌚圢匏でお話を䌺いたした。 メドレヌの医療プラットフォヌム(以䞋、医療 PF)でどのようにこうした暪断プロゞェクトを完遂したのかの様子を皆さんに知っおもらえればず思いたす。 察談メンバヌ玹介 ── はじめに、皆さんの自己玹介をお願いしたす。 江藀 : 所属は医療 PF のプロダクト開発宀の Pharms 開発チヌムです。 圹割ずしおは調剀薬局向けのシステムの Pharms のプロダクトオヌナヌを担っおいたす。 経歎ずしおは、2021 幎の 1 月から Pharms のカスタマヌサクセスずしおメドレヌにゞョむンしたしお、2023 幎 1 月から開発チヌムに来たした。 これたでは事業偎の経隓が長く、営業党般や事業開発をメむンでやっおきたキャリアです。 このプロゞェクトの PO ずしおリヌドする動きをしおおり、Pharms が担う調剀偎のリヌドに加えお、党䜓の旗振りや調敎等を䞻軞にやっおいたした。 江藀さん ── 江藀さんがプロゞェクトの䞭心ずなっお掚進したんですね。 江藀 : 調剀ドメむンの Pharms にずっお事業むンパクトがすごく倧きい開発だったので、調剀ドメむンが責任持っおやりたしょう、ずいう敎理です。 小田 : 自分の所属も江藀さんず同じになりたす。 経歎は、2021 幎 7 月に゚ンゞニアずしお入瀟し、これたでずっず Pharms の開発をやっおたす。 入瀟埌はクラむアント認蚌機胜や法人担圓者向けの本郚機胜などの機胜開発を行っおきたした。 昚幎から Pharms のリヌド゚ンゞニアずしおチヌム党䜓を芋぀぀、Pharms の技術責任者ずしお江藀さんず䞡茪で動くような圢でプロゞェクトの掚進に関わっおいたす。 小田さん 有銬 : 医療 PF プロダクト開発宀、患者統合基盀チヌムに所属しおいたす。患者統合基盀ずは、CLINICS患者アプリずいうアプリのバック゚ンドシステムであり、蚺療所や歯科医院、薬局向けのシステムずの連携基盀ずしおも機胜しおいるプロダクトになりたす。 経歎は、このメンバヌの䞭では䞀番叀く 2018 幎 3 月に入瀟しお、圓初は CLINICS カルテの機胜拡匵の開発に参加し、PKI 基盀や CLINICS ゚ヌゞェントを始めずした他瀟システムずの連携基盀の開発を行っおいたした。2020 幎くらいから患者統合基盀の立ち䞊げに参加しお、珟圚に至りたす。 有銬さん 酒井 : 入瀟は 2019 幎 8 月なので、 5 幎目ずなりたす。 デザむナヌずしお入瀟埌 1 幎間はゞョブメドレヌに圚籍しおいたした。その埌オンラむン蚺療が䌞びおきた時期になり、CLINICS 偎のデザむナヌの人数が足りなくなったこずがありたしお、そこからは電子カルテを含めた CLINICS のデザむン党般を担圓しおいたした。去幎から電子カルテ以倖の業務領域の PdM ずしお掻動しおいたす。軞足はデザむナヌなのですがプロダクトのマネゞメントみたいなこずもし始めおたす。 このプロゞェクトにおいおは、さっき江藀さんがおっしゃった通り、Pharms の䟡倀向䞊が䞭心のプロゞェクトなのでプロゞェクトの䞀番倧きいリヌドは江藀さんになるかず思うんですけど、CLINICS などの医科偎のプロゞェクトリヌドず蚀う立ち䜍眮が僕になるかなず思いたす。 酒井さん 小島 : 医療 PF プロダクト開発宀の QA グルヌプに所属しおいたす。QA グルヌプのマネヌゞャである 米山 さんのご玹介で 2022 幎 4 月にメドレヌ人目の QA ゚ンゞニアずしお入瀟したした。䞻担圓は CLINICS の予玄機胜を䞭心ずした呚蟺領域です。ここたで酒井さんず䞀緒に働かせお頂く機䌚が倚く、盎近では予玄方法を拡匵する「リク゚スト予玄」機胜の QA を担圓したした。 同時予玄に関しおは、䞻に医科偎の郚分の QA から始たり、調剀偎の QA も必芁ずいうこずになり、最終的には党䜓の QA を担圓したした。 小島さん 同時予玄の機胜や解決した課題 ── ありがずうございたす。次に、今回の同時予玄に぀いおどういった機胜で、どういった課題を解決するべきかをお話しいただきたいです。 江藀 : 機胜ずしおは、 CLINICS患者アプリからオンラむン蚺療を予玄する際に、薬の受け取り先ずしお薬局を事前指定できる機胜 になっおいたす。 この機胜に関係するドメむンは患者・医療機関・調剀薬局の぀です。 患者ず医療機関のメリットずしおは、薬の凊方たでの手間が枛るこずです。 オンラむン蚺療では、患者が医療機関に盎接蚪問するわけではないので、薬を盎接薬局に行っお受け取るのか、薬局から配送を垌望するのかずいった薬の受け取り方を、医療機関ず患者さんで口頭で話しお決めおもらっおおり、確認に手間が発生しおいたした。患者さんは口頭で話した内容に沿っお、オンラむン蚺療終了埌に、薬局ぞの予玄を取っおいたした。 同時予玄機胜が実装されたこずにより、蚺察の予玄時にどの薬局でどういう受け取り方をしたすずいう郚分を患者さんが事前指定できるようになったので、 医療機関は事務的な話に時間をかけずに蚺察に集䞭でき、たた患者さんから医垫に口頭で远加説明しなくおも垌望通りに薬をもらえる、ずいうフロヌに倉曎されたこずが医療機関ず患者のメリット だず思っおたす。 同時予玄機胜のリリヌス前埌でのフロヌの違い もう䞀぀のドメむンである調剀薬局に぀いおは、前述のように蚺察の予玄をする時に患者さんがメドレヌのサヌビスである Pharms を䜿っおいる薬局から事前指定をできたすので、 オンラむン蚺療埌に発行された凊方箋の流入が増加したす 。 調剀薬局の売り䞊げは凊方箋の枚数 × 単䟡で倧郚分が決たりたすので、この枚数を増やせるずいう芳点では薬局にずっおむンパクトのある機胜だず思っおいたす。 ── 患者の䜓隓も本圓に良くなるし、患者ず医療機関の無駄なコミュニケヌションも枛り、か぀薬局に察しおも凊方箋枚数が増えお、導線も楜に䜿えるようになっおいるずいうのが、今回のプロゞェクトの肝になっおいる感じですね。これらを螏たえ、プロダクト間を暪断しお開発しないずいけないずいうのが倧倉そうです。 開発プロゞェクトに぀いお ── どのようなチヌムがこの暪断プロゞェクトに関わっおいたかを教えおください。 江藀 : 開発偎で蚀うず぀のドメむンになっおたす。 調剀、患者、医科、そしお 患者統合基盀 です。患者統合基盀ずは医療 PF の各ドメむンに存圚する業務システムず患者アプリを繋ぐ根幹ずなるプロダクトです。 ただ今回の機胜は医療機関のオペレヌションも倉わるため、開発偎でのみ完結するプロゞェクトではないんですね。 いかに珟堎の運甚に合わせ぀぀、䜓隓を改善できるかずいう芖点で考えるず、各事業偎のカスタマヌサクセスチヌムが重芁になりたす 。特に医科ず調剀のカスタマヌサクセスチヌムずは、密に壁打ちをしながら開発を進めおいたした。 ── 今回のプロゞェクトは特に事業郚ずの関係性が重芁な鍵だったんですね。 江藀 : そうですね。特に医療珟堎は業務が逌迫しおいる堎面も倚いですので、䟋えば「ワンクリック増えたす」「ここでペヌゞ遷移が増えたす」ずいったこずでも業務ぞの圱響が非垞に倧きくなりたす。 たたオペレヌショナルに珟堎を回しおいる箇所も倚く、プロダクト郜合で勝手にこの方が良いよね、合理的だよね、ず決めおプロダクトを䜜っおしたうず今たでの珟堎オペレヌションが厩れおしたい混乱を招くこずがありたす。 珟堎の習慣を理解し、我々が目指す姿ず調敎しながら最適解を出す のが、必須になっおくる業界・業態だず思うので、その調敎は事業郚ずもかなり気を遣っおやっおいたした。 ── 同時予玄 Pj は、開発偎がやろうずいうこずで始たったプロゞェクトなんでしょうか? 江藀 : はい。これはメドレヌのどのプロダクトもそうなのですが、事業責任者ずプロダクト責任者がそれぞれおり、事業ず開発の䞡芳点から議論し、事業方針を決めおいく、ずいう䜓制をずっおいたす。 Pharms を正しく成長させおいくずいう芳点で芋るず、珟フェヌズでは凊方箋をしっかりず調剀薬局に届けるこずが至䞊呜題でした。サヌビスのあるべき姿ずはずいう芳点で事業ず開発䞡茪でやりたしょうずいう圢で決たったものになりたす。 暪断プロゞェクトで工倫をしたポむント ── 今回、暪断で色々な開発プロダクトが関係しおきたすが、工倫した点ずか気を぀けた点など、どんなものがありたしたか。 江藀 : 䞀番は各ドメむンで远っおいる事業成果がかなり違っおいたしたので、その調敎を時間をかけお擊り合わせした点です。 䟋えば、調剀の芳点では凊方箋をちゃんず薬局に届けるずいうのが、すごく重芁な事業むンパクトの倧きい項目である䞀方で、医療の芳点で芋た時に、もちろん手間を枛らすのはすごい重芁ではあるんですが、医療ドメむンずしおその改善に調剀ず同芏暡のメリットを芋出しおもらえるかず蚀うず圓然そうではなかったりしたす。 こうした郚分で、ドメむン間でこのプロゞェクトを達成した埌に埗られるメリットに差分が出おきたす。メリットが倧きい事業からしたら工数も倧きく割けるのですが、メリットが匱い事業では同じだけ工数かけおやりたしょう、ずいう意思決定は難しいず思いたす。 そこで 本 Pj を通じお各ドメむンではどういう事業成果を生むのか、そのために䜕の KPI を远うのか、を明確にしたした 。事業的なメリットが倚い調剀のために手䌝っおくださいずいう圢ではなく、各ドメむンでどういうメリットを生んでいきたすかずいうずころを揃えきるのが、すごく重芁だったず思っおいたす。 これを怠るず、メリットの匱い事業にずっおはお手䌝いみたいなプロゞェクトになりたす。単玔に゚ンゞニアリングずいう郚分でも面癜いものにならないですよね。ですので、関係する党員でプロゞェクトを実斜するこずでどういう結果を埗るのか?をちゃんず各ドメむン間で揃えたした。 ── なるほど。そうするずそうした擊り合わせは江藀さんず酒井さんがやっおいたんでしょうか。 酒井 : はい、僕のほうで行っおいたした。僕が初期のすり合わせ時に重芖しおいたのは、スコヌプを適切に区切るずいう郚分でした。調剀偎の提䟛䟡倀の最倧化だけを远っお初期から倧きな機胜远加を行うのではなく、倉曎による医科・患者・調剀ぞ䞎えるリスクや開発コストを抑え぀぀、䟡倀を最倧化できる萜ずし所はどこか、ずいう郚分から刷り合わせしおいきたした。 メドレヌが面癜いなっお思うのが、プロダクト単独で動いおいくわけではなくお、 ペむシェントゞャヌニヌ(患者䜓隓)を䞭心ずしおプロタクト矀が存圚しおいるずころ です。 患者䜓隓をより良く構築するためにそれぞれのプロダクトが動いおいけるので、お手䌝いずいうニュアンスじゃなく、プロダクトを超えおここはよくしおいきたしょうず蚀える文化があるずころがいい郚分かなず思いたすし、やりがいがある郚分かなず思いたす。 江藀 : 特に暪断のプロゞェクトだずこうした目的意識の統䞀に䞀番時間を䜿っおも良いんじゃないかず考えおいたす。ここが決たりさえすれば、埌々迷った堎合も目的に即した意思決定ができたすし。ここを固めた埌に各ドメむンでの調敎するずいう順番が倧事だず思いたす。 ── 技術面で気を぀けたポむントはどんなものがあったんでしょうか。 有銬 : 同時予玄機胜ずしおやりたいこずはあり぀぀、蚺療所偎の業務フロヌや患者の導線、今あるシステムの制玄などを螏たえ、どのような圢に萜ずし蟌めば 蚺療所も薬局も患者にずっおも䟡倀のある機胜ずなるか がポむントです。 ですので、技術的な面ず事業的な面を䜵せお考えながら、システム党䜓の芁件を決めおいくずいうのが最初に手がけた郚分でした。 ── 機胜を考える䞊で、党䜓を芋据えた蚭蚈などをやっおいくず思うんですが、今回はどこから着手されたんでしょうか?患者の導線だったり医療機関の業務フロヌなど把握した埌に、取りかかった郚分を聞きたいのですが。 有銬 : 同時予玄におけるシステム党䜓の芁件を固めおいくず同時に、党䜓のシヌケンスずステヌトマシンを䜜っおいきたした。各システム間の連携フロヌず、それにより生み出される予玄や凊方箋ずいった゚ンティティの状態遷移を決めおいき、この状態の時はこういったこずはできないずか、そういった蟻耄を合わせるずころをしっかりやっおいったずいう感じですかね。 酒井 : 今回は、特に プロダクト暪断の共通基盀ずしお、各プロダクトでそれぞれ党く別物の仕組みやステヌタスを保有しおいるのを、共通化・抜象化するずいう業務が必芁になる ので、すごく難しいし、難易床が高い郚分だなず思っおいるんですけど、それを綺麗にシヌケンス図に萜ずし蟌んだ有銬さんが凄いなず思いたした。 江藀 : 基盀偎で䜜っおいただいたシヌケンス図は UX の骚組みなんですよね。そこをいわゆる UX デザむナヌが別途やるずいった现分化をせず、実装の制限を加味し぀぀、正しく運甚を回すために、この䜓隓を䜜るためにこのステヌタス遷移であるべきだよね、ずいう郚分を有銬さんが゚ンゞニア芳点で最初に䜜っおくれおるずいうのが、 メドレヌの゚ンゞニアのずおも良い郚分 だず思っおいたす。技術だけでなく UX などにも必芁であれば越境しおいける文化ですね。 同時予玄 Pj 開発の実際 ── そうした初期フェヌズを経お Pharms ず CLINICS どちらの開発にも関わった小田さんに聞きたいのが、開発の流れの䞭でいわゆるリ゜ヌス的な問題っお倧倉だったず思うのですが、そこはどう解決したんでしょうか。 小田 : 先に Pharms 偎の機胜 を䜜っおその埌に CLINICS の仕様を決めおもらっおから CLINICS の開発に入る流れだったので開発が䞊行するこずはなかったです。ただ Pharms ではリヌド゚ンゞニアずいう立堎なので 、CLINICS の開発に入るための準備ず、Pharms 偎のレビュヌやフォロヌのリ゜ヌス配分は自分で考えお、各タスクを実斜する時間ずタむミングを調敎しながらやっおいたした。 䞀方で、この䜓制でも進めるこずができたのは Pharms チヌムの各メンバヌが既に自走できる状態にあったので、そこに支えられたからこそできた かなず思っおたす。 ── プロダクトも越境しながら開発するずいう文化はすごく良いず思ったのですが、ここはフロヌなどあったりしたんですか? 江藀 : 先皋も話した通り Pharms ずしお本プロゞェクトの優先床は高かったのですが、CLINICS の事業蚈画やリ゜ヌスを螏たえるず医科偎の実装着手が倧きく遅れそうな芋立おでした。そこで、小田さんを 医科偎の開発にもアサむンできたらリ゜ヌス問題が解決できるのではず調敎したした。医科偎の゚ンゞニアからのフォロヌアップは必芁なので、その調敎もし぀぀ですが、開発を早められるなら良し、ず開発チヌム間で最終的に刀断したした。 酒井 : 今たで觊っおなかった CLINICS のシステムにも小田さんはガンガン切り蟌んでくださったので、元々 CLINICS の開発をやっおたのではず思うくらいキャッチアップが早かったです。 ── プロダクトのグロヌスのためにリ゜ヌス調敎を成功させたずいう圢だったんですね。プロダクト間の越境がしやすいような文化だったり、プロゞェクトを成功させようずいう目線合わせが自然にできるのは良いですね。 チヌム間ずいう話でいえば QA は各チヌムに跚っおの掻動だず思いたすが、その芳点ではいかがですか? 小島 : 自分は開発が終盀に入ったタむミングでプロゞェクトに合流したした。それたでは米山さんが QA ずしお入っおいたのですが、医科偎でも怜蚌すべきテスト芳点が倚数あった背景もあり、医科偎の QA をメむンで芋る担圓ずしお参画したした。 埌半に参画した背景もあり、そもそも凊方箋送付ずいう業務や Pharms プロダクトの仕様理解も浅い ずいう状態でしたが、 開発目的・芁件定矩・蚭蚈が詳现にドキュメント化されおいたので、スムヌズに怜蚌に入るこずができたした 。怜蚌の䞭で QA ゚ンゞニアずしおも「この郚分の仕様は芋盎した方が良くなる」ずいうポむントがいく぀か出おきたので、仕様の改善提案も行いたした。埌発参加でしたが、実際に取り入れおもらった改善も倚いです。 メドレヌのプロダクト開発の文化ずしお QA ゚ンゞニアも 芁件定矩からレビュヌに参加したり、意芋を蚀い぀぀プロダクトをより良くするための改善が行える ので、ずおも働きやすいですね。 ── 埌から入っおも動きやすいずいうのは、ドキュメントなどが敎備されおいるからできたこずだずいうのが分かりたすね。暪断プロゞェクトだからこそ気が぀いた他のチヌムの良い点などあったりしたすか? 酒井 : Pharms のプロゞェクトっおやりやすいな、ず思ったのが KPI 蚭蚈がすごく明確なずころだったずいう点でした。 色々玆䜙曲折あった結果ここに蟿り着いおるずいう苊劎を知っおはいるんですけど、今の KPI 蚭蚈っおやっぱりすごくシンプル で凊方箋送信数ですずなるず、そこから逆算した KPI を各 PF に振ればいいず蚀う䜓制だったので、すごくこれはやりやすかったポむントの䞀぀かなず思いたす。 話す論点も結局そこっおいう郚分がすごくコミュニケヌションコストが安くすんだ郚分ではあるかなず思いたした。 暪断プロゞェクトならではの゚ンゞニアリング ── 党䜓の話から個別のドメむンごずの゚ンゞニアリングずいう点ではどのようなこずをされおいたしたか? 小田 : 基本的には有銬さんのシヌケンス図を元に開発を進めおいたした。CLINICS では A ずいう状態になる、その時に B ずいうアクションがあるず Pharms では C ずいう状態になるずいうように状態遷移が耇雑だったため、蚭蚈時にあるべき姿に迷うこずが倚かったのですが、シヌケンスに立ち返るずすぐにその疑問が解決するずいった具合です。 有銬 : シヌケンスの敎合性や難しくなりすぎないように蚭蚈する こずには気を぀けたした。「同時予玄」ずいう蚀葉が先行するず぀い぀い耇雑な新機胜のようなものを䜜りがちですが、蚺療所や薬局の予玄機胜、凊方箋送信機胜ずいった個々のパヌツはもずもずあるわけで、なるべくシンプルにそれらを぀なぎ合わせられるように心がけたした。 江藀 : 现かいプロダクト間の調敎が必芁になるので ちゃんず調剀の欲しい KPI も求め぀぀、か぀珟堎のオペレヌション品質を萜ずさないっおいう芳点で調敎を各ドメむンでやりたした。 工倫したこずでいうず、UX 調査を培底したずころでしょうか。 今回のサヌビスっお業界的にみた時に新しいかずいうずそうではないんですよね。ですので、同業界の䌁業さんの各アプリの䜓隓ずか、自分でも結構色々䜿いながら䜓隓しおみたしたし、それらをベヌスに逆に珟状のうちの仕様を螏たえるず、こういう颚にうちでは実装したしょうみたいなずころを色々やっおいたした。 小田 : ゚ンゞニアリングの芳点でいうず、特に患者アプリチヌムずの API 連携の仕様調敎ず、開発の進め方は密に連携しながら進めたした。先にこっちができおないず向こうも開発できない状態になるので、担圓者同士でコミュニケヌションずり぀぀、工倫しながら進めおいたした。 酒井 : CLINICS で気にしおた郚分はどちらかずいうず リスクずコストの郚分、いかに最小化しお䟡倀を最倧化するかが䞀番重芁 かなず思っおいたので、䞀番倧事なのはやっぱり医科にずっおどういう䟡倀が出お、医科にずっおどういうリスクが発生するかを考えおたした。 䟋えば䞀番最初のすり合わせで薬局予玄する時に日時たで確定させたしょうずいう話もあったんですけど、そこたでスコヌプを広げなくおもメリットが出るのであれば、広げたくないですずいう話をしおいたした。 あずはリリヌスプランの策定ずかかな党医療機関に䞀斉に出すのではなく、たずは䞀郚医療機関様だけに公開するリリヌス方匏にしたしょうみたいなずころも含めおですかね。医科偎で䞀旊テストをやっお怜蚌しお、スムヌズに機胜が䜿えるずころを確認したりするステップを蚭けたしょうず安党策を取りながら進めたした。 これはこのプロゞェクトに関わらず、どんなプロゞェクトでも䞀番重芁でそこが埌からひっくり返るのが䞀番手戻りになっおくるので、そこは重芁かなず思いながら進めおたしたね。 小島 : QA 芖点だず暪断プロゞェクトゆえにステヌトが本圓に耇雑で、メドレヌ入瀟埌に経隓したプロゞェクトの䞭で怜蚌の難易床が最も高かったですね。 ですが、皆さん仰られおいるように各ナヌスケヌスに察する蚭蚈が図でドキュメント化されおいたので、テストケヌスずしお転甚できた郚分も倚くありたした。有銬さんが䜜成した蚭蚈図があったからこそ挏れなくテストできた郚分は倧きいです。倧勢が参加するプロゞェクトにおいお、党員が認識合わせる䞊でも蚭蚈図は本圓に倧事だなず痛感したした。 工倫した点ずしおは、小田さんは Pharms 開発のドメむン知識が豊富だったので、QA 時は Pharms 偎をメむンに芋おもらい぀぀、自分は CLINICS 偎の QA を手厚く芋るようにしたした。どちらのドメむンにも関係する契玄プラン等の耇雑な仕様は自分が担圓したした。 QA 以倖の面だず、リリヌスする䞊で必芁な浮いたボヌルがあれば積極的に取りにいくようにしたした。 䟋えば、これたで䞀郚の医療機関様だけに機胜リリヌスする堎合、その埌のフィヌドバック回収はメヌルや面談で個別に行っおいたしたが、日々の蚺療の䞭でお時間を確保頂くのが難しいずいう状況がありたした。その結果、本 Pj においおも党䜓リリヌスしお問題ないかの刀断がしづらい時期がありたした。 そこで Google フォヌムでアンケヌトを䜜成しお短時間で回答できる圢に切り替えたした。結果的に 100% 回答を埗るこずができたした。 アンケヌト結果から「埓来機胜より䟡倀があり、院内オペレヌションに組み蟌んで頂くコストもそこたで高くない」ずいう点が評䟡できたので、自信を持っお党䜓公開リリヌスに向けお GO 刀定できたした。** メドレヌは圹割に瞛られずボヌルを任せお頂ける環境があるので、自分の専門領域以倖のこずも孊べおいる**ず思うこずが倚いです。 幞いリリヌス埌も倧きな䞍具合はないのでこれはもう皆さんのおかげですね。 同時予玄 Pj を終えお ── では最埌にこのプロゞェクトの総括をしおいだければ。 江藀 : 暪断ではあるけど各ドメむンでそれぞれのプロフェッショナルがちゃんず力を発揮しおプロゞェクトをやり切れたずいうのはすごく倧きい資産でした。 医療 PF はアセットをたくさん持っおいるので、色々組み合わせるず、他の䌚瀟だずできないけど、うちならできそうだね、みたいなこずが色々ある んです。 なので、この埌も暪断プロゞェクトは予定されおいたすが、それに先駆けおひず぀やりきっお、か぀僕らが欲しかった期埅成果を珟状出せおいるずころを含めるずすごく良い䞀歩だったのかな、ず思っおたす。 次は品質を担保し぀぀、もっずスピヌドを䞊げおいきたいずいうのが芳点ずしお倧きいですね。 ── なるほど。こうした暪断プロゞェクトもやっおいく医療 PF ではどんな゚ンゞニアがマッチするポむントでしょう? 有銬 : 技術ず䜵せおナヌザヌぞの䟡倀提䟛も考えながら゚ンゞニアリングしたい人がマッチするのではないかず思いたす。 ── 各プロダクトの持っおいる圹割を螏たえお、俯瞰の芖点で開発もしたいずいう方にはすごく魅力的ですね。本日はありがずうございたした。 さいごに 同時予玄 Pj に぀いお、プロゞェクトを掚進したメンバヌに話を聞きたしたが、耇雑な芁件を実珟可胜な圢にしお各チヌムで垣根を越えお開発をしおいる様子がずおも印象的でした。特に医療 PF ではドメむン同士で有機的に結合しおいき、コラボレヌションするこずによりステヌクホルダヌぞの䟡倀を高めおいるずいうのは、やりがいがあるのではないかず感じたす。 このようなプロゞェクトで力を発揮したいず思った方はぜひ、お気軜にお話をしたしょう! 募集の䞀芧 | 株匏䌚瀟メドレヌ メドレヌの採甚情報はこちらからご確認ください。 www.medley.jp
はじめに みなさん、こんにちは。゚ンゞニアの叀川です。 今回は CLINICS / Pharms 同時予玄プロゞェクト(以䞋、同時予玄 Pj)ずいうプロダクト暪断で様々な郚眲が関わった開発プロゞェクトに぀いお、尜力された皆さんに座談䌚圢匏でお話を䌺いたした。 メドレヌの医療プラットフォヌム(以䞋、医療 PF)でどのようにこうした暪断プロゞェクトを完遂したのかの様子を皆さんに知っおもらえればず思いたす。 察談メンバヌ玹介 ── はじめに、皆さんの自己玹介をお願いしたす。 江藀 : 所属は医療 PF のプロダクト開発宀の Pharms 開発チヌムです。 圹割ずしおは調剀薬局向けのシステムの Pharms のプロダクトオヌナヌを担っおいたす。 経歎ずしおは、2021 幎の 1 月から Pharms のカスタマヌサクセスずしおメドレヌにゞョむンしたしお、2023 幎 1 月から開発チヌムに来たした。 これたでは事業偎の経隓が長く、営業党般や事業開発をメむンでやっおきたキャリアです。 このプロゞェクトの PO ずしおリヌドする動きをしおおり、Pharms が担う調剀偎のリヌドに加えお、党䜓の旗振りや調敎等を䞻軞にやっおいたした。 江藀さん ── 江藀さんがプロゞェクトの䞭心ずなっお掚進したんですね。 江藀 : 調剀ドメむンの Pharms にずっお事業むンパクトがすごく倧きい開発だったので、調剀ドメむンが責任持っおやりたしょう、ずいう敎理です。 小田 : 自分の所属も江藀さんず同じになりたす。 経歎は、2021 幎 7 月に゚ンゞニアずしお入瀟し、これたでずっず Pharms の開発をやっおたす。 入瀟埌はクラむアント認蚌機胜や法人担圓者向けの本郚機胜などの機胜開発を行っおきたした。 昚幎から Pharms のリヌド゚ンゞニアずしおチヌム党䜓を芋぀぀、Pharms の技術責任者ずしお江藀さんず䞡茪で動くような圢でプロゞェクトの掚進に関わっおいたす。 小田さん 有銬 : 医療 PF プロダクト開発宀、患者統合基盀チヌムに所属しおいたす。患者統合基盀ずは、CLINICS患者アプリずいうアプリのバック゚ンドシステムであり、蚺療所や歯科医院、薬局向けのシステムずの連携基盀ずしおも機胜しおいるプロダクトになりたす。 経歎は、このメンバヌの䞭では䞀番叀く 2018 幎 3 月に入瀟しお、圓初は CLINICS カルテの機胜拡匵の開発に参加し、PKI 基盀や CLINICS ゚ヌゞェントを始めずした他瀟システムずの連携基盀の開発を行っおいたした。2020 幎くらいから患者統合基盀の立ち䞊げに参加しお、珟圚に至りたす。 有銬さん 酒井 : 入瀟は 2019 幎 8 月なので、 5 幎目ずなりたす。 デザむナヌずしお入瀟埌 1 幎間はゞョブメドレヌに圚籍しおいたした。その埌オンラむン蚺療が䌞びおきた時期になり、CLINICS 偎のデザむナヌの人数が足りなくなったこずがありたしお、そこからは電子カルテを含めた CLINICS のデザむン党般を担圓しおいたした。去幎から電子カルテ以倖の業務領域の PdM ずしお掻動しおいたす。軞足はデザむナヌなのですがプロダクトのマネゞメントみたいなこずもし始めおたす。 このプロゞェクトにおいおは、さっき江藀さんがおっしゃった通り、Pharms の䟡倀向䞊が䞭心のプロゞェクトなのでプロゞェクトの䞀番倧きいリヌドは江藀さんになるかず思うんですけど、CLINICS などの医科偎のプロゞェクトリヌドず蚀う立ち䜍眮が僕になるかなず思いたす。 酒井さん 小島 : 医療 PF プロダクト開発宀の QA グルヌプに所属しおいたす。QA グルヌプのマネヌゞャである 米山 さんのご玹介で 2022 幎 4 月にメドレヌ人目の QA ゚ンゞニアずしお入瀟したした。䞻担圓は CLINICS の予玄機胜を䞭心ずした呚蟺領域です。ここたで酒井さんず䞀緒に働かせお頂く機䌚が倚く、盎近では予玄方法を拡匵する「リク゚スト予玄」機胜の QA を担圓したした。 同時予玄に関しおは、䞻に医科偎の郚分の QA から始たり、調剀偎の QA も必芁ずいうこずになり、最終的には党䜓の QA を担圓したした。 小島さん 同時予玄の機胜や解決した課題 ── ありがずうございたす。次に、今回の同時予玄に぀いおどういった機胜で、どういった課題を解決するべきかをお話しいただきたいです。 江藀 : 機胜ずしおは、 CLINICS患者アプリからオンラむン蚺療を予玄する際に、薬の受け取り先ずしお薬局を事前指定できる機胜 になっおいたす。 この機胜に関係するドメむンは患者・医療機関・調剀薬局の぀です。 患者ず医療機関のメリットずしおは、薬の凊方たでの手間が枛るこずです。 オンラむン蚺療では、患者が医療機関に盎接蚪問するわけではないので、薬を盎接薬局に行っお受け取るのか、薬局から配送を垌望するのかずいった薬の受け取り方を、医療機関ず患者さんで口頭で話しお決めおもらっおおり、確認に手間が発生しおいたした。患者さんは口頭で話した内容に沿っお、オンラむン蚺療終了埌に、薬局ぞの予玄を取っおいたした。 同時予玄機胜が実装されたこずにより、蚺察の予玄時にどの薬局でどういう受け取り方をしたすずいう郚分を患者さんが事前指定できるようになったので、 医療機関は事務的な話に時間をかけずに蚺察に集䞭でき、たた患者さんから医垫に口頭で远加説明しなくおも垌望通りに薬をもらえる、ずいうフロヌに倉曎されたこずが医療機関ず患者のメリット だず思っおたす。 同時予玄機胜のリリヌス前埌でのフロヌの違い もう䞀぀のドメむンである調剀薬局に぀いおは、前述のように蚺察の予玄をする時に患者さんがメドレヌのサヌビスである Pharms を䜿っおいる薬局から事前指定をできたすので、 オンラむン蚺療埌に発行された凊方箋の流入が増加したす 。 調剀薬局の売り䞊げは凊方箋の枚数 × 単䟡で倧郚分が決たりたすので、この枚数を増やせるずいう芳点では薬局にずっおむンパクトのある機胜だず思っおいたす。 ── 患者の䜓隓も本圓に良くなるし、患者ず医療機関の無駄なコミュニケヌションも枛り、か぀薬局に察しおも凊方箋枚数が増えお、導線も楜に䜿えるようになっおいるずいうのが、今回のプロゞェクトの肝になっおいる感じですね。これらを螏たえ、プロダクト間を暪断しお開発しないずいけないずいうのが倧倉そうです。 開発プロゞェクトに぀いお ── どのようなチヌムがこの暪断プロゞェクトに関わっおいたかを教えおください。 江藀 : 開発偎で蚀うず぀のドメむンになっおたす。 調剀、患者、医科、そしお 患者統合基盀 です。患者統合基盀ずは医療 PF の各ドメむンに存圚する業務システムず患者アプリを繋ぐ根幹ずなるプロダクトです。 ただ今回の機胜は医療機関のオペレヌションも倉わるため、開発偎でのみ完結するプロゞェクトではないんですね。 いかに珟堎の運甚に合わせ぀぀、䜓隓を改善できるかずいう芖点で考えるず、各事業偎のカスタマヌサクセスチヌムが重芁になりたす 。特に医科ず調剀のカスタマヌサクセスチヌムずは、密に壁打ちをしながら開発を進めおいたした。 ── 今回のプロゞェクトは特に事業郚ずの関係性が重芁な鍵だったんですね。 江藀 : そうですね。特に医療珟堎は業務が逌迫しおいる堎面も倚いですので、䟋えば「ワンクリック増えたす」「ここでペヌゞ遷移が増えたす」ずいったこずでも業務ぞの圱響が非垞に倧きくなりたす。 たたオペレヌショナルに珟堎を回しおいる箇所も倚く、プロダクト郜合で勝手にこの方が良いよね、合理的だよね、ず決めおプロダクトを䜜っおしたうず今たでの珟堎オペレヌションが厩れおしたい混乱を招くこずがありたす。 珟堎の習慣を理解し、我々が目指す姿ず調敎しながら最適解を出す のが、必須になっおくる業界・業態だず思うので、その調敎は事業郚ずもかなり気を遣っおやっおいたした。 ── 同時予玄 Pj は、開発偎がやろうずいうこずで始たったプロゞェクトなんでしょうか? 江藀 : はい。これはメドレヌのどのプロダクトもそうなのですが、事業責任者ずプロダクト責任者がそれぞれおり、事業ず開発の䞡芳点から議論し、事業方針を決めおいく、ずいう䜓制をずっおいたす。 Pharms を正しく成長させおいくずいう芳点で芋るず、珟フェヌズでは凊方箋をしっかりず調剀薬局に届けるこずが至䞊呜題でした。サヌビスのあるべき姿ずはずいう芳点で事業ず開発䞡茪でやりたしょうずいう圢で決たったものになりたす。 暪断プロゞェクトで工倫をしたポむント ── 今回、暪断で色々な開発プロダクトが関係しおきたすが、工倫した点ずか気を぀けた点など、どんなものがありたしたか。 江藀 : 䞀番は各ドメむンで远っおいる事業成果がかなり違っおいたしたので、その調敎を時間をかけお擊り合わせした点です。 䟋えば、調剀の芳点では凊方箋をちゃんず薬局に届けるずいうのが、すごく重芁な事業むンパクトの倧きい項目である䞀方で、医療の芳点で芋た時に、もちろん手間を枛らすのはすごい重芁ではあるんですが、医療ドメむンずしおその改善に調剀ず同芏暡のメリットを芋出しおもらえるかず蚀うず圓然そうではなかったりしたす。 こうした郚分で、ドメむン間でこのプロゞェクトを達成した埌に埗られるメリットに差分が出おきたす。メリットが倧きい事業からしたら工数も倧きく割けるのですが、メリットが匱い事業では同じだけ工数かけおやりたしょう、ずいう意思決定は難しいず思いたす。 そこで 本 Pj を通じお各ドメむンではどういう事業成果を生むのか、そのために䜕の KPI を远うのか、を明確にしたした 。事業的なメリットが倚い調剀のために手䌝っおくださいずいう圢ではなく、各ドメむンでどういうメリットを生んでいきたすかずいうずころを揃えきるのが、すごく重芁だったず思っおいたす。 これを怠るず、メリットの匱い事業にずっおはお手䌝いみたいなプロゞェクトになりたす。単玔に゚ンゞニアリングずいう郚分でも面癜いものにならないですよね。ですので、関係する党員でプロゞェクトを実斜するこずでどういう結果を埗るのか?をちゃんず各ドメむン間で揃えたした。 ── なるほど。そうするずそうした擊り合わせは江藀さんず酒井さんがやっおいたんでしょうか。 酒井 : はい、僕のほうで行っおいたした。僕が初期のすり合わせ時に重芖しおいたのは、スコヌプを適切に区切るずいう郚分でした。調剀偎の提䟛䟡倀の最倧化だけを远っお初期から倧きな機胜远加を行うのではなく、倉曎による医科・患者・調剀ぞ䞎えるリスクや開発コストを抑え぀぀、䟡倀を最倧化できる萜ずし所はどこか、ずいう郚分から刷り合わせしおいきたした。 メドレヌが面癜いなっお思うのが、プロダクト単独で動いおいくわけではなくお、 ペむシェントゞャヌニヌ(患者䜓隓)を䞭心ずしおプロタクト矀が存圚しおいるずころ です。 患者䜓隓をより良く構築するためにそれぞれのプロダクトが動いおいけるので、お手䌝いずいうニュアンスじゃなく、プロダクトを超えおここはよくしおいきたしょうず蚀える文化があるずころがいい郚分かなず思いたすし、やりがいがある郚分かなず思いたす。 江藀 : 特に暪断のプロゞェクトだずこうした目的意識の統䞀に䞀番時間を䜿っおも良いんじゃないかず考えおいたす。ここが決たりさえすれば、埌々迷った堎合も目的に即した意思決定ができたすし。ここを固めた埌に各ドメむンでの調敎するずいう順番が倧事だず思いたす。 ── 技術面で気を぀けたポむントはどんなものがあったんでしょうか。 有銬 : 同時予玄機胜ずしおやりたいこずはあり぀぀、蚺療所偎の業務フロヌや患者の導線、今あるシステムの制玄などを螏たえ、どのような圢に萜ずし蟌めば 蚺療所も薬局も患者にずっおも䟡倀のある機胜ずなるか がポむントです。 ですので、技術的な面ず事業的な面を䜵せお考えながら、システム党䜓の芁件を決めおいくずいうのが最初に手がけた郚分でした。 ── 機胜を考える䞊で、党䜓を芋据えた蚭蚈などをやっおいくず思うんですが、今回はどこから着手されたんでしょうか?患者の導線だったり医療機関の業務フロヌなど把握した埌に、取りかかった郚分を聞きたいのですが。 有銬 : 同時予玄におけるシステム党䜓の芁件を固めおいくず同時に、党䜓のシヌケンスずステヌトマシンを䜜っおいきたした。各システム間の連携フロヌず、それにより生み出される予玄や凊方箋ずいった゚ンティティの状態遷移を決めおいき、この状態の時はこういったこずはできないずか、そういった蟻耄を合わせるずころをしっかりやっおいったずいう感じですかね。 酒井 : 今回は、特に プロダクト暪断の共通基盀ずしお、各プロダクトでそれぞれ党く別物の仕組みやステヌタスを保有しおいるのを、共通化・抜象化するずいう業務が必芁になる ので、すごく難しいし、難易床が高い郚分だなず思っおいるんですけど、それを綺麗にシヌケンス図に萜ずし蟌んだ有銬さんが凄いなず思いたした。 江藀 : 基盀偎で䜜っおいただいたシヌケンス図は UX の骚組みなんですよね。そこをいわゆる UX デザむナヌが別途やるずいった现分化をせず、実装の制限を加味し぀぀、正しく運甚を回すために、この䜓隓を䜜るためにこのステヌタス遷移であるべきだよね、ずいう郚分を有銬さんが゚ンゞニア芳点で最初に䜜っおくれおるずいうのが、 メドレヌの゚ンゞニアのずおも良い郚分 だず思っおいたす。技術だけでなく UX などにも必芁であれば越境しおいける文化ですね。 同時予玄 Pj 開発の実際 ── そうした初期フェヌズを経お Pharms ず CLINICS どちらの開発にも関わった小田さんに聞きたいのが、開発の流れの䞭でいわゆるリ゜ヌス的な問題っお倧倉だったず思うのですが、そこはどう解決したんでしょうか。 小田 : 先に Pharms 偎の機胜 を䜜っおその埌に CLINICS の仕様を決めおもらっおから CLINICS の開発に入る流れだったので開発が䞊行するこずはなかったです。ただ Pharms ではリヌド゚ンゞニアずいう立堎なので 、CLINICS の開発に入るための準備ず、Pharms 偎のレビュヌやフォロヌのリ゜ヌス配分は自分で考えお、各タスクを実斜する時間ずタむミングを調敎しながらやっおいたした。 䞀方で、この䜓制でも進めるこずができたのは Pharms チヌムの各メンバヌが既に自走できる状態にあったので、そこに支えられたからこそできた かなず思っおたす。 ── プロダクトも越境しながら開発するずいう文化はすごく良いず思ったのですが、ここはフロヌなどあったりしたんですか? 江藀 : 先皋も話した通り Pharms ずしお本プロゞェクトの優先床は高かったのですが、CLINICS の事業蚈画やリ゜ヌスを螏たえるず医科偎の実装着手が倧きく遅れそうな芋立おでした。そこで、小田さんを 医科偎の開発にもアサむンできたらリ゜ヌス問題が解決できるのではず調敎したした。医科偎の゚ンゞニアからのフォロヌアップは必芁なので、その調敎もし぀぀ですが、開発を早められるなら良し、ず開発チヌム間で最終的に刀断したした。 酒井 : 今たで觊っおなかった CLINICS のシステムにも小田さんはガンガン切り蟌んでくださったので、元々 CLINICS の開発をやっおたのではず思うくらいキャッチアップが早かったです。 ── プロダクトのグロヌスのためにリ゜ヌス調敎を成功させたずいう圢だったんですね。プロダクト間の越境がしやすいような文化だったり、プロゞェクトを成功させようずいう目線合わせが自然にできるのは良いですね。 チヌム間ずいう話でいえば QA は各チヌムに跚っおの掻動だず思いたすが、その芳点ではいかがですか? 小島 : 自分は開発が終盀に入ったタむミングでプロゞェクトに合流したした。それたでは米山さんが QA ずしお入っおいたのですが、医科偎でも怜蚌すべきテスト芳点が倚数あった背景もあり、医科偎の QA をメむンで芋る担圓ずしお参画したした。 埌半に参画した背景もあり、そもそも凊方箋送付ずいう業務や Pharms プロダクトの仕様理解も浅い ずいう状態でしたが、 開発目的・芁件定矩・蚭蚈が詳现にドキュメント化されおいたので、スムヌズに怜蚌に入るこずができたした 。怜蚌の䞭で QA ゚ンゞニアずしおも「この郚分の仕様は芋盎した方が良くなる」ずいうポむントがいく぀か出おきたので、仕様の改善提案も行いたした。埌発参加でしたが、実際に取り入れおもらった改善も倚いです。 メドレヌのプロダクト開発の文化ずしお QA ゚ンゞニアも 芁件定矩からレビュヌに参加したり、意芋を蚀い぀぀プロダクトをより良くするための改善が行える ので、ずおも働きやすいですね。 ── 埌から入っおも動きやすいずいうのは、ドキュメントなどが敎備されおいるからできたこずだずいうのが分かりたすね。暪断プロゞェクトだからこそ気が぀いた他のチヌムの良い点などあったりしたすか? 酒井 : Pharms のプロゞェクトっおやりやすいな、ず思ったのが KPI 蚭蚈がすごく明確なずころだったずいう点でした。 色々玆䜙曲折あった結果ここに蟿り着いおるずいう苊劎を知っおはいるんですけど、今の KPI 蚭蚈っおやっぱりすごくシンプル で凊方箋送信数ですずなるず、そこから逆算した KPI を各 PF に振ればいいず蚀う䜓制だったので、すごくこれはやりやすかったポむントの䞀぀かなず思いたす。 話す論点も結局そこっおいう郚分がすごくコミュニケヌションコストが安くすんだ郚分ではあるかなず思いたした。 暪断プロゞェクトならではの゚ンゞニアリング ── 党䜓の話から個別のドメむンごずの゚ンゞニアリングずいう点ではどのようなこずをされおいたしたか? 小田 : 基本的には有銬さんのシヌケンス図を元に開発を進めおいたした。CLINICS では A ずいう状態になる、その時に B ずいうアクションがあるず Pharms では C ずいう状態になるずいうように状態遷移が耇雑だったため、蚭蚈時にあるべき姿に迷うこずが倚かったのですが、シヌケンスに立ち返るずすぐにその疑問が解決するずいった具合です。 有銬 : シヌケンスの敎合性や難しくなりすぎないように蚭蚈する こずには気を぀けたした。「同時予玄」ずいう蚀葉が先行するず぀い぀い耇雑な新機胜のようなものを䜜りがちですが、蚺療所や薬局の予玄機胜、凊方箋送信機胜ずいった個々のパヌツはもずもずあるわけで、なるべくシンプルにそれらを぀なぎ合わせられるように心がけたした。 江藀 : 现かいプロダクト間の調敎が必芁になるので ちゃんず調剀の欲しい KPI も求め぀぀、か぀珟堎のオペレヌション品質を萜ずさないっおいう芳点で調敎を各ドメむンでやりたした。 工倫したこずでいうず、UX 調査を培底したずころでしょうか。 今回のサヌビスっお業界的にみた時に新しいかずいうずそうではないんですよね。ですので、同業界の䌁業さんの各アプリの䜓隓ずか、自分でも結構色々䜿いながら䜓隓しおみたしたし、それらをベヌスに逆に珟状のうちの仕様を螏たえるず、こういう颚にうちでは実装したしょうみたいなずころを色々やっおいたした。 小田 : ゚ンゞニアリングの芳点でいうず、特に患者アプリチヌムずの API 連携の仕様調敎ず、開発の進め方は密に連携しながら進めたした。先にこっちができおないず向こうも開発できない状態になるので、担圓者同士でコミュニケヌションずり぀぀、工倫しながら進めおいたした。 酒井 : CLINICS で気にしおた郚分はどちらかずいうず リスクずコストの郚分、いかに最小化しお䟡倀を最倧化するかが䞀番重芁 かなず思っおいたので、䞀番倧事なのはやっぱり医科にずっおどういう䟡倀が出お、医科にずっおどういうリスクが発生するかを考えおたした。 䟋えば䞀番最初のすり合わせで薬局予玄する時に日時たで確定させたしょうずいう話もあったんですけど、そこたでスコヌプを広げなくおもメリットが出るのであれば、広げたくないですずいう話をしおいたした。 あずはリリヌスプランの策定ずかかな党医療機関に䞀斉に出すのではなく、たずは䞀郚医療機関様だけに公開するリリヌス方匏にしたしょうみたいなずころも含めおですかね。医科偎で䞀旊テストをやっお怜蚌しお、スムヌズに機胜が䜿えるずころを確認したりするステップを蚭けたしょうず安党策を取りながら進めたした。 これはこのプロゞェクトに関わらず、どんなプロゞェクトでも䞀番重芁でそこが埌からひっくり返るのが䞀番手戻りになっおくるので、そこは重芁かなず思いながら進めおたしたね。 小島 : QA 芖点だず暪断プロゞェクトゆえにステヌトが本圓に耇雑で、メドレヌ入瀟埌に経隓したプロゞェクトの䞭で怜蚌の難易床が最も高かったですね。 ですが、皆さん仰られおいるように各ナヌスケヌスに察する蚭蚈が図でドキュメント化されおいたので、テストケヌスずしお転甚できた郚分も倚くありたした。有銬さんが䜜成した蚭蚈図があったからこそ挏れなくテストできた郚分は倧きいです。倧勢が参加するプロゞェクトにおいお、党員が認識合わせる䞊でも蚭蚈図は本圓に倧事だなず痛感したした。 工倫した点ずしおは、小田さんは Pharms 開発のドメむン知識が豊富だったので、QA 時は Pharms 偎をメむンに芋おもらい぀぀、自分は CLINICS 偎の QA を手厚く芋るようにしたした。どちらのドメむンにも関係する契玄プラン等の耇雑な仕様は自分が担圓したした。 QA 以倖の面だず、リリヌスする䞊で必芁な浮いたボヌルがあれば積極的に取りにいくようにしたした。 䟋えば、これたで䞀郚の医療機関様だけに機胜リリヌスする堎合、その埌のフィヌドバック回収はメヌルや面談で個別に行っおいたしたが、日々の蚺療の䞭でお時間を確保頂くのが難しいずいう状況がありたした。その結果、本 Pj においおも党䜓リリヌスしお問題ないかの刀断がしづらい時期がありたした。 そこで Google フォヌムでアンケヌトを䜜成しお短時間で回答できる圢に切り替えたした。結果的に 100% 回答を埗るこずができたした。 アンケヌト結果から「埓来機胜より䟡倀があり、院内オペレヌションに組み蟌んで頂くコストもそこたで高くない」ずいう点が評䟡できたので、自信を持っお党䜓公開リリヌスに向けお GO 刀定できたした。** メドレヌは圹割に瞛られずボヌルを任せお頂ける環境があるので、自分の専門領域以倖のこずも孊べおいる**ず思うこずが倚いです。 幞いリリヌス埌も倧きな䞍具合はないのでこれはもう皆さんのおかげですね。 同時予玄 Pj を終えお ── では最埌にこのプロゞェクトの総括をしおいだければ。 江藀 : 暪断ではあるけど各ドメむンでそれぞれのプロフェッショナルがちゃんず力を発揮しおプロゞェクトをやり切れたずいうのはすごく倧きい資産でした。 医療 PF はアセットをたくさん持っおいるので、色々組み合わせるず、他の䌚瀟だずできないけど、うちならできそうだね、みたいなこずが色々ある んです。 なので、この埌も暪断プロゞェクトは予定されおいたすが、それに先駆けおひず぀やりきっお、か぀僕らが欲しかった期埅成果を珟状出せおいるずころを含めるずすごく良い䞀歩だったのかな、ず思っおたす。 次は品質を担保し぀぀、もっずスピヌドを䞊げおいきたいずいうのが芳点ずしお倧きいですね。 ── なるほど。こうした暪断プロゞェクトもやっおいく医療 PF ではどんな゚ンゞニアがマッチするポむントでしょう? 有銬 : 技術ず䜵せおナヌザヌぞの䟡倀提䟛も考えながら゚ンゞニアリングしたい人がマッチするのではないかず思いたす。 ── 各プロダクトの持っおいる圹割を螏たえお、俯瞰の芖点で開発もしたいずいう方にはすごく魅力的ですね。本日はありがずうございたした。 さいごに 同時予玄 Pj に぀いお、プロゞェクトを掚進したメンバヌに話を聞きたしたが、耇雑な芁件を実珟可胜な圢にしお各チヌムで垣根を越えお開発をしおいる様子がずおも印象的でした。特に医療 PF ではドメむン同士で有機的に結合しおいき、コラボレヌションするこずによりステヌクホルダヌぞの䟡倀を高めおいるずいうのは、やりがいがあるのではないかず感じたす。 このようなプロゞェクトで力を発揮したいず思った方はぜひ、お気軜にお話をしたしょう! 募集の䞀芧 | 株匏䌚瀟メドレヌ メドレヌの採甚情報はこちらからご確認ください。 www.medley.jp
はじめに こんにちは。 プロダクト開発宀第二開発グルヌプ所属の叀川です。 私は 22 幎新卒ずしおメドレヌに入瀟し、珟圚はむンフラずアプリケヌションを 5 : 5 の割合ぐらいで開発・運甚・保守などを行っおいたす。 孊生時代からむンフラ呚りに觊る機䌚も倚く、入瀟前に AWS Certified Solutions Architect - Professional を取埗したした。 倧のコヌヒ奜きで自宅で生豆から焙煎をし、毎朝豆を挜き、抜出したコヌヒヌを飲むこずが日々の幞せです。 奜きなコヌヒヌ豆の皮類は むンドネシア・スマトラ島産・アラビカ皮のマンデリン( G1 )の䞭深煎りです。 さお、今回の蚘事では私が携わっおいるプロダクトで運甚しおいる Amazon Aurora 以䞋 Aurora を暗号化した時の怜蚌・暗号化の䜜業に぀いお玹介させおいただきたす。 私が怜蚌を始める前の Aurora 呚りに関する私自身の認識は以䞋の通りでした。 AWS のサヌビス党䜓は倧䜓知っおいる 論理レプリケヌションずいうものが存圚するこずは知っおおり觊ったこずもあるが、実際に皌働䞭のものに察しお実斜したこずはない 非暗号化の Aurora DB クラスタヌを暗号化するのは倧倉であるずいう理解 䞊蚘のような認識の新卒゚ンゞニアが、怜蚌をしながら倧きな問題なく暗号化䜜業を実斜した過皋を玹介できればず思いたす。 暗号化を実斜する Aurora ずその呚蟺アプリケヌションに぀いお 圱響範囲ず暗号化をする Aurora DB クラスタヌに぀いお 今回暗号化を行う Aurora DB クラスタヌの呚蟺アプリケヌションはざっくり以䞋のようになっおいたす。 実際に暗号化をする Aurora DB クラスタヌの゚ンゞンは Aurora PostgreSQL で、䞻に AWS Fargate 䞊にある Ruby on Rails (以䞋 Rails )で曞かれた API サヌバからのアクセスがありたす。 むンフラ構築は IaC ( Infrastructure as Code ) ツヌルの Terraform で管理しおいたす。 たた、暗号化察象の Aurora DB クラスタヌのデヌタ量は 5GiB 以䞋で比范的容量は小さめです。 Aurora DB クラスタヌの呚蟺に぀いお 耇数プロダクトぞ同時にアクセスを行うクラむアントから、本クラスタヌにはアクセスが頻繁にありたす。 そのため長時間読み蟌み凊理ができないず他のプロダクトにも圱響がでる可胜性がありたす。 たた、本 Aurora DB クラスタヌに察しお曞き蟌みが行われるメむン機胜が実行されるタむミングでは、アプリケヌションぞの圱響を最小限にしたいず考えたした。 API サヌバ内では基本的にロヌルバック凊理がされおいるので、デヌタ䞍敎合は起きたせんが凊理に倱敗はしたす。 圓たり前ですがナヌザ䜓隓は悪くなるので、できるだけ倱敗しないように暗号化䜜業を行う必芁がありたす。 実斜方法の怜蚎 実斜方法の怜蚎をする䞊で以䞋の芳点を意識したした。 暗号化を実斜する時間垯 暗号化するためにかかる時間 移行たでの準備ず劎力・アプリケヌションコヌドぞの䟝存 暗号化を実斜する時間垯 前提ずしお ラむタヌむンスタンスの停止は 10 分皋床にしたい ずいう目暙のもず時間垯を怜蚎したした。この時間は暗号化実斜時に予期せぬこずが起き、元の状態に戻すこずが必芁になった時も螏たえ、できるだけ短く・か぀クラむアントの圱響範囲が比范的少なくなるように決めたものです。 たた、暗号化を実斜する Aurora DB クラスタヌは耇数プロダクトからのアクセスがありたす。その䞭でも、今回は曞き蟌み凊理が行われる機胜の利甚が少ない時間垯に実斜するこずにしたした。 Amazon CloudWatch の Logs や Datadog の情報をもずに、あるメむン機胜は倜間・䌑日の利甚が少ない傟向にあり、特に土曜日の深倜 26:00 が 1 番少ないず刀明したのでその時間に実斜するこずにしたした。 暗号化するためにかかる時間 暗号化をするために行う䜜業はいく぀か存圚し、その内容ずかかる時間が異なりたす。 䟋えば、 Rails がアクセスする DB ホスト名を倉曎しただけだずコネクションプヌルが残っおしたい、倉曎前の非暗号化クラスタヌに接続しようずしおしたいたす。そのため、ホスト名を倉曎した埌に AWS Fargate サヌビスの再起動が必芁 で、その時間も安定皌働たでに確保しなければなりたせん。 以䞊のような時間が発生するこずず、ラむタヌむンスタンスの停止は 10 分皋床にしたいずいう目暙を螏たえ、怜蚌時に時間を蚈枬したした。 移行たでの準備ず劎力・アプリケヌションコヌドぞの䟝存 基本的に 1 人で怜蚌・移行䜜業を行う、か぀私自身が別のプロゞェクトも䞊行しお進めおいるため、準備に時間がかかりすぎおしたうものは採甚しないこずにしたした。 そのためできるだけ倉曎箇所は少ないもの、特に できればアプリケヌションコヌドの倉曎が極力ない方法 ずいうのを怜蚌時点で決めおおきたした。 䞊蚘を螏たえ、以䞋の 3 ぀の方法で怜蚌をしたのでそれぞれに぀いお説明したす。 スナップショットを甚いお新芏暗号化枈みクラスタヌを䜜成する方法方法 1  AWS Database Migration Service (以䞋 AWS DMS )を甚いお継続的論理レプリケヌションを䜿甚する方法方法 2  pg_dump & pg_restore を䜿甚する方法方法 3  スナップショットを甚いお新芏暗号化枈みクラスタヌを䜜成する方法 こちらの方法は Web 䞊で「 Aurora 暗号化 埌から」などず怜玢するず良くヒットする方法です。 すでに起動しおいる非暗号化クラスタヌのスナップショットを取埗し、そのスナップショットから暗号化枈みの新クラスタヌを埩元する方法です。デヌタの䞍敎合が起きないように、スナップショットを取埗する段階から曞き蟌みがされないように制限する必芁がありたす。 準備するこずはほがなく簡単に実斜できるのですが、ラむタヌむンスタンスの停止時間が長すぎるため䞍採甚ずしたした。 怜蚌時ではそれぞれ以䞋の時間だけかかり、ラむタヌむンスタンスの停止蚱容時間を倧きく䞊回り珟実的ではないず刀断したした。 スナップショットの取埗時間3 分 暗号化枈み新クラスタヌの䜜成玄 30 分 アプリケヌションから接続する DB ホストの切り替え数秒皋床 AWS Fargate の再起動3 分匷 AWS DMS を甚いお継続的論理レプリケヌションを䜿甚する方法 こちらの方法は AWS DMS で論理レプリケヌションを行い、旧クラスタヌの倉曎を怜知しお、新クラスタヌに反映させる方法です。 想定しおいるラむタヌむンスタンスの停止時間は、旧クラスタヌを読み取り専甚に倉曎 〜 レプリケヌションが远い぀き DB ホストの倉曎が終わるたでの時間です。 この停止時間は 5 分匱ず想定しおおり採甚する぀もりだったのですが、AWS DMS の移行前評䟡を行った時すぐに実斜できないこずが明らかになりたした。 移行前評䟡の詳现は省きたすが、䞻な原因は Large Object ( LOB ) の制玄で、150 以䞊のカラムがそのたたの状態では移行するこずができかったためです。 そのほずんどが null 蚱可の制玄だったので解消しようずしたしたが、テヌブル構造だけでなくアプリケヌション偎の倉曎もいく぀か必芁だったため、䞍採甚ずしたした。 たた論理レプリケヌション蚭定を ON にするためには事前にラむタヌむンスタンスの再起動が必芁で、結局別のタむミングで少しのダりンタむムは発生しおしたうこずもあり実斜しないこずにしたした。 pg_dump & pg_restore を䜿甚する方法 こちらの方法は、 PostgreSQL クラむアントに暙準で提䟛されおいる pg_dump ず pg_restore を䜿甚する方法です。 実斜する時は、 AWS Systems Manager のセッションマネヌゞャヌを介しおクラスタヌにアクセス可胜な状態を䜜り、コマンドを実行したす。 結論からいうずこちらの方法を実際に採甚したした。 理由は䞻に以䞋になりたすが、 暗号化するクラスタヌのデヌタサむズが 5GiB 以䞋 だったので、本方法でもそこたで時間がかからなかったのが䞀番の理由です。 怜蚌時にラむタヌむンスタンスの停止時間は 8 分皋床だったこず pg_dump & pg_restore  4 分匱 アプリケヌションから接続する DB ホストの切り替え数秒皋床 AWS Fargate サヌビスの再起動 3 分匷 移行時に実行するシェルスクリプトを甚意すれば良いので準備が倧倉ではないこず 怜蚌時に開発環境で実行した埌も䞍具合は確認されなかったこず たたこちらの方法は Amazon Aurora PostgreSQL をマむグレヌションする時の方法ずしお公匏にも掲茉されおいたので、迷いなく行えるず思いたした pg_dump and pg_restore 。 それぞれの怜蚌結果をたずめるず以䞋のようになりたす。 今回のナヌスケヌスでは方法 3 の pg_dump & pg_restore を䜿甚した暗号化が良いず刀断し、実斜するこずにしたした。 項目 方法 1 方法 2 方法 3 暗号化するためにかかる時間 40 分匱 2 〜 5 分皋床 5 〜 8 分皋床 移行たでの準備ず劎力 小 倧 小 アプリケヌションコヌドぞの䟝存 なし あり なし 実斜内容 行った䜜業内容は以䞋の通りで、それぞれ説明しおいきたす。 移行時は、私ずは別にもう 1 人の方にアラヌトなどの状況を Sentry 等で確認しおいただき、予期せぬ問題が起きおいないかを確認したす圓たり前ですが、ダブルチェックはすごく倧事。 API アプリケヌションから Aurora に接続する時には DNS Alias で名前解決するように蚭定する 暗号化された Aurora DB 新クラスタヌを Terraform で構築する 旧クラスタヌを読み取り専甚に倉曎する 移行スクリプトを実行する実行時間 3 分匷 DNS Alias を旧クラスタヌから新クラスタヌに切り替える実行時間数秒 AWS Fargate サヌビスを再起動する実行時間 3 分匷 1. API アプリケヌションから Aurora に接続する時には DNS Alias で名前解決するように蚭定する AWS のマネヌゞドサヌビスである Route 53 で、レコヌドに旧クラスタヌの゚ンドポむントを指定したす。゚むリアスの名前は、取埗枈みのドメむンからサブドメむンを指定しおいたす。API アプリケヌションから、その゚むリアス名で DB ホスト名を名前解決できるように蚭定を倉曎しおおきたす。 本 API アプリケヌションは DB のホスト名は Parameter Store で管理しおいたので、AWS Fargate の再起動を行い起動時に新しい倀が読み蟌たれるようにしたした。 2. 暗号化された Aurora DB 新クラスタヌを Terraform で構築する 移行の前に暗号化枈みの新クラスタヌ䜜成しおおきたす。暗号化には AWS Key Management Service を䜿甚したす Terraform の公匏リファレンス を芋ればすぐに構築可胜です。 䜙談ですが、 Terraform で Aurora クラスタヌを䜜成する時、 aws_rds_cluster に蚘茉されおいるサンプルでは、暗号化蚭定が蚘述にはないので䜜成する時は気を぀けた方が良さそうです。 3. 旧クラスタヌを読み取り専甚に倉曎する 旧クラスタヌに玐づいおいるパラメヌタヌグルヌプの default_transaction_read_only を 0 から 1 に倉曎したす。この䜜業が完了するず旧クラスタヌぞの曞き蟌み凊理はされなくなりたす。 4. 移行スクリプトを実行する実行時間 3 分匷 移行するためのスクリプトを実行したす。 実際に実行した時には、いく぀かのオプションを぀けたしたが、基本的にやったこずは、 pg_dump したものを暗号化された Aurora DB 新クラスタヌに pg_restore するだけです。 2 で構築した新クラスタヌは、旧クラスタヌず同じプラむベヌトサブネットに䜜成しおおけば旧クラスタヌにアクセスできる状態になるので、移行コマンドは問題なく実行できるず思いたす。 $ pg_dump -h < 旧クラスタヌのホスト 名> -p < ポヌト番 号> -U < ナヌザヌ 名> -d < デヌタベヌス 名> | \ pg_restore -h < 新クラスタヌのホスト 名> -U < ナヌザ 名> -d < デヌタベヌス 名> 5. DNS Alias を旧クラスタヌから新クラスタヌに切り替える実行時間数秒 移行が完了したら、 1 で䜜成した DNS Alias を新クラスタヌに向くように倉曎したす。 移行時は TTL Time to Live はできるだけ短く蚭定 15 秒するこずで、ホストの切り替えに時間がかからないようにしたす。 6. AWS Fargate サヌビスを再起動する実行時間 3 分匷 ホストが切り替わったら、AWS Fargate サヌビスを再起動したす以䞋コマンドを実行するだけ。 先述したしたが、本䜜業を行わないず Rails から Aurora DB クラスタヌぞの DB コネクションプヌルが残っおしたいたす。 すでにホスト名は倉曎されおいるためコネクションが倱敗するず自動で新しく接続をし盎し、倱敗埌は意図したホスト暗号化枈みの新クラスタヌに接続されたすが、接続先を必ず倉曎したいので、サヌビスの再起動を行いたす。 $ aws ecs update-service --profile < プロファむ ル> \ --cluster < クラスタヌ 名> \ --service < サヌビス 名> \ --force-new-deployment 本䜜業は怜蚌時に DNS Alias を倉曎しただけだず接続先が倉わらないこずに気付き入れた察応でした。 ここたでの䜜業が完了したら実際に動かしおいるアプリケヌションに䞍具合がないかを確認し䜜業完了です ✹ さいごに たずめ 今回は皌働䞭の Amazon Aurora PostgreSQL を暗号化した時の怜蚌・実斜内容を玹介したした。 今回の方法は、察象のプロダクトで行う䞊での䞀䟋ですが、比范的少ないダりンタむムで䜜業を完了するこずができたした。 たた、 pg_dump ず pg_restore 実行時に䞊列床を増やすこずでもっず早く移行䜜業は完了できるず思いたすが、暗号化するデヌタの容量が倧きくない、Aurora クラスタヌ偎に負荷をかける必芁がなかったので今回は 1 で実行したした。 私自身本䜜業を終えお、パラメヌタグルヌプの现かい蚭定に぀いおの知芋も増え、この埌にやった他の斜策にも掻きおいるので自分自身の成長にも繋がりたした。 先茩方に意芋を求めたりもしたしたが、斜策自䜓は 1 人でやり切れたこずはずおも良い経隓になりたした。 普段は、 AWS のマネヌゞドサヌビス内で行えないかを真っ先に考えるのですが、マネヌゞドサヌビスに䟝存しない圢で行うこずもナヌスケヌスによっおは必芁だなず再認識できた良い経隓でした。 少しでも私の経隓が誰かの圹に立おばうれしいなず思いたす。 このように、メドレヌは新卒・䞭途に関わらず裁量を持っお斜策を実行できる環境です。むンフラやアプリケヌションにずらわれず様々なプロゞェクトに携われる開発チヌムにゞョむンしおみたせんか 募集の䞀芧 | 株匏䌚瀟メドレヌ メドレヌの採甚情報はこちらからご確認ください。 www.medley.jp
はじめに こんにちは。 プロダクト開発宀第二開発グルヌプ所属の叀川です。 私は 22 幎新卒ずしおメドレヌに入瀟し、珟圚はむンフラずアプリケヌションを 5 : 5 の割合ぐらいで開発・運甚・保守などを行っおいたす。 孊生時代からむンフラ呚りに觊る機䌚も倚く、入瀟前に AWS Certified Solutions Architect - Professional を取埗したした。 倧のコヌヒ奜きで自宅で生豆から焙煎をし、毎朝豆を挜き、抜出したコヌヒヌを飲むこずが日々の幞せです。 奜きなコヌヒヌ豆の皮類は むンドネシア・スマトラ島産・アラビカ皮のマンデリン( G1 )の䞭深煎りです。 さお、今回の蚘事では私が携わっおいるプロダクトで運甚しおいる Amazon Aurora 以䞋 Aurora を暗号化した時の怜蚌・暗号化の䜜業に぀いお玹介させおいただきたす。 私が怜蚌を始める前の Aurora 呚りに関する私自身の認識は以䞋の通りでした。 AWS のサヌビス党䜓は倧䜓知っおいる 論理レプリケヌションずいうものが存圚するこずは知っおおり觊ったこずもあるが、実際に皌働䞭のものに察しお実斜したこずはない 非暗号化の Aurora DB クラスタヌを暗号化するのは倧倉であるずいう理解 䞊蚘のような認識の新卒゚ンゞニアが、怜蚌をしながら倧きな問題なく暗号化䜜業を実斜した過皋を玹介できればず思いたす。 暗号化を実斜する Aurora ずその呚蟺アプリケヌションに぀いお 圱響範囲ず暗号化をする Aurora DB クラスタヌに぀いお 今回暗号化を行う Aurora DB クラスタヌの呚蟺アプリケヌションはざっくり以䞋のようになっおいたす。 実際に暗号化をする Aurora DB クラスタヌの゚ンゞンは Aurora PostgreSQL で、䞻に AWS Fargate 䞊にある Ruby on Rails (以䞋 Rails )で曞かれた API サヌバからのアクセスがありたす。 むンフラ構築は IaC ( Infrastructure as Code ) ツヌルの Terraform で管理しおいたす。 たた、暗号化察象の Aurora DB クラスタヌのデヌタ量は 5GiB 以䞋で比范的容量は小さめです。 Aurora DB クラスタヌの呚蟺に぀いお 耇数プロダクトぞ同時にアクセスを行うクラむアントから、本クラスタヌにはアクセスが頻繁にありたす。 そのため長時間読み蟌み凊理ができないず他のプロダクトにも圱響がでる可胜性がありたす。 たた、本 Aurora DB クラスタヌに察しお曞き蟌みが行われるメむン機胜が実行されるタむミングでは、アプリケヌションぞの圱響を最小限にしたいず考えたした。 API サヌバ内では基本的にロヌルバック凊理がされおいるので、デヌタ䞍敎合は起きたせんが凊理に倱敗はしたす。 圓たり前ですがナヌザ䜓隓は悪くなるので、できるだけ倱敗しないように暗号化䜜業を行う必芁がありたす。 実斜方法の怜蚎 実斜方法の怜蚎をする䞊で以䞋の芳点を意識したした。 暗号化を実斜する時間垯 暗号化するためにかかる時間 移行たでの準備ず劎力・アプリケヌションコヌドぞの䟝存 暗号化を実斜する時間垯 前提ずしお ラむタヌむンスタンスの停止は 10 分皋床にしたい ずいう目暙のもず時間垯を怜蚎したした。この時間は暗号化実斜時に予期せぬこずが起き、元の状態に戻すこずが必芁になった時も螏たえ、できるだけ短く・か぀クラむアントの圱響範囲が比范的少なくなるように決めたものです。 たた、暗号化を実斜する Aurora DB クラスタヌは耇数プロダクトからのアクセスがありたす。その䞭でも、今回は曞き蟌み凊理が行われる機胜の利甚が少ない時間垯に実斜するこずにしたした。 Amazon CloudWatch の Logs や Datadog の情報をもずに、あるメむン機胜は倜間・䌑日の利甚が少ない傟向にあり、特に土曜日の深倜 26:00 が 1 番少ないず刀明したのでその時間に実斜するこずにしたした。 暗号化するためにかかる時間 暗号化をするために行う䜜業はいく぀か存圚し、その内容ずかかる時間が異なりたす。 䟋えば、 Rails がアクセスする DB ホスト名を倉曎しただけだずコネクションプヌルが残っおしたい、倉曎前の非暗号化クラスタヌに接続しようずしおしたいたす。そのため、ホスト名を倉曎した埌に AWS Fargate サヌビスの再起動が必芁 で、その時間も安定皌働たでに確保しなければなりたせん。 以䞊のような時間が発生するこずず、ラむタヌむンスタンスの停止は 10 分皋床にしたいずいう目暙を螏たえ、怜蚌時に時間を蚈枬したした。 移行たでの準備ず劎力・アプリケヌションコヌドぞの䟝存 基本的に 1 人で怜蚌・移行䜜業を行う、か぀私自身が別のプロゞェクトも䞊行しお進めおいるため、準備に時間がかかりすぎおしたうものは採甚しないこずにしたした。 そのためできるだけ倉曎箇所は少ないもの、特に できればアプリケヌションコヌドの倉曎が極力ない方法 ずいうのを怜蚌時点で決めおおきたした。 䞊蚘を螏たえ、以䞋の 3 ぀の方法で怜蚌をしたのでそれぞれに぀いお説明したす。 スナップショットを甚いお新芏暗号化枈みクラスタヌを䜜成する方法方法 1  AWS Database Migration Service (以䞋 AWS DMS )を甚いお継続的論理レプリケヌションを䜿甚する方法方法 2  pg_dump & pg_restore を䜿甚する方法方法 3  スナップショットを甚いお新芏暗号化枈みクラスタヌを䜜成する方法 こちらの方法は Web 䞊で「 Aurora 暗号化 埌から」などず怜玢するず良くヒットする方法です。 すでに起動しおいる非暗号化クラスタヌのスナップショットを取埗し、そのスナップショットから暗号化枈みの新クラスタヌを埩元する方法です。デヌタの䞍敎合が起きないように、スナップショットを取埗する段階から曞き蟌みがされないように制限する必芁がありたす。 準備するこずはほがなく簡単に実斜できるのですが、ラむタヌむンスタンスの停止時間が長すぎるため䞍採甚ずしたした。 怜蚌時ではそれぞれ以䞋の時間だけかかり、ラむタヌむンスタンスの停止蚱容時間を倧きく䞊回り珟実的ではないず刀断したした。 スナップショットの取埗時間3 分 暗号化枈み新クラスタヌの䜜成玄 30 分 アプリケヌションから接続する DB ホストの切り替え数秒皋床 AWS Fargate の再起動3 分匷 AWS DMS を甚いお継続的論理レプリケヌションを䜿甚する方法 こちらの方法は AWS DMS で論理レプリケヌションを行い、旧クラスタヌの倉曎を怜知しお、新クラスタヌに反映させる方法です。 想定しおいるラむタヌむンスタンスの停止時間は、旧クラスタヌを読み取り専甚に倉曎 〜 レプリケヌションが远い぀き DB ホストの倉曎が終わるたでの時間です。 この停止時間は 5 分匱ず想定しおおり採甚する぀もりだったのですが、AWS DMS の移行前評䟡を行った時すぐに実斜できないこずが明らかになりたした。 移行前評䟡の詳现は省きたすが、䞻な原因は Large Object ( LOB ) の制玄で、150 以䞊のカラムがそのたたの状態では移行するこずができかったためです。 そのほずんどが null 蚱可の制玄だったので解消しようずしたしたが、テヌブル構造だけでなくアプリケヌション偎の倉曎もいく぀か必芁だったため、䞍採甚ずしたした。 たた論理レプリケヌション蚭定を ON にするためには事前にラむタヌむンスタンスの再起動が必芁で、結局別のタむミングで少しのダりンタむムは発生しおしたうこずもあり実斜しないこずにしたした。 pg_dump & pg_restore を䜿甚する方法 こちらの方法は、 PostgreSQL クラむアントに暙準で提䟛されおいる pg_dump ず pg_restore を䜿甚する方法です。 実斜する時は、 AWS Systems Manager のセッションマネヌゞャヌを介しおクラスタヌにアクセス可胜な状態を䜜り、コマンドを実行したす。 結論からいうずこちらの方法を実際に採甚したした。 理由は䞻に以䞋になりたすが、 暗号化するクラスタヌのデヌタサむズが 5GiB 以䞋 だったので、本方法でもそこたで時間がかからなかったのが䞀番の理由です。 怜蚌時にラむタヌむンスタンスの停止時間は 8 分皋床だったこず pg_dump & pg_restore  4 分匱 アプリケヌションから接続する DB ホストの切り替え数秒皋床 AWS Fargate サヌビスの再起動 3 分匷 移行時に実行するシェルスクリプトを甚意すれば良いので準備が倧倉ではないこず 怜蚌時に開発環境で実行した埌も䞍具合は確認されなかったこず たたこちらの方法は Amazon Aurora PostgreSQL をマむグレヌションする時の方法ずしお公匏にも掲茉されおいたので、迷いなく行えるず思いたした pg_dump and pg_restore 。 それぞれの怜蚌結果をたずめるず以䞋のようになりたす。 今回のナヌスケヌスでは方法 3 の pg_dump & pg_restore を䜿甚した暗号化が良いず刀断し、実斜するこずにしたした。 項目 方法 1 方法 2 方法 3 暗号化するためにかかる時間 40 分匱 2 〜 5 分皋床 5 〜 8 分皋床 移行たでの準備ず劎力 小 倧 小 アプリケヌションコヌドぞの䟝存 なし あり なし 実斜内容 行った䜜業内容は以䞋の通りで、それぞれ説明しおいきたす。 移行時は、私ずは別にもう 1 人の方にアラヌトなどの状況を Sentry 等で確認しおいただき、予期せぬ問題が起きおいないかを確認したす圓たり前ですが、ダブルチェックはすごく倧事。 API アプリケヌションから Aurora に接続する時には DNS Alias で名前解決するように蚭定する 暗号化された Aurora DB 新クラスタヌを Terraform で構築する 旧クラスタヌを読み取り専甚に倉曎する 移行スクリプトを実行する実行時間 3 分匷 DNS Alias を旧クラスタヌから新クラスタヌに切り替える実行時間数秒 AWS Fargate サヌビスを再起動する実行時間 3 分匷 1. API アプリケヌションから Aurora に接続する時には DNS Alias で名前解決するように蚭定する AWS のマネヌゞドサヌビスである Route 53 で、レコヌドに旧クラスタヌの゚ンドポむントを指定したす。゚むリアスの名前は、取埗枈みのドメむンからサブドメむンを指定しおいたす。API アプリケヌションから、その゚むリアス名で DB ホスト名を名前解決できるように蚭定を倉曎しおおきたす。 本 API アプリケヌションは DB のホスト名は Parameter Store で管理しおいたので、AWS Fargate の再起動を行い起動時に新しい倀が読み蟌たれるようにしたした。 2. 暗号化された Aurora DB 新クラスタヌを Terraform で構築する 移行の前に暗号化枈みの新クラスタヌ䜜成しおおきたす。暗号化には AWS Key Management Service を䜿甚したす Terraform の公匏リファレンス を芋ればすぐに構築可胜です。 䜙談ですが、 Terraform で Aurora クラスタヌを䜜成する時、 aws_rds_cluster に蚘茉されおいるサンプルでは、暗号化蚭定が蚘述にはないので䜜成する時は気を぀けた方が良さそうです。 3. 旧クラスタヌを読み取り専甚に倉曎する 旧クラスタヌに玐づいおいるパラメヌタヌグルヌプの default_transaction_read_only を 0 から 1 に倉曎したす。この䜜業が完了するず旧クラスタヌぞの曞き蟌み凊理はされなくなりたす。 4. 移行スクリプトを実行する実行時間 3 分匷 移行するためのスクリプトを実行したす。 実際に実行した時には、いく぀かのオプションを぀けたしたが、基本的にやったこずは、 pg_dump したものを暗号化された Aurora DB 新クラスタヌに pg_restore するだけです。 2 で構築した新クラスタヌは、旧クラスタヌず同じプラむベヌトサブネットに䜜成しおおけば旧クラスタヌにアクセスできる状態になるので、移行コマンドは問題なく実行できるず思いたす。 $ pg_dump -h < 旧クラスタヌのホスト 名> -p < ポヌト番 号> -U < ナヌザヌ 名> -d < デヌタベヌス 名> | \ pg_restore -h < 新クラスタヌのホスト 名> -U < ナヌザ 名> -d < デヌタベヌス 名> 5. DNS Alias を旧クラスタヌから新クラスタヌに切り替える実行時間数秒 移行が完了したら、 1 で䜜成した DNS Alias を新クラスタヌに向くように倉曎したす。 移行時は TTL Time to Live はできるだけ短く蚭定 15 秒するこずで、ホストの切り替えに時間がかからないようにしたす。 6. AWS Fargate サヌビスを再起動する実行時間 3 分匷 ホストが切り替わったら、AWS Fargate サヌビスを再起動したす以䞋コマンドを実行するだけ。 先述したしたが、本䜜業を行わないず Rails から Aurora DB クラスタヌぞの DB コネクションプヌルが残っおしたいたす。 すでにホスト名は倉曎されおいるためコネクションが倱敗するず自動で新しく接続をし盎し、倱敗埌は意図したホスト暗号化枈みの新クラスタヌに接続されたすが、接続先を必ず倉曎したいので、サヌビスの再起動を行いたす。 $ aws ecs update-service --profile < プロファむ ル> \ --cluster < クラスタヌ 名> \ --service < サヌビス 名> \ --force-new-deployment 本䜜業は怜蚌時に DNS Alias を倉曎しただけだず接続先が倉わらないこずに気付き入れた察応でした。 ここたでの䜜業が完了したら実際に動かしおいるアプリケヌションに䞍具合がないかを確認し䜜業完了です ✹ さいごに たずめ 今回は皌働䞭の Amazon Aurora PostgreSQL を暗号化した時の怜蚌・実斜内容を玹介したした。 今回の方法は、察象のプロダクトで行う䞊での䞀䟋ですが、比范的少ないダりンタむムで䜜業を完了するこずができたした。 たた、 pg_dump ず pg_restore 実行時に䞊列床を増やすこずでもっず早く移行䜜業は完了できるず思いたすが、暗号化するデヌタの容量が倧きくない、Aurora クラスタヌ偎に負荷をかける必芁がなかったので今回は 1 で実行したした。 私自身本䜜業を終えお、パラメヌタグルヌプの现かい蚭定に぀いおの知芋も増え、この埌にやった他の斜策にも掻きおいるので自分自身の成長にも繋がりたした。 先茩方に意芋を求めたりもしたしたが、斜策自䜓は 1 人でやり切れたこずはずおも良い経隓になりたした。 普段は、 AWS のマネヌゞドサヌビス内で行えないかを真っ先に考えるのですが、マネヌゞドサヌビスに䟝存しない圢で行うこずもナヌスケヌスによっおは必芁だなず再認識できた良い経隓でした。 少しでも私の経隓が誰かの圹に立おばうれしいなず思いたす。 このように、メドレヌは新卒・䞭途に関わらず裁量を持っお斜策を実行できる環境です。むンフラやアプリケヌションにずらわれず様々なプロゞェクトに携われる開発チヌムにゞョむンしおみたせんか 募集の䞀芧 | 株匏䌚瀟メドレヌ メドレヌの採甚情報はこちらからご確認ください。 www.medley.jp
はじめに こんにちは。 プロダクト開発宀第二開発グルヌプ所属の叀川です。 私は 22 幎新卒ずしおメドレヌに入瀟し、珟圚はむンフラずアプリケヌションを 5 : 5 の割合ぐらいで開発・運甚・保守などを行っおいたす。 孊生時代からむンフラ呚りに觊る機䌚も倚く、入瀟前に AWS Certified Solutions Architect - Professional を取埗したした。 倧のコヌヒ奜きで自宅で生豆から焙煎をし、毎朝豆を挜き、抜出したコヌヒヌを飲むこずが日々の幞せです。 奜きなコヌヒヌ豆の皮類は むンドネシア・スマトラ島産・アラビカ皮のマンデリン( G1 )の䞭深煎りです。 さお、今回の蚘事では私が携わっおいるプロダクトで運甚しおいる Amazon Aurora 以䞋 Aurora を暗号化した時の怜蚌・暗号化の䜜業に぀いお玹介させおいただきたす。 私が怜蚌を始める前の Aurora 呚りに関する私自身の認識は以䞋の通りでした。 AWS のサヌビス党䜓は倧䜓知っおいる 論理レプリケヌションずいうものが存圚するこずは知っおおり觊ったこずもあるが、実際に皌働䞭のものに察しお実斜したこずはない 非暗号化の Aurora DB クラスタヌを暗号化するのは倧倉であるずいう理解 䞊蚘のような認識の新卒゚ンゞニアが、怜蚌をしながら倧きな問題なく暗号化䜜業を実斜した過皋を玹介できればず思いたす。 暗号化を実斜する Aurora ずその呚蟺アプリケヌションに぀いお 圱響範囲ず暗号化をする Aurora DB クラスタヌに぀いお 今回暗号化を行う Aurora DB クラスタヌの呚蟺アプリケヌションはざっくり以䞋のようになっおいたす。 実際に暗号化をする Aurora DB クラスタヌの゚ンゞンは Aurora PostgreSQL で、䞻に AWS Fargate 䞊にある Ruby on Rails (以䞋 Rails )で曞かれた API サヌバからのアクセスがありたす。 むンフラ構築は IaC ( Infrastructure as Code ) ツヌルの Terraform で管理しおいたす。 たた、暗号化察象の Aurora DB クラスタヌのデヌタ量は 5GiB 以䞋で比范的容量は小さめです。 Aurora DB クラスタヌの呚蟺に぀いお 耇数プロダクトぞ同時にアクセスを行うクラむアントから、本クラスタヌにはアクセスが頻繁にありたす。 そのため長時間読み蟌み凊理ができないず他のプロダクトにも圱響がでる可胜性がありたす。 たた、本 Aurora DB クラスタヌに察しお曞き蟌みが行われるメむン機胜が実行されるタむミングでは、アプリケヌションぞの圱響を最小限にしたいず考えたした。 API サヌバ内では基本的にロヌルバック凊理がされおいるので、デヌタ䞍敎合は起きたせんが凊理に倱敗はしたす。 圓たり前ですがナヌザ䜓隓は悪くなるので、できるだけ倱敗しないように暗号化䜜業を行う必芁がありたす。 実斜方法の怜蚎 実斜方法の怜蚎をする䞊で以䞋の芳点を意識したした。 暗号化を実斜する時間垯 暗号化するためにかかる時間 移行たでの準備ず劎力・アプリケヌションコヌドぞの䟝存 暗号化を実斜する時間垯 前提ずしお ラむタヌむンスタンスの停止は 10 分皋床にしたい ずいう目暙のもず時間垯を怜蚎したした。この時間は暗号化実斜時に予期せぬこずが起き、元の状態に戻すこずが必芁になった時も螏たえ、できるだけ短く・か぀クラむアントの圱響範囲が比范的少なくなるように決めたものです。 たた、暗号化を実斜する Aurora DB クラスタヌは耇数プロダクトからのアクセスがありたす。その䞭でも、今回は曞き蟌み凊理が行われる機胜の利甚が少ない時間垯に実斜するこずにしたした。 Amazon CloudWatch の Logs や Datadog の情報をもずに、あるメむン機胜は倜間・䌑日の利甚が少ない傟向にあり、特に土曜日の深倜 26:00 が 1 番少ないず刀明したのでその時間に実斜するこずにしたした。 暗号化するためにかかる時間 暗号化をするために行う䜜業はいく぀か存圚し、その内容ずかかる時間が異なりたす。 䟋えば、 Rails がアクセスする DB ホスト名を倉曎しただけだずコネクションプヌルが残っおしたい、倉曎前の非暗号化クラスタヌに接続しようずしおしたいたす。そのため、ホスト名を倉曎した埌に AWS Fargate サヌビスの再起動が必芁 で、その時間も安定皌働たでに確保しなければなりたせん。 以䞊のような時間が発生するこずず、ラむタヌむンスタンスの停止は 10 分皋床にしたいずいう目暙を螏たえ、怜蚌時に時間を蚈枬したした。 移行たでの準備ず劎力・アプリケヌションコヌドぞの䟝存 基本的に 1 人で怜蚌・移行䜜業を行う、か぀私自身が別のプロゞェクトも䞊行しお進めおいるため、準備に時間がかかりすぎおしたうものは採甚しないこずにしたした。 そのためできるだけ倉曎箇所は少ないもの、特に できればアプリケヌションコヌドの倉曎が極力ない方法 ずいうのを怜蚌時点で決めおおきたした。 䞊蚘を螏たえ、以䞋の 3 ぀の方法で怜蚌をしたのでそれぞれに぀いお説明したす。 スナップショットを甚いお新芏暗号化枈みクラスタヌを䜜成する方法方法 1  AWS Database Migration Service (以䞋 AWS DMS )を甚いお継続的論理レプリケヌションを䜿甚する方法方法 2  pg_dump & pg_restore を䜿甚する方法方法 3  スナップショットを甚いお新芏暗号化枈みクラスタヌを䜜成する方法 こちらの方法は Web 䞊で「 Aurora 暗号化 埌から」などず怜玢するず良くヒットする方法です。 すでに起動しおいる非暗号化クラスタヌのスナップショットを取埗し、そのスナップショットから暗号化枈みの新クラスタヌを埩元する方法です。デヌタの䞍敎合が起きないように、スナップショットを取埗する段階から曞き蟌みがされないように制限する必芁がありたす。 準備するこずはほがなく簡単に実斜できるのですが、ラむタヌむンスタンスの停止時間が長すぎるため䞍採甚ずしたした。 怜蚌時ではそれぞれ以䞋の時間だけかかり、ラむタヌむンスタンスの停止蚱容時間を倧きく䞊回り珟実的ではないず刀断したした。 スナップショットの取埗時間3 分 暗号化枈み新クラスタヌの䜜成玄 30 分 アプリケヌションから接続する DB ホストの切り替え数秒皋床 AWS Fargate の再起動3 分匷 AWS DMS を甚いお継続的論理レプリケヌションを䜿甚する方法 こちらの方法は AWS DMS で論理レプリケヌションを行い、旧クラスタヌの倉曎を怜知しお、新クラスタヌに反映させる方法です。 想定しおいるラむタヌむンスタンスの停止時間は、旧クラスタヌを読み取り専甚に倉曎 〜 レプリケヌションが远い぀き DB ホストの倉曎が終わるたでの時間です。 この停止時間は 5 分匱ず想定しおおり採甚する぀もりだったのですが、AWS DMS の移行前評䟡を行った時すぐに実斜できないこずが明らかになりたした。 移行前評䟡の詳现は省きたすが、䞻な原因は Large Object ( LOB ) の制玄で、150 以䞊のカラムがそのたたの状態では移行するこずができかったためです。 そのほずんどが null 蚱可の制玄だったので解消しようずしたしたが、テヌブル構造だけでなくアプリケヌション偎の倉曎もいく぀か必芁だったため、䞍採甚ずしたした。 たた論理レプリケヌション蚭定を ON にするためには事前にラむタヌむンスタンスの再起動が必芁で、結局別のタむミングで少しのダりンタむムは発生しおしたうこずもあり実斜しないこずにしたした。 pg_dump & pg_restore を䜿甚する方法 こちらの方法は、 PostgreSQL クラむアントに暙準で提䟛されおいる pg_dump ず pg_restore を䜿甚する方法です。 実斜する時は、 AWS Systems Manager のセッションマネヌゞャヌを介しおクラスタヌにアクセス可胜な状態を䜜り、コマンドを実行したす。 結論からいうずこちらの方法を実際に採甚したした。 理由は䞻に以䞋になりたすが、 暗号化するクラスタヌのデヌタサむズが 5GiB 以䞋 だったので、本方法でもそこたで時間がかからなかったのが䞀番の理由です。 怜蚌時にラむタヌむンスタンスの停止時間は 8 分皋床だったこず pg_dump & pg_restore  4 分匱 アプリケヌションから接続する DB ホストの切り替え数秒皋床 AWS Fargate サヌビスの再起動 3 分匷 移行時に実行するシェルスクリプトを甚意すれば良いので準備が倧倉ではないこず 怜蚌時に開発環境で実行した埌も䞍具合は確認されなかったこず たたこちらの方法は Amazon Aurora PostgreSQL をマむグレヌションする時の方法ずしお公匏にも掲茉されおいたので、迷いなく行えるず思いたした pg_dump and pg_restore 。 それぞれの怜蚌結果をたずめるず以䞋のようになりたす。 今回のナヌスケヌスでは方法 3 の pg_dump & pg_restore を䜿甚した暗号化が良いず刀断し、実斜するこずにしたした。 項目 方法 1 方法 2 方法 3 暗号化するためにかかる時間 40 分匱 2 〜 5 分皋床 5 〜 8 分皋床 移行たでの準備ず劎力 小 倧 小 アプリケヌションコヌドぞの䟝存 なし あり なし 実斜内容 行った䜜業内容は以䞋の通りで、それぞれ説明しおいきたす。 移行時は、私ずは別にもう 1 人の方にアラヌトなどの状況を Sentry 等で確認しおいただき、予期せぬ問題が起きおいないかを確認したす圓たり前ですが、ダブルチェックはすごく倧事。 API アプリケヌションから Aurora に接続する時には DNS Alias で名前解決するように蚭定する 暗号化された Aurora DB 新クラスタヌを Terraform で構築する 旧クラスタヌを読み取り専甚に倉曎する 移行スクリプトを実行する実行時間 3 分匷 DNS Alias を旧クラスタヌから新クラスタヌに切り替える実行時間数秒 AWS Fargate サヌビスを再起動する実行時間 3 分匷 1. API アプリケヌションから Aurora に接続する時には DNS Alias で名前解決するように蚭定する AWS のマネヌゞドサヌビスである Route 53 で、レコヌドに旧クラスタヌの゚ンドポむントを指定したす。゚むリアスの名前は、取埗枈みのドメむンからサブドメむンを指定しおいたす。API アプリケヌションから、その゚むリアス名で DB ホスト名を名前解決できるように蚭定を倉曎しおおきたす。 本 API アプリケヌションは DB のホスト名は Parameter Store で管理しおいたので、AWS Fargate の再起動を行い起動時に新しい倀が読み蟌たれるようにしたした。 2. 暗号化された Aurora DB 新クラスタヌを Terraform で構築する 移行の前に暗号化枈みの新クラスタヌ䜜成しおおきたす。暗号化には AWS Key Management Service を䜿甚したす Terraform の公匏リファレンス を芋ればすぐに構築可胜です。 䜙談ですが、 Terraform で Aurora クラスタヌを䜜成する時、 aws_rds_cluster に蚘茉されおいるサンプルでは、暗号化蚭定が蚘述にはないので䜜成する時は気を぀けた方が良さそうです。 3. 旧クラスタヌを読み取り専甚に倉曎する 旧クラスタヌに玐づいおいるパラメヌタヌグルヌプの default_transaction_read_only を 0 から 1 に倉曎したす。この䜜業が完了するず旧クラスタヌぞの曞き蟌み凊理はされなくなりたす。 4. 移行スクリプトを実行する実行時間 3 分匷 移行するためのスクリプトを実行したす。 実際に実行した時には、いく぀かのオプションを぀けたしたが、基本的にやったこずは、 pg_dump したものを暗号化された Aurora DB 新クラスタヌに pg_restore するだけです。 2 で構築した新クラスタヌは、旧クラスタヌず同じプラむベヌトサブネットに䜜成しおおけば旧クラスタヌにアクセスできる状態になるので、移行コマンドは問題なく実行できるず思いたす。 $ pg_dump -h < 旧クラスタヌのホスト 名> -p < ポヌト番 号> -U < ナヌザヌ 名> -d < デヌタベヌス 名> | \ pg_restore -h < 新クラスタヌのホスト 名> -U < ナヌザ 名> -d < デヌタベヌス 名> 5. DNS Alias を旧クラスタヌから新クラスタヌに切り替える実行時間数秒 移行が完了したら、 1 で䜜成した DNS Alias を新クラスタヌに向くように倉曎したす。 移行時は TTL Time to Live はできるだけ短く蚭定 15 秒するこずで、ホストの切り替えに時間がかからないようにしたす。 6. AWS Fargate サヌビスを再起動する実行時間 3 分匷 ホストが切り替わったら、AWS Fargate サヌビスを再起動したす以䞋コマンドを実行するだけ。 先述したしたが、本䜜業を行わないず Rails から Aurora DB クラスタヌぞの DB コネクションプヌルが残っおしたいたす。 すでにホスト名は倉曎されおいるためコネクションが倱敗するず自動で新しく接続をし盎し、倱敗埌は意図したホスト暗号化枈みの新クラスタヌに接続されたすが、接続先を必ず倉曎したいので、サヌビスの再起動を行いたす。 $ aws ecs update-service --profile < プロファむ ル> \ --cluster < クラスタヌ 名> \ --service < サヌビス 名> \ --force-new-deployment 本䜜業は怜蚌時に DNS Alias を倉曎しただけだず接続先が倉わらないこずに気付き入れた察応でした。 ここたでの䜜業が完了したら実際に動かしおいるアプリケヌションに䞍具合がないかを確認し䜜業完了です ✹ さいごに たずめ 今回は皌働䞭の Amazon Aurora PostgreSQL を暗号化した時の怜蚌・実斜内容を玹介したした。 今回の方法は、察象のプロダクトで行う䞊での䞀䟋ですが、比范的少ないダりンタむムで䜜業を完了するこずができたした。 たた、 pg_dump ず pg_restore 実行時に䞊列床を増やすこずでもっず早く移行䜜業は完了できるず思いたすが、暗号化するデヌタの容量が倧きくない、Aurora クラスタヌ偎に負荷をかける必芁がなかったので今回は 1 で実行したした。 私自身本䜜業を終えお、パラメヌタグルヌプの现かい蚭定に぀いおの知芋も増え、この埌にやった他の斜策にも掻きおいるので自分自身の成長にも繋がりたした。 先茩方に意芋を求めたりもしたしたが、斜策自䜓は 1 人でやり切れたこずはずおも良い経隓になりたした。 普段は、 AWS のマネヌゞドサヌビス内で行えないかを真っ先に考えるのですが、マネヌゞドサヌビスに䟝存しない圢で行うこずもナヌスケヌスによっおは必芁だなず再認識できた良い経隓でした。 少しでも私の経隓が誰かの圹に立おばうれしいなず思いたす。 このように、メドレヌは新卒・䞭途に関わらず裁量を持っお斜策を実行できる環境です。むンフラやアプリケヌションにずらわれず様々なプロゞェクトに携われる開発チヌムにゞョむンしおみたせんか 募集の䞀芧 | 株匏䌚瀟メドレヌ メドレヌの採甚情報はこちらからご確認ください。 www.medley.jp
はじめに こんにちは。 プロダクト開発宀第二開発グルヌプ所属の叀川です。 私は 22 幎新卒ずしおメドレヌに入瀟し、珟圚はむンフラずアプリケヌションを 5 : 5 の割合ぐらいで開発・運甚・保守などを行っおいたす。 孊生時代からむンフラ呚りに觊る機䌚も倚く、入瀟前に AWS Certified Solutions Architect - Professional を取埗したした。 倧のコヌヒ奜きで自宅で生豆から焙煎をし、毎朝豆を挜き、抜出したコヌヒヌを飲むこずが日々の幞せです。 奜きなコヌヒヌ豆の皮類は むンドネシア・スマトラ島産・アラビカ皮のマンデリン( G1 )の䞭深煎りです。 さお、今回の蚘事では私が携わっおいるプロダクトで運甚しおいる Amazon Aurora 以䞋 Aurora を暗号化した時の怜蚌・暗号化の䜜業に぀いお玹介させおいただきたす。 私が怜蚌を始める前の Aurora 呚りに関する私自身の認識は以䞋の通りでした。 AWS のサヌビス党䜓は倧䜓知っおいる 論理レプリケヌションずいうものが存圚するこずは知っおおり觊ったこずもあるが、実際に皌働䞭のものに察しお実斜したこずはない 非暗号化の Aurora DB クラスタヌを暗号化するのは倧倉であるずいう理解 䞊蚘のような認識の新卒゚ンゞニアが、怜蚌をしながら倧きな問題なく暗号化䜜業を実斜した過皋を玹介できればず思いたす。 暗号化を実斜する Aurora ずその呚蟺アプリケヌションに぀いお 圱響範囲ず暗号化をする Aurora DB クラスタヌに぀いお 今回暗号化を行う Aurora DB クラスタヌの呚蟺アプリケヌションはざっくり以䞋のようになっおいたす。 実際に暗号化をする Aurora DB クラスタヌの゚ンゞンは Aurora PostgreSQL で、䞻に AWS Fargate 䞊にある Ruby on Rails (以䞋 Rails )で曞かれた API サヌバからのアクセスがありたす。 むンフラ構築は IaC ( Infrastructure as Code ) ツヌルの Terraform で管理しおいたす。 たた、暗号化察象の Aurora DB クラスタヌのデヌタ量は 5GiB 以䞋で比范的容量は小さめです。 Aurora DB クラスタヌの呚蟺に぀いお 耇数プロダクトぞ同時にアクセスを行うクラむアントから、本クラスタヌにはアクセスが頻繁にありたす。 そのため長時間読み蟌み凊理ができないず他のプロダクトにも圱響がでる可胜性がありたす。 たた、本 Aurora DB クラスタヌに察しお曞き蟌みが行われるメむン機胜が実行されるタむミングでは、アプリケヌションぞの圱響を最小限にしたいず考えたした。 API サヌバ内では基本的にロヌルバック凊理がされおいるので、デヌタ䞍敎合は起きたせんが凊理に倱敗はしたす。 圓たり前ですがナヌザ䜓隓は悪くなるので、できるだけ倱敗しないように暗号化䜜業を行う必芁がありたす。 実斜方法の怜蚎 実斜方法の怜蚎をする䞊で以䞋の芳点を意識したした。 暗号化を実斜する時間垯 暗号化するためにかかる時間 移行たでの準備ず劎力・アプリケヌションコヌドぞの䟝存 暗号化を実斜する時間垯 前提ずしお ラむタヌむンスタンスの停止は 10 分皋床にしたい ずいう目暙のもず時間垯を怜蚎したした。この時間は暗号化実斜時に予期せぬこずが起き、元の状態に戻すこずが必芁になった時も螏たえ、できるだけ短く・か぀クラむアントの圱響範囲が比范的少なくなるように決めたものです。 たた、暗号化を実斜する Aurora DB クラスタヌは耇数プロダクトからのアクセスがありたす。その䞭でも、今回は曞き蟌み凊理が行われる機胜の利甚が少ない時間垯に実斜するこずにしたした。 Amazon CloudWatch の Logs や Datadog の情報をもずに、あるメむン機胜は倜間・䌑日の利甚が少ない傟向にあり、特に土曜日の深倜 26:00 が 1 番少ないず刀明したのでその時間に実斜するこずにしたした。 暗号化するためにかかる時間 暗号化をするために行う䜜業はいく぀か存圚し、その内容ずかかる時間が異なりたす。 䟋えば、 Rails がアクセスする DB ホスト名を倉曎しただけだずコネクションプヌルが残っおしたい、倉曎前の非暗号化クラスタヌに接続しようずしおしたいたす。そのため、ホスト名を倉曎した埌に AWS Fargate サヌビスの再起動が必芁 で、その時間も安定皌働たでに確保しなければなりたせん。 以䞊のような時間が発生するこずず、ラむタヌむンスタンスの停止は 10 分皋床にしたいずいう目暙を螏たえ、怜蚌時に時間を蚈枬したした。 移行たでの準備ず劎力・アプリケヌションコヌドぞの䟝存 基本的に 1 人で怜蚌・移行䜜業を行う、か぀私自身が別のプロゞェクトも䞊行しお進めおいるため、準備に時間がかかりすぎおしたうものは採甚しないこずにしたした。 そのためできるだけ倉曎箇所は少ないもの、特に できればアプリケヌションコヌドの倉曎が極力ない方法 ずいうのを怜蚌時点で決めおおきたした。 䞊蚘を螏たえ、以䞋の 3 ぀の方法で怜蚌をしたのでそれぞれに぀いお説明したす。 スナップショットを甚いお新芏暗号化枈みクラスタヌを䜜成する方法方法 1  AWS Database Migration Service (以䞋 AWS DMS )を甚いお継続的論理レプリケヌションを䜿甚する方法方法 2  pg_dump & pg_restore を䜿甚する方法方法 3  スナップショットを甚いお新芏暗号化枈みクラスタヌを䜜成する方法 こちらの方法は Web 䞊で「 Aurora 暗号化 埌から」などず怜玢するず良くヒットする方法です。 すでに起動しおいる非暗号化クラスタヌのスナップショットを取埗し、そのスナップショットから暗号化枈みの新クラスタヌを埩元する方法です。デヌタの䞍敎合が起きないように、スナップショットを取埗する段階から曞き蟌みがされないように制限する必芁がありたす。 準備するこずはほがなく簡単に実斜できるのですが、ラむタヌむンスタンスの停止時間が長すぎるため䞍採甚ずしたした。 怜蚌時ではそれぞれ以䞋の時間だけかかり、ラむタヌむンスタンスの停止蚱容時間を倧きく䞊回り珟実的ではないず刀断したした。 スナップショットの取埗時間3 分 暗号化枈み新クラスタヌの䜜成玄 30 分 アプリケヌションから接続する DB ホストの切り替え数秒皋床 AWS Fargate の再起動3 分匷 AWS DMS を甚いお継続的論理レプリケヌションを䜿甚する方法 こちらの方法は AWS DMS で論理レプリケヌションを行い、旧クラスタヌの倉曎を怜知しお、新クラスタヌに反映させる方法です。 想定しおいるラむタヌむンスタンスの停止時間は、旧クラスタヌを読み取り専甚に倉曎 〜 レプリケヌションが远い぀き DB ホストの倉曎が終わるたでの時間です。 この停止時間は 5 分匱ず想定しおおり採甚する぀もりだったのですが、AWS DMS の移行前評䟡を行った時すぐに実斜できないこずが明らかになりたした。 移行前評䟡の詳现は省きたすが、䞻な原因は Large Object ( LOB ) の制玄で、150 以䞊のカラムがそのたたの状態では移行するこずができかったためです。 そのほずんどが null 蚱可の制玄だったので解消しようずしたしたが、テヌブル構造だけでなくアプリケヌション偎の倉曎もいく぀か必芁だったため、䞍採甚ずしたした。 たた論理レプリケヌション蚭定を ON にするためには事前にラむタヌむンスタンスの再起動が必芁で、結局別のタむミングで少しのダりンタむムは発生しおしたうこずもあり実斜しないこずにしたした。 pg_dump & pg_restore を䜿甚する方法 こちらの方法は、 PostgreSQL クラむアントに暙準で提䟛されおいる pg_dump ず pg_restore を䜿甚する方法です。 実斜する時は、 AWS Systems Manager のセッションマネヌゞャヌを介しおクラスタヌにアクセス可胜な状態を䜜り、コマンドを実行したす。 結論からいうずこちらの方法を実際に採甚したした。 理由は䞻に以䞋になりたすが、 暗号化するクラスタヌのデヌタサむズが 5GiB 以䞋 だったので、本方法でもそこたで時間がかからなかったのが䞀番の理由です。 怜蚌時にラむタヌむンスタンスの停止時間は 8 分皋床だったこず pg_dump & pg_restore  4 分匱 アプリケヌションから接続する DB ホストの切り替え数秒皋床 AWS Fargate サヌビスの再起動 3 分匷 移行時に実行するシェルスクリプトを甚意すれば良いので準備が倧倉ではないこず 怜蚌時に開発環境で実行した埌も䞍具合は確認されなかったこず たたこちらの方法は Amazon Aurora PostgreSQL をマむグレヌションする時の方法ずしお公匏にも掲茉されおいたので、迷いなく行えるず思いたした pg_dump and pg_restore 。 それぞれの怜蚌結果をたずめるず以䞋のようになりたす。 今回のナヌスケヌスでは方法 3 の pg_dump & pg_restore を䜿甚した暗号化が良いず刀断し、実斜するこずにしたした。 項目 方法 1 方法 2 方法 3 暗号化するためにかかる時間 40 分匱 2 〜 5 分皋床 5 〜 8 分皋床 移行たでの準備ず劎力 小 倧 小 アプリケヌションコヌドぞの䟝存 なし あり なし 実斜内容 行った䜜業内容は以䞋の通りで、それぞれ説明しおいきたす。 移行時は、私ずは別にもう 1 人の方にアラヌトなどの状況を Sentry 等で確認しおいただき、予期せぬ問題が起きおいないかを確認したす圓たり前ですが、ダブルチェックはすごく倧事。 API アプリケヌションから Aurora に接続する時には DNS Alias で名前解決するように蚭定する 暗号化された Aurora DB 新クラスタヌを Terraform で構築する 旧クラスタヌを読み取り専甚に倉曎する 移行スクリプトを実行する実行時間 3 分匷 DNS Alias を旧クラスタヌから新クラスタヌに切り替える実行時間数秒 AWS Fargate サヌビスを再起動する実行時間 3 分匷 1. API アプリケヌションから Aurora に接続する時には DNS Alias で名前解決するように蚭定する AWS のマネヌゞドサヌビスである Route 53 で、レコヌドに旧クラスタヌの゚ンドポむントを指定したす。゚むリアスの名前は、取埗枈みのドメむンからサブドメむンを指定しおいたす。API アプリケヌションから、その゚むリアス名で DB ホスト名を名前解決できるように蚭定を倉曎しおおきたす。 本 API アプリケヌションは DB のホスト名は Parameter Store で管理しおいたので、AWS Fargate の再起動を行い起動時に新しい倀が読み蟌たれるようにしたした。 2. 暗号化された Aurora DB 新クラスタヌを Terraform で構築する 移行の前に暗号化枈みの新クラスタヌ䜜成しおおきたす。暗号化には AWS Key Management Service を䜿甚したす Terraform の公匏リファレンス を芋ればすぐに構築可胜です。 䜙談ですが、 Terraform で Aurora クラスタヌを䜜成する時、 aws_rds_cluster に蚘茉されおいるサンプルでは、暗号化蚭定が蚘述にはないので䜜成する時は気を぀けた方が良さそうです。 3. 旧クラスタヌを読み取り専甚に倉曎する 旧クラスタヌに玐づいおいるパラメヌタヌグルヌプの default_transaction_read_only を 0 から 1 に倉曎したす。この䜜業が完了するず旧クラスタヌぞの曞き蟌み凊理はされなくなりたす。 4. 移行スクリプトを実行する実行時間 3 分匷 移行するためのスクリプトを実行したす。 実際に実行した時には、いく぀かのオプションを぀けたしたが、基本的にやったこずは、 pg_dump したものを暗号化された Aurora DB 新クラスタヌに pg_restore するだけです。 2 で構築した新クラスタヌは、旧クラスタヌず同じプラむベヌトサブネットに䜜成しおおけば旧クラスタヌにアクセスできる状態になるので、移行コマンドは問題なく実行できるず思いたす。 $ pg_dump -h < 旧クラスタヌのホスト 名> -p < ポヌト番 号> -U < ナヌザヌ 名> -d < デヌタベヌス 名> | \ pg_restore -h < 新クラスタヌのホスト 名> -U < ナヌザ 名> -d < デヌタベヌス 名> 5. DNS Alias を旧クラスタヌから新クラスタヌに切り替える実行時間数秒 移行が完了したら、 1 で䜜成した DNS Alias を新クラスタヌに向くように倉曎したす。 移行時は TTL Time to Live はできるだけ短く蚭定 15 秒するこずで、ホストの切り替えに時間がかからないようにしたす。 6. AWS Fargate サヌビスを再起動する実行時間 3 分匷 ホストが切り替わったら、AWS Fargate サヌビスを再起動したす以䞋コマンドを実行するだけ。 先述したしたが、本䜜業を行わないず Rails から Aurora DB クラスタヌぞの DB コネクションプヌルが残っおしたいたす。 すでにホスト名は倉曎されおいるためコネクションが倱敗するず自動で新しく接続をし盎し、倱敗埌は意図したホスト暗号化枈みの新クラスタヌに接続されたすが、接続先を必ず倉曎したいので、サヌビスの再起動を行いたす。 $ aws ecs update-service --profile < プロファむ ル> \ --cluster < クラスタヌ 名> \ --service < サヌビス 名> \ --force-new-deployment 本䜜業は怜蚌時に DNS Alias を倉曎しただけだず接続先が倉わらないこずに気付き入れた察応でした。 ここたでの䜜業が完了したら実際に動かしおいるアプリケヌションに䞍具合がないかを確認し䜜業完了です ✹ さいごに たずめ 今回は皌働䞭の Amazon Aurora PostgreSQL を暗号化した時の怜蚌・実斜内容を玹介したした。 今回の方法は、察象のプロダクトで行う䞊での䞀䟋ですが、比范的少ないダりンタむムで䜜業を完了するこずができたした。 たた、 pg_dump ず pg_restore 実行時に䞊列床を増やすこずでもっず早く移行䜜業は完了できるず思いたすが、暗号化するデヌタの容量が倧きくない、Aurora クラスタヌ偎に負荷をかける必芁がなかったので今回は 1 で実行したした。 私自身本䜜業を終えお、パラメヌタグルヌプの现かい蚭定に぀いおの知芋も増え、この埌にやった他の斜策にも掻きおいるので自分自身の成長にも繋がりたした。 先茩方に意芋を求めたりもしたしたが、斜策自䜓は 1 人でやり切れたこずはずおも良い経隓になりたした。 普段は、 AWS のマネヌゞドサヌビス内で行えないかを真っ先に考えるのですが、マネヌゞドサヌビスに䟝存しない圢で行うこずもナヌスケヌスによっおは必芁だなず再認識できた良い経隓でした。 少しでも私の経隓が誰かの圹に立おばうれしいなず思いたす。 このように、メドレヌは新卒・䞭途に関わらず裁量を持っお斜策を実行できる環境です。むンフラやアプリケヌションにずらわれず様々なプロゞェクトに携われる開発チヌムにゞョむンしおみたせんか 募集の䞀芧 | 株匏䌚瀟メドレヌ メドレヌの採甚情報はこちらからご確認ください。 www.medley.jp
はじめに こんにちは。 プロダクト開発宀第二開発グルヌプ所属の叀川です。 私は 22 幎新卒ずしおメドレヌに入瀟し、珟圚はむンフラずアプリケヌションを 5 : 5 の割合ぐらいで開発・運甚・保守などを行っおいたす。 孊生時代からむンフラ呚りに觊る機䌚も倚く、入瀟前に AWS Certified Solutions Architect - Professional を取埗したした。 倧のコヌヒ奜きで自宅で生豆から焙煎をし、毎朝豆を挜き、抜出したコヌヒヌを飲むこずが日々の幞せです。 奜きなコヌヒヌ豆の皮類は むンドネシア・スマトラ島産・アラビカ皮のマンデリン( G1 )の䞭深煎りです。 さお、今回の蚘事では私が携わっおいるプロダクトで運甚しおいる Amazon Aurora 以䞋 Aurora を暗号化した時の怜蚌・暗号化の䜜業に぀いお玹介させおいただきたす。 私が怜蚌を始める前の Aurora 呚りに関する私自身の認識は以䞋の通りでした。 AWS のサヌビス党䜓は倧䜓知っおいる 論理レプリケヌションずいうものが存圚するこずは知っおおり觊ったこずもあるが、実際に皌働䞭のものに察しお実斜したこずはない 非暗号化の Aurora DB クラスタヌを暗号化するのは倧倉であるずいう理解 䞊蚘のような認識の新卒゚ンゞニアが、怜蚌をしながら倧きな問題なく暗号化䜜業を実斜した過皋を玹介できればず思いたす。 暗号化を実斜する Aurora ずその呚蟺アプリケヌションに぀いお 圱響範囲ず暗号化をする Aurora DB クラスタヌに぀いお 今回暗号化を行う Aurora DB クラスタヌの呚蟺アプリケヌションはざっくり以䞋のようになっおいたす。 実際に暗号化をする Aurora DB クラスタヌの゚ンゞンは Aurora PostgreSQL で、䞻に AWS Fargate 䞊にある Ruby on Rails (以䞋 Rails )で曞かれた API サヌバからのアクセスがありたす。 むンフラ構築は IaC ( Infrastructure as Code ) ツヌルの Terraform で管理しおいたす。 たた、暗号化察象の Aurora DB クラスタヌのデヌタ量は 5GiB 以䞋で比范的容量は小さめです。 Aurora DB クラスタヌの呚蟺に぀いお 耇数プロダクトぞ同時にアクセスを行うクラむアントから、本クラスタヌにはアクセスが頻繁にありたす。 そのため長時間読み蟌み凊理ができないず他のプロダクトにも圱響がでる可胜性がありたす。 たた、本 Aurora DB クラスタヌに察しお曞き蟌みが行われるメむン機胜が実行されるタむミングでは、アプリケヌションぞの圱響を最小限にしたいず考えたした。 API サヌバ内では基本的にロヌルバック凊理がされおいるので、デヌタ䞍敎合は起きたせんが凊理に倱敗はしたす。 圓たり前ですがナヌザ䜓隓は悪くなるので、できるだけ倱敗しないように暗号化䜜業を行う必芁がありたす。 実斜方法の怜蚎 実斜方法の怜蚎をする䞊で以䞋の芳点を意識したした。 暗号化を実斜する時間垯 暗号化するためにかかる時間 移行たでの準備ず劎力・アプリケヌションコヌドぞの䟝存 暗号化を実斜する時間垯 前提ずしお ラむタヌむンスタンスの停止は 10 分皋床にしたい ずいう目暙のもず時間垯を怜蚎したした。この時間は暗号化実斜時に予期せぬこずが起き、元の状態に戻すこずが必芁になった時も螏たえ、できるだけ短く・か぀クラむアントの圱響範囲が比范的少なくなるように決めたものです。 たた、暗号化を実斜する Aurora DB クラスタヌは耇数プロダクトからのアクセスがありたす。その䞭でも、今回は曞き蟌み凊理が行われる機胜の利甚が少ない時間垯に実斜するこずにしたした。 Amazon CloudWatch の Logs や Datadog の情報をもずに、あるメむン機胜は倜間・䌑日の利甚が少ない傟向にあり、特に土曜日の深倜 26:00 が 1 番少ないず刀明したのでその時間に実斜するこずにしたした。 暗号化するためにかかる時間 暗号化をするために行う䜜業はいく぀か存圚し、その内容ずかかる時間が異なりたす。 䟋えば、 Rails がアクセスする DB ホスト名を倉曎しただけだずコネクションプヌルが残っおしたい、倉曎前の非暗号化クラスタヌに接続しようずしおしたいたす。そのため、ホスト名を倉曎した埌に AWS Fargate サヌビスの再起動が必芁 で、その時間も安定皌働たでに確保しなければなりたせん。 以䞊のような時間が発生するこずず、ラむタヌむンスタンスの停止は 10 分皋床にしたいずいう目暙を螏たえ、怜蚌時に時間を蚈枬したした。 移行たでの準備ず劎力・アプリケヌションコヌドぞの䟝存 基本的に 1 人で怜蚌・移行䜜業を行う、か぀私自身が別のプロゞェクトも䞊行しお進めおいるため、準備に時間がかかりすぎおしたうものは採甚しないこずにしたした。 そのためできるだけ倉曎箇所は少ないもの、特に できればアプリケヌションコヌドの倉曎が極力ない方法 ずいうのを怜蚌時点で決めおおきたした。 䞊蚘を螏たえ、以䞋の 3 ぀の方法で怜蚌をしたのでそれぞれに぀いお説明したす。 スナップショットを甚いお新芏暗号化枈みクラスタヌを䜜成する方法方法 1  AWS Database Migration Service (以䞋 AWS DMS )を甚いお継続的論理レプリケヌションを䜿甚する方法方法 2  pg_dump & pg_restore を䜿甚する方法方法 3  スナップショットを甚いお新芏暗号化枈みクラスタヌを䜜成する方法 こちらの方法は Web 䞊で「 Aurora 暗号化 埌から」などず怜玢するず良くヒットする方法です。 すでに起動しおいる非暗号化クラスタヌのスナップショットを取埗し、そのスナップショットから暗号化枈みの新クラスタヌを埩元する方法です。デヌタの䞍敎合が起きないように、スナップショットを取埗する段階から曞き蟌みがされないように制限する必芁がありたす。 準備するこずはほがなく簡単に実斜できるのですが、ラむタヌむンスタンスの停止時間が長すぎるため䞍採甚ずしたした。 怜蚌時ではそれぞれ以䞋の時間だけかかり、ラむタヌむンスタンスの停止蚱容時間を倧きく䞊回り珟実的ではないず刀断したした。 スナップショットの取埗時間3 分 暗号化枈み新クラスタヌの䜜成玄 30 分 アプリケヌションから接続する DB ホストの切り替え数秒皋床 AWS Fargate の再起動3 分匷 AWS DMS を甚いお継続的論理レプリケヌションを䜿甚する方法 こちらの方法は AWS DMS で論理レプリケヌションを行い、旧クラスタヌの倉曎を怜知しお、新クラスタヌに反映させる方法です。 想定しおいるラむタヌむンスタンスの停止時間は、旧クラスタヌを読み取り専甚に倉曎 〜 レプリケヌションが远い぀き DB ホストの倉曎が終わるたでの時間です。 この停止時間は 5 分匱ず想定しおおり採甚する぀もりだったのですが、AWS DMS の移行前評䟡を行った時すぐに実斜できないこずが明らかになりたした。 移行前評䟡の詳现は省きたすが、䞻な原因は Large Object ( LOB ) の制玄で、150 以䞊のカラムがそのたたの状態では移行するこずができかったためです。 そのほずんどが null 蚱可の制玄だったので解消しようずしたしたが、テヌブル構造だけでなくアプリケヌション偎の倉曎もいく぀か必芁だったため、䞍採甚ずしたした。 たた論理レプリケヌション蚭定を ON にするためには事前にラむタヌむンスタンスの再起動が必芁で、結局別のタむミングで少しのダりンタむムは発生しおしたうこずもあり実斜しないこずにしたした。 pg_dump & pg_restore を䜿甚する方法 こちらの方法は、 PostgreSQL クラむアントに暙準で提䟛されおいる pg_dump ず pg_restore を䜿甚する方法です。 実斜する時は、 AWS Systems Manager のセッションマネヌゞャヌを介しおクラスタヌにアクセス可胜な状態を䜜り、コマンドを実行したす。 結論からいうずこちらの方法を実際に採甚したした。 理由は䞻に以䞋になりたすが、 暗号化するクラスタヌのデヌタサむズが 5GiB 以䞋 だったので、本方法でもそこたで時間がかからなかったのが䞀番の理由です。 怜蚌時にラむタヌむンスタンスの停止時間は 8 分皋床だったこず pg_dump & pg_restore  4 分匱 アプリケヌションから接続する DB ホストの切り替え数秒皋床 AWS Fargate サヌビスの再起動 3 分匷 移行時に実行するシェルスクリプトを甚意すれば良いので準備が倧倉ではないこず 怜蚌時に開発環境で実行した埌も䞍具合は確認されなかったこず たたこちらの方法は Amazon Aurora PostgreSQL をマむグレヌションする時の方法ずしお公匏にも掲茉されおいたので、迷いなく行えるず思いたした pg_dump and pg_restore 。 それぞれの怜蚌結果をたずめるず以䞋のようになりたす。 今回のナヌスケヌスでは方法 3 の pg_dump & pg_restore を䜿甚した暗号化が良いず刀断し、実斜するこずにしたした。 項目 方法 1 方法 2 方法 3 暗号化するためにかかる時間 40 分匱 2 〜 5 分皋床 5 〜 8 分皋床 移行たでの準備ず劎力 小 倧 小 アプリケヌションコヌドぞの䟝存 なし あり なし 実斜内容 行った䜜業内容は以䞋の通りで、それぞれ説明しおいきたす。 移行時は、私ずは別にもう 1 人の方にアラヌトなどの状況を Sentry 等で確認しおいただき、予期せぬ問題が起きおいないかを確認したす圓たり前ですが、ダブルチェックはすごく倧事。 API アプリケヌションから Aurora に接続する時には DNS Alias で名前解決するように蚭定する 暗号化された Aurora DB 新クラスタヌを Terraform で構築する 旧クラスタヌを読み取り専甚に倉曎する 移行スクリプトを実行する実行時間 3 分匷 DNS Alias を旧クラスタヌから新クラスタヌに切り替える実行時間数秒 AWS Fargate サヌビスを再起動する実行時間 3 分匷 1. API アプリケヌションから Aurora に接続する時には DNS Alias で名前解決するように蚭定する AWS のマネヌゞドサヌビスである Route 53 で、レコヌドに旧クラスタヌの゚ンドポむントを指定したす。゚むリアスの名前は、取埗枈みのドメむンからサブドメむンを指定しおいたす。API アプリケヌションから、その゚むリアス名で DB ホスト名を名前解決できるように蚭定を倉曎しおおきたす。 本 API アプリケヌションは DB のホスト名は Parameter Store で管理しおいたので、AWS Fargate の再起動を行い起動時に新しい倀が読み蟌たれるようにしたした。 2. 暗号化された Aurora DB 新クラスタヌを Terraform で構築する 移行の前に暗号化枈みの新クラスタヌ䜜成しおおきたす。暗号化には AWS Key Management Service を䜿甚したす Terraform の公匏リファレンス を芋ればすぐに構築可胜です。 䜙談ですが、 Terraform で Aurora クラスタヌを䜜成する時、 aws_rds_cluster に蚘茉されおいるサンプルでは、暗号化蚭定が蚘述にはないので䜜成する時は気を぀けた方が良さそうです。 3. 旧クラスタヌを読み取り専甚に倉曎する 旧クラスタヌに玐づいおいるパラメヌタヌグルヌプの default_transaction_read_only を 0 から 1 に倉曎したす。この䜜業が完了するず旧クラスタヌぞの曞き蟌み凊理はされなくなりたす。 4. 移行スクリプトを実行する実行時間 3 分匷 移行するためのスクリプトを実行したす。 実際に実行した時には、いく぀かのオプションを぀けたしたが、基本的にやったこずは、 pg_dump したものを暗号化された Aurora DB 新クラスタヌに pg_restore するだけです。 2 で構築した新クラスタヌは、旧クラスタヌず同じプラむベヌトサブネットに䜜成しおおけば旧クラスタヌにアクセスできる状態になるので、移行コマンドは問題なく実行できるず思いたす。 $ pg_dump -h < 旧クラスタヌのホスト 名> -p < ポヌト番 号> -U < ナヌザヌ 名> -d < デヌタベヌス 名> | \ pg_restore -h < 新クラスタヌのホスト 名> -U < ナヌザ 名> -d < デヌタベヌス 名> 5. DNS Alias を旧クラスタヌから新クラスタヌに切り替える実行時間数秒 移行が完了したら、 1 で䜜成した DNS Alias を新クラスタヌに向くように倉曎したす。 移行時は TTL Time to Live はできるだけ短く蚭定 15 秒するこずで、ホストの切り替えに時間がかからないようにしたす。 6. AWS Fargate サヌビスを再起動する実行時間 3 分匷 ホストが切り替わったら、AWS Fargate サヌビスを再起動したす以䞋コマンドを実行するだけ。 先述したしたが、本䜜業を行わないず Rails から Aurora DB クラスタヌぞの DB コネクションプヌルが残っおしたいたす。 すでにホスト名は倉曎されおいるためコネクションが倱敗するず自動で新しく接続をし盎し、倱敗埌は意図したホスト暗号化枈みの新クラスタヌに接続されたすが、接続先を必ず倉曎したいので、サヌビスの再起動を行いたす。 $ aws ecs update-service --profile < プロファむ ル> \ --cluster < クラスタヌ 名> \ --service < サヌビス 名> \ --force-new-deployment 本䜜業は怜蚌時に DNS Alias を倉曎しただけだず接続先が倉わらないこずに気付き入れた察応でした。 ここたでの䜜業が完了したら実際に動かしおいるアプリケヌションに䞍具合がないかを確認し䜜業完了です ✹ さいごに たずめ 今回は皌働䞭の Amazon Aurora PostgreSQL を暗号化した時の怜蚌・実斜内容を玹介したした。 今回の方法は、察象のプロダクトで行う䞊での䞀䟋ですが、比范的少ないダりンタむムで䜜業を完了するこずができたした。 たた、 pg_dump ず pg_restore 実行時に䞊列床を増やすこずでもっず早く移行䜜業は完了できるず思いたすが、暗号化するデヌタの容量が倧きくない、Aurora クラスタヌ偎に負荷をかける必芁がなかったので今回は 1 で実行したした。 私自身本䜜業を終えお、パラメヌタグルヌプの现かい蚭定に぀いおの知芋も増え、この埌にやった他の斜策にも掻きおいるので自分自身の成長にも繋がりたした。 先茩方に意芋を求めたりもしたしたが、斜策自䜓は 1 人でやり切れたこずはずおも良い経隓になりたした。 普段は、 AWS のマネヌゞドサヌビス内で行えないかを真っ先に考えるのですが、マネヌゞドサヌビスに䟝存しない圢で行うこずもナヌスケヌスによっおは必芁だなず再認識できた良い経隓でした。 少しでも私の経隓が誰かの圹に立おばうれしいなず思いたす。 このように、メドレヌは新卒・䞭途に関わらず裁量を持っお斜策を実行できる環境です。むンフラやアプリケヌションにずらわれず様々なプロゞェクトに携われる開発チヌムにゞョむンしおみたせんか 募集の䞀芧 | 株匏䌚瀟メドレヌ メドレヌの採甚情報はこちらからご確認ください。 www.medley.jp
はじめに こんにちは。 プロダクト開発宀第二開発グルヌプ所属の叀川です。 私は 22 幎新卒ずしおメドレヌに入瀟し、珟圚はむンフラずアプリケヌションを 5 : 5 の割合ぐらいで開発・運甚・保守などを行っおいたす。 孊生時代からむンフラ呚りに觊る機䌚も倚く、入瀟前に AWS Certified Solutions Architect - Professional を取埗したした。 倧のコヌヒ奜きで自宅で生豆から焙煎をし、毎朝豆を挜き、抜出したコヌヒヌを飲むこずが日々の幞せです。 奜きなコヌヒヌ豆の皮類は むンドネシア・スマトラ島産・アラビカ皮のマンデリン( G1 )の䞭深煎りです。 さお、今回の蚘事では私が携わっおいるプロダクトで運甚しおいる Amazon Aurora 以䞋 Aurora を暗号化した時の怜蚌・暗号化の䜜業に぀いお玹介させおいただきたす。 私が怜蚌を始める前の Aurora 呚りに関する私自身の認識は以䞋の通りでした。 AWS のサヌビス党䜓は倧䜓知っおいる 論理レプリケヌションずいうものが存圚するこずは知っおおり觊ったこずもあるが、実際に皌働䞭のものに察しお実斜したこずはない 非暗号化の Aurora DB クラスタヌを暗号化するのは倧倉であるずいう理解 䞊蚘のような認識の新卒゚ンゞニアが、怜蚌をしながら倧きな問題なく暗号化䜜業を実斜した過皋を玹介できればず思いたす。 暗号化を実斜する Aurora ずその呚蟺アプリケヌションに぀いお 圱響範囲ず暗号化をする Aurora DB クラスタヌに぀いお 今回暗号化を行う Aurora DB クラスタヌの呚蟺アプリケヌションはざっくり以䞋のようになっおいたす。 実際に暗号化をする Aurora DB クラスタヌの゚ンゞンは Aurora PostgreSQL で、䞻に AWS Fargate 䞊にある Ruby on Rails (以䞋 Rails )で曞かれた API サヌバからのアクセスがありたす。 むンフラ構築は IaC ( Infrastructure as Code ) ツヌルの Terraform で管理しおいたす。 たた、暗号化察象の Aurora DB クラスタヌのデヌタ量は 5GiB 以䞋で比范的容量は小さめです。 Aurora DB クラスタヌの呚蟺に぀いお 耇数プロダクトぞ同時にアクセスを行うクラむアントから、本クラスタヌにはアクセスが頻繁にありたす。 そのため長時間読み蟌み凊理ができないず他のプロダクトにも圱響がでる可胜性がありたす。 たた、本 Aurora DB クラスタヌに察しお曞き蟌みが行われるメむン機胜が実行されるタむミングでは、アプリケヌションぞの圱響を最小限にしたいず考えたした。 API サヌバ内では基本的にロヌルバック凊理がされおいるので、デヌタ䞍敎合は起きたせんが凊理に倱敗はしたす。 圓たり前ですがナヌザ䜓隓は悪くなるので、できるだけ倱敗しないように暗号化䜜業を行う必芁がありたす。 実斜方法の怜蚎 実斜方法の怜蚎をする䞊で以䞋の芳点を意識したした。 暗号化を実斜する時間垯 暗号化するためにかかる時間 移行たでの準備ず劎力・アプリケヌションコヌドぞの䟝存 暗号化を実斜する時間垯 前提ずしお ラむタヌむンスタンスの停止は 10 分皋床にしたい ずいう目暙のもず時間垯を怜蚎したした。この時間は暗号化実斜時に予期せぬこずが起き、元の状態に戻すこずが必芁になった時も螏たえ、できるだけ短く・か぀クラむアントの圱響範囲が比范的少なくなるように決めたものです。 たた、暗号化を実斜する Aurora DB クラスタヌは耇数プロダクトからのアクセスがありたす。その䞭でも、今回は曞き蟌み凊理が行われる機胜の利甚が少ない時間垯に実斜するこずにしたした。 Amazon CloudWatch の Logs や Datadog の情報をもずに、あるメむン機胜は倜間・䌑日の利甚が少ない傟向にあり、特に土曜日の深倜 26:00 が 1 番少ないず刀明したのでその時間に実斜するこずにしたした。 暗号化するためにかかる時間 暗号化をするために行う䜜業はいく぀か存圚し、その内容ずかかる時間が異なりたす。 䟋えば、 Rails がアクセスする DB ホスト名を倉曎しただけだずコネクションプヌルが残っおしたい、倉曎前の非暗号化クラスタヌに接続しようずしおしたいたす。そのため、ホスト名を倉曎した埌に AWS Fargate サヌビスの再起動が必芁 で、その時間も安定皌働たでに確保しなければなりたせん。 以䞊のような時間が発生するこずず、ラむタヌむンスタンスの停止は 10 分皋床にしたいずいう目暙を螏たえ、怜蚌時に時間を蚈枬したした。 移行たでの準備ず劎力・アプリケヌションコヌドぞの䟝存 基本的に 1 人で怜蚌・移行䜜業を行う、か぀私自身が別のプロゞェクトも䞊行しお進めおいるため、準備に時間がかかりすぎおしたうものは採甚しないこずにしたした。 そのためできるだけ倉曎箇所は少ないもの、特に できればアプリケヌションコヌドの倉曎が極力ない方法 ずいうのを怜蚌時点で決めおおきたした。 䞊蚘を螏たえ、以䞋の 3 ぀の方法で怜蚌をしたのでそれぞれに぀いお説明したす。 スナップショットを甚いお新芏暗号化枈みクラスタヌを䜜成する方法方法 1  AWS Database Migration Service (以䞋 AWS DMS )を甚いお継続的論理レプリケヌションを䜿甚する方法方法 2  pg_dump & pg_restore を䜿甚する方法方法 3  スナップショットを甚いお新芏暗号化枈みクラスタヌを䜜成する方法 こちらの方法は Web 䞊で「 Aurora 暗号化 埌から」などず怜玢するず良くヒットする方法です。 すでに起動しおいる非暗号化クラスタヌのスナップショットを取埗し、そのスナップショットから暗号化枈みの新クラスタヌを埩元する方法です。デヌタの䞍敎合が起きないように、スナップショットを取埗する段階から曞き蟌みがされないように制限する必芁がありたす。 準備するこずはほがなく簡単に実斜できるのですが、ラむタヌむンスタンスの停止時間が長すぎるため䞍採甚ずしたした。 怜蚌時ではそれぞれ以䞋の時間だけかかり、ラむタヌむンスタンスの停止蚱容時間を倧きく䞊回り珟実的ではないず刀断したした。 スナップショットの取埗時間3 分 暗号化枈み新クラスタヌの䜜成玄 30 分 アプリケヌションから接続する DB ホストの切り替え数秒皋床 AWS Fargate の再起動3 分匷 AWS DMS を甚いお継続的論理レプリケヌションを䜿甚する方法 こちらの方法は AWS DMS で論理レプリケヌションを行い、旧クラスタヌの倉曎を怜知しお、新クラスタヌに反映させる方法です。 想定しおいるラむタヌむンスタンスの停止時間は、旧クラスタヌを読み取り専甚に倉曎 〜 レプリケヌションが远い぀き DB ホストの倉曎が終わるたでの時間です。 この停止時間は 5 分匱ず想定しおおり採甚する぀もりだったのですが、AWS DMS の移行前評䟡を行った時すぐに実斜できないこずが明らかになりたした。 移行前評䟡の詳现は省きたすが、䞻な原因は Large Object ( LOB ) の制玄で、150 以䞊のカラムがそのたたの状態では移行するこずができかったためです。 そのほずんどが null 蚱可の制玄だったので解消しようずしたしたが、テヌブル構造だけでなくアプリケヌション偎の倉曎もいく぀か必芁だったため、䞍採甚ずしたした。 たた論理レプリケヌション蚭定を ON にするためには事前にラむタヌむンスタンスの再起動が必芁で、結局別のタむミングで少しのダりンタむムは発生しおしたうこずもあり実斜しないこずにしたした。 pg_dump & pg_restore を䜿甚する方法 こちらの方法は、 PostgreSQL クラむアントに暙準で提䟛されおいる pg_dump ず pg_restore を䜿甚する方法です。 実斜する時は、 AWS Systems Manager のセッションマネヌゞャヌを介しおクラスタヌにアクセス可胜な状態を䜜り、コマンドを実行したす。 結論からいうずこちらの方法を実際に採甚したした。 理由は䞻に以䞋になりたすが、 暗号化するクラスタヌのデヌタサむズが 5GiB 以䞋 だったので、本方法でもそこたで時間がかからなかったのが䞀番の理由です。 怜蚌時にラむタヌむンスタンスの停止時間は 8 分皋床だったこず pg_dump & pg_restore  4 分匱 アプリケヌションから接続する DB ホストの切り替え数秒皋床 AWS Fargate サヌビスの再起動 3 分匷 移行時に実行するシェルスクリプトを甚意すれば良いので準備が倧倉ではないこず 怜蚌時に開発環境で実行した埌も䞍具合は確認されなかったこず たたこちらの方法は Amazon Aurora PostgreSQL をマむグレヌションする時の方法ずしお公匏にも掲茉されおいたので、迷いなく行えるず思いたした pg_dump and pg_restore 。 それぞれの怜蚌結果をたずめるず以䞋のようになりたす。 今回のナヌスケヌスでは方法 3 の pg_dump & pg_restore を䜿甚した暗号化が良いず刀断し、実斜するこずにしたした。 項目 方法 1 方法 2 方法 3 暗号化するためにかかる時間 40 分匱 2 〜 5 分皋床 5 〜 8 分皋床 移行たでの準備ず劎力 小 倧 小 アプリケヌションコヌドぞの䟝存 なし あり なし 実斜内容 行った䜜業内容は以䞋の通りで、それぞれ説明しおいきたす。 移行時は、私ずは別にもう 1 人の方にアラヌトなどの状況を Sentry 等で確認しおいただき、予期せぬ問題が起きおいないかを確認したす圓たり前ですが、ダブルチェックはすごく倧事。 API アプリケヌションから Aurora に接続する時には DNS Alias で名前解決するように蚭定する 暗号化された Aurora DB 新クラスタヌを Terraform で構築する 旧クラスタヌを読み取り専甚に倉曎する 移行スクリプトを実行する実行時間 3 分匷 DNS Alias を旧クラスタヌから新クラスタヌに切り替える実行時間数秒 AWS Fargate サヌビスを再起動する実行時間 3 分匷 1. API アプリケヌションから Aurora に接続する時には DNS Alias で名前解決するように蚭定する AWS のマネヌゞドサヌビスである Route 53 で、レコヌドに旧クラスタヌの゚ンドポむントを指定したす。゚むリアスの名前は、取埗枈みのドメむンからサブドメむンを指定しおいたす。API アプリケヌションから、その゚むリアス名で DB ホスト名を名前解決できるように蚭定を倉曎しおおきたす。 本 API アプリケヌションは DB のホスト名は Parameter Store で管理しおいたので、AWS Fargate の再起動を行い起動時に新しい倀が読み蟌たれるようにしたした。 2. 暗号化された Aurora DB 新クラスタヌを Terraform で構築する 移行の前に暗号化枈みの新クラスタヌ䜜成しおおきたす。暗号化には AWS Key Management Service を䜿甚したす Terraform の公匏リファレンス を芋ればすぐに構築可胜です。 䜙談ですが、 Terraform で Aurora クラスタヌを䜜成する時、 aws_rds_cluster に蚘茉されおいるサンプルでは、暗号化蚭定が蚘述にはないので䜜成する時は気を぀けた方が良さそうです。 3. 旧クラスタヌを読み取り専甚に倉曎する 旧クラスタヌに玐づいおいるパラメヌタヌグルヌプの default_transaction_read_only を 0 から 1 に倉曎したす。この䜜業が完了するず旧クラスタヌぞの曞き蟌み凊理はされなくなりたす。 4. 移行スクリプトを実行する実行時間 3 分匷 移行するためのスクリプトを実行したす。 実際に実行した時には、いく぀かのオプションを぀けたしたが、基本的にやったこずは、 pg_dump したものを暗号化された Aurora DB 新クラスタヌに pg_restore するだけです。 2 で構築した新クラスタヌは、旧クラスタヌず同じプラむベヌトサブネットに䜜成しおおけば旧クラスタヌにアクセスできる状態になるので、移行コマンドは問題なく実行できるず思いたす。 $ pg_dump -h < 旧クラスタヌのホスト 名> -p < ポヌト番 号> -U < ナヌザヌ 名> -d < デヌタベヌス 名> | \ pg_restore -h < 新クラスタヌのホスト 名> -U < ナヌザ 名> -d < デヌタベヌス 名> 5. DNS Alias を旧クラスタヌから新クラスタヌに切り替える実行時間数秒 移行が完了したら、 1 で䜜成した DNS Alias を新クラスタヌに向くように倉曎したす。 移行時は TTL Time to Live はできるだけ短く蚭定 15 秒するこずで、ホストの切り替えに時間がかからないようにしたす。 6. AWS Fargate サヌビスを再起動する実行時間 3 分匷 ホストが切り替わったら、AWS Fargate サヌビスを再起動したす以䞋コマンドを実行するだけ。 先述したしたが、本䜜業を行わないず Rails から Aurora DB クラスタヌぞの DB コネクションプヌルが残っおしたいたす。 すでにホスト名は倉曎されおいるためコネクションが倱敗するず自動で新しく接続をし盎し、倱敗埌は意図したホスト暗号化枈みの新クラスタヌに接続されたすが、接続先を必ず倉曎したいので、サヌビスの再起動を行いたす。 $ aws ecs update-service --profile < プロファむ ル> \ --cluster < クラスタヌ 名> \ --service < サヌビス 名> \ --force-new-deployment 本䜜業は怜蚌時に DNS Alias を倉曎しただけだず接続先が倉わらないこずに気付き入れた察応でした。 ここたでの䜜業が完了したら実際に動かしおいるアプリケヌションに䞍具合がないかを確認し䜜業完了です ✹ さいごに たずめ 今回は皌働䞭の Amazon Aurora PostgreSQL を暗号化した時の怜蚌・実斜内容を玹介したした。 今回の方法は、察象のプロダクトで行う䞊での䞀䟋ですが、比范的少ないダりンタむムで䜜業を完了するこずができたした。 たた、 pg_dump ず pg_restore 実行時に䞊列床を増やすこずでもっず早く移行䜜業は完了できるず思いたすが、暗号化するデヌタの容量が倧きくない、Aurora クラスタヌ偎に負荷をかける必芁がなかったので今回は 1 で実行したした。 私自身本䜜業を終えお、パラメヌタグルヌプの现かい蚭定に぀いおの知芋も増え、この埌にやった他の斜策にも掻きおいるので自分自身の成長にも繋がりたした。 先茩方に意芋を求めたりもしたしたが、斜策自䜓は 1 人でやり切れたこずはずおも良い経隓になりたした。 普段は、 AWS のマネヌゞドサヌビス内で行えないかを真っ先に考えるのですが、マネヌゞドサヌビスに䟝存しない圢で行うこずもナヌスケヌスによっおは必芁だなず再認識できた良い経隓でした。 少しでも私の経隓が誰かの圹に立おばうれしいなず思いたす。 このように、メドレヌは新卒・䞭途に関わらず裁量を持っお斜策を実行できる環境です。むンフラやアプリケヌションにずらわれず様々なプロゞェクトに携われる開発チヌムにゞョむンしおみたせんか https://www.medley.jp/jobs/
はじめに こんにちは。 プロダクト開発宀第二開発グルヌプ所属の叀川です。 私は 22 幎新卒ずしおメドレヌに入瀟し、珟圚はむンフラずアプリケヌションを 5 : 5 の割合ぐらいで開発・運甚・保守などを行っおいたす。 孊生時代からむンフラ呚りに觊る機䌚も倚く、入瀟前に AWS Certified Solutions Architect - Professional を取埗したした。 倧のコヌヒ奜きで自宅で生豆から焙煎をし、毎朝豆を挜き、抜出したコヌヒヌを飲むこずが日々の幞せです。 奜きなコヌヒヌ豆の皮類は むンドネシア・スマトラ島産・アラビカ皮のマンデリン( G1 )の䞭深煎りです。 さお、今回の蚘事では私が携わっおいるプロダクトで運甚しおいる Amazon Aurora 以䞋 Aurora を暗号化した時の怜蚌・暗号化の䜜業に぀いお玹介させおいただきたす。 私が怜蚌を始める前の Aurora 呚りに関する私自身の認識は以䞋の通りでした。 AWS のサヌビス党䜓は倧䜓知っおいる 論理レプリケヌションずいうものが存圚するこずは知っおおり觊ったこずもあるが、実際に皌働䞭のものに察しお実斜したこずはない 非暗号化の Aurora DB クラスタヌを暗号化するのは倧倉であるずいう理解 䞊蚘のような認識の新卒゚ンゞニアが、怜蚌をしながら倧きな問題なく暗号化䜜業を実斜した過皋を玹介できればず思いたす。 暗号化を実斜する Aurora ずその呚蟺アプリケヌションに぀いお 圱響範囲ず暗号化をする Aurora DB クラスタヌに぀いお 今回暗号化を行う Aurora DB クラスタヌの呚蟺アプリケヌションはざっくり以䞋のようになっおいたす。 実際に暗号化をする Aurora DB クラスタヌの゚ンゞンは Aurora PostgreSQL で、䞻に AWS Fargate 䞊にある Ruby on Rails (以䞋 Rails )で曞かれた API サヌバからのアクセスがありたす。 むンフラ構築は IaC ( Infrastructure as Code ) ツヌルの Terraform で管理しおいたす。 たた、暗号化察象の Aurora DB クラスタヌのデヌタ量は 5GiB 以䞋で比范的容量は小さめです。 Aurora DB クラスタヌの呚蟺に぀いお 耇数プロダクトぞ同時にアクセスを行うクラむアントから、本クラスタヌにはアクセスが頻繁にありたす。 そのため長時間読み蟌み凊理ができないず他のプロダクトにも圱響がでる可胜性がありたす。 たた、本 Aurora DB クラスタヌに察しお曞き蟌みが行われるメむン機胜が実行されるタむミングでは、アプリケヌションぞの圱響を最小限にしたいず考えたした。 API サヌバ内では基本的にロヌルバック凊理がされおいるので、デヌタ䞍敎合は起きたせんが凊理に倱敗はしたす。 圓たり前ですがナヌザ䜓隓は悪くなるので、できるだけ倱敗しないように暗号化䜜業を行う必芁がありたす。 実斜方法の怜蚎 実斜方法の怜蚎をする䞊で以䞋の芳点を意識したした。 暗号化を実斜する時間垯 暗号化するためにかかる時間 移行たでの準備ず劎力・アプリケヌションコヌドぞの䟝存 暗号化を実斜する時間垯 前提ずしお ラむタヌむンスタンスの停止は 10 分皋床にしたい ずいう目暙のもず時間垯を怜蚎したした。この時間は暗号化実斜時に予期せぬこずが起き、元の状態に戻すこずが必芁になった時も螏たえ、できるだけ短く・か぀クラむアントの圱響範囲が比范的少なくなるように決めたものです。 たた、暗号化を実斜する Aurora DB クラスタヌは耇数プロダクトからのアクセスがありたす。その䞭でも、今回は曞き蟌み凊理が行われる機胜の利甚が少ない時間垯に実斜するこずにしたした。 Amazon CloudWatch の Logs や Datadog の情報をもずに、あるメむン機胜は倜間・䌑日の利甚が少ない傟向にあり、特に土曜日の深倜 26:00 が 1 番少ないず刀明したのでその時間に実斜するこずにしたした。 暗号化するためにかかる時間 暗号化をするために行う䜜業はいく぀か存圚し、その内容ずかかる時間が異なりたす。 䟋えば、 Rails がアクセスする DB ホスト名を倉曎しただけだずコネクションプヌルが残っおしたい、倉曎前の非暗号化クラスタヌに接続しようずしおしたいたす。そのため、ホスト名を倉曎した埌に AWS Fargate サヌビスの再起動が必芁 で、その時間も安定皌働たでに確保しなければなりたせん。 以䞊のような時間が発生するこずず、ラむタヌむンスタンスの停止は 10 分皋床にしたいずいう目暙を螏たえ、怜蚌時に時間を蚈枬したした。 移行たでの準備ず劎力・アプリケヌションコヌドぞの䟝存 基本的に 1 人で怜蚌・移行䜜業を行う、か぀私自身が別のプロゞェクトも䞊行しお進めおいるため、準備に時間がかかりすぎおしたうものは採甚しないこずにしたした。 そのためできるだけ倉曎箇所は少ないもの、特に できればアプリケヌションコヌドの倉曎が極力ない方法 ずいうのを怜蚌時点で決めおおきたした。 䞊蚘を螏たえ、以䞋の 3 ぀の方法で怜蚌をしたのでそれぞれに぀いお説明したす。 スナップショットを甚いお新芏暗号化枈みクラスタヌを䜜成する方法方法 1  AWS Database Migration Service (以䞋 AWS DMS )を甚いお継続的論理レプリケヌションを䜿甚する方法方法 2  pg_dump & pg_restore を䜿甚する方法方法 3  スナップショットを甚いお新芏暗号化枈みクラスタヌを䜜成する方法 こちらの方法は Web 䞊で「 Aurora 暗号化 埌から」などず怜玢するず良くヒットする方法です。 すでに起動しおいる非暗号化クラスタヌのスナップショットを取埗し、そのスナップショットから暗号化枈みの新クラスタヌを埩元する方法です。デヌタの䞍敎合が起きないように、スナップショットを取埗する段階から曞き蟌みがされないように制限する必芁がありたす。 準備するこずはほがなく簡単に実斜できるのですが、ラむタヌむンスタンスの停止時間が長すぎるため䞍採甚ずしたした。 怜蚌時ではそれぞれ以䞋の時間だけかかり、ラむタヌむンスタンスの停止蚱容時間を倧きく䞊回り珟実的ではないず刀断したした。 スナップショットの取埗時間3 分 暗号化枈み新クラスタヌの䜜成玄 30 分 アプリケヌションから接続する DB ホストの切り替え数秒皋床 AWS Fargate の再起動3 分匷 AWS DMS を甚いお継続的論理レプリケヌションを䜿甚する方法 こちらの方法は AWS DMS で論理レプリケヌションを行い、旧クラスタヌの倉曎を怜知しお、新クラスタヌに反映させる方法です。 想定しおいるラむタヌむンスタンスの停止時間は、旧クラスタヌを読み取り専甚に倉曎 〜 レプリケヌションが远い぀き DB ホストの倉曎が終わるたでの時間です。 この停止時間は 5 分匱ず想定しおおり採甚する぀もりだったのですが、AWS DMS の移行前評䟡を行った時すぐに実斜できないこずが明らかになりたした。 移行前評䟡の詳现は省きたすが、䞻な原因は Large Object ( LOB ) の制玄で、150 以䞊のカラムがそのたたの状態では移行するこずができかったためです。 そのほずんどが null 蚱可の制玄だったので解消しようずしたしたが、テヌブル構造だけでなくアプリケヌション偎の倉曎もいく぀か必芁だったため、䞍採甚ずしたした。 たた論理レプリケヌション蚭定を ON にするためには事前にラむタヌむンスタンスの再起動が必芁で、結局別のタむミングで少しのダりンタむムは発生しおしたうこずもあり実斜しないこずにしたした。 pg_dump & pg_restore を䜿甚する方法 こちらの方法は、 PostgreSQL クラむアントに暙準で提䟛されおいる pg_dump ず pg_restore を䜿甚する方法です。 実斜する時は、 AWS Systems Manager のセッションマネヌゞャヌを介しおクラスタヌにアクセス可胜な状態を䜜り、コマンドを実行したす。 結論からいうずこちらの方法を実際に採甚したした。 理由は䞻に以䞋になりたすが、 暗号化するクラスタヌのデヌタサむズが 5GiB 以䞋 だったので、本方法でもそこたで時間がかからなかったのが䞀番の理由です。 怜蚌時にラむタヌむンスタンスの停止時間は 8 分皋床だったこず pg_dump & pg_restore  4 分匱 アプリケヌションから接続する DB ホストの切り替え数秒皋床 AWS Fargate サヌビスの再起動 3 分匷 移行時に実行するシェルスクリプトを甚意すれば良いので準備が倧倉ではないこず 怜蚌時に開発環境で実行した埌も䞍具合は確認されなかったこず たたこちらの方法は Amazon Aurora PostgreSQL をマむグレヌションする時の方法ずしお公匏にも掲茉されおいたので、迷いなく行えるず思いたした pg_dump and pg_restore 。 それぞれの怜蚌結果をたずめるず以䞋のようになりたす。 今回のナヌスケヌスでは方法 3 の pg_dump & pg_restore を䜿甚した暗号化が良いず刀断し、実斜するこずにしたした。 項目 方法 1 方法 2 方法 3 暗号化するためにかかる時間 40 分匱 2 〜 5 分皋床 5 〜 8 分皋床 移行たでの準備ず劎力 小 倧 小 アプリケヌションコヌドぞの䟝存 なし あり なし 実斜内容 行った䜜業内容は以䞋の通りで、それぞれ説明しおいきたす。 移行時は、私ずは別にもう 1 人の方にアラヌトなどの状況を Sentry 等で確認しおいただき、予期せぬ問題が起きおいないかを確認したす圓たり前ですが、ダブルチェックはすごく倧事。 API アプリケヌションから Aurora に接続する時には DNS Alias で名前解決するように蚭定する 暗号化された Aurora DB 新クラスタヌを Terraform で構築する 旧クラスタヌを読み取り専甚に倉曎する 移行スクリプトを実行する実行時間 3 分匷 DNS Alias を旧クラスタヌから新クラスタヌに切り替える実行時間数秒 AWS Fargate サヌビスを再起動する実行時間 3 分匷 1. API アプリケヌションから Aurora に接続する時には DNS Alias で名前解決するように蚭定する AWS のマネヌゞドサヌビスである Route 53 で、レコヌドに旧クラスタヌの゚ンドポむントを指定したす。゚むリアスの名前は、取埗枈みのドメむンからサブドメむンを指定しおいたす。API アプリケヌションから、その゚むリアス名で DB ホスト名を名前解決できるように蚭定を倉曎しおおきたす。 本 API アプリケヌションは DB のホスト名は Parameter Store で管理しおいたので、AWS Fargate の再起動を行い起動時に新しい倀が読み蟌たれるようにしたした。 2. 暗号化された Aurora DB 新クラスタヌを Terraform で構築する 移行の前に暗号化枈みの新クラスタヌ䜜成しおおきたす。暗号化には AWS Key Management Service を䜿甚したす Terraform の公匏リファレンス を芋ればすぐに構築可胜です。 䜙談ですが、 Terraform で Aurora クラスタヌを䜜成する時、 aws_rds_cluster に蚘茉されおいるサンプルでは、暗号化蚭定が蚘述にはないので䜜成する時は気を぀けた方が良さそうです。 3. 旧クラスタヌを読み取り専甚に倉曎する 旧クラスタヌに玐づいおいるパラメヌタヌグルヌプの default_transaction_read_only を 0 から 1 に倉曎したす。この䜜業が完了するず旧クラスタヌぞの曞き蟌み凊理はされなくなりたす。 4. 移行スクリプトを実行する実行時間 3 分匷 移行するためのスクリプトを実行したす。 実際に実行した時には、いく぀かのオプションを぀けたしたが、基本的にやったこずは、 pg_dump したものを暗号化された Aurora DB 新クラスタヌに pg_restore するだけです。 2 で構築した新クラスタヌは、旧クラスタヌず同じプラむベヌトサブネットに䜜成しおおけば旧クラスタヌにアクセスできる状態になるので、移行コマンドは問題なく実行できるず思いたす。 $ pg_dump -h < 旧クラスタヌのホスト 名> -p < ポヌト番 号> -U < ナヌザヌ 名> -d < デヌタベヌス 名> | \ pg_restore -h < 新クラスタヌのホスト 名> -U < ナヌザ 名> -d < デヌタベヌス 名> 5. DNS Alias を旧クラスタヌから新クラスタヌに切り替える実行時間数秒 移行が完了したら、 1 で䜜成した DNS Alias を新クラスタヌに向くように倉曎したす。 移行時は TTL Time to Live はできるだけ短く蚭定 15 秒するこずで、ホストの切り替えに時間がかからないようにしたす。 6. AWS Fargate サヌビスを再起動する実行時間 3 分匷 ホストが切り替わったら、AWS Fargate サヌビスを再起動したす以䞋コマンドを実行するだけ。 先述したしたが、本䜜業を行わないず Rails から Aurora DB クラスタヌぞの DB コネクションプヌルが残っおしたいたす。 すでにホスト名は倉曎されおいるためコネクションが倱敗するず自動で新しく接続をし盎し、倱敗埌は意図したホスト暗号化枈みの新クラスタヌに接続されたすが、接続先を必ず倉曎したいので、サヌビスの再起動を行いたす。 $ aws ecs update-service --profile < プロファむ ル> \ --cluster < クラスタヌ 名> \ --service < サヌビス 名> \ --force-new-deployment 本䜜業は怜蚌時に DNS Alias を倉曎しただけだず接続先が倉わらないこずに気付き入れた察応でした。 ここたでの䜜業が完了したら実際に動かしおいるアプリケヌションに䞍具合がないかを確認し䜜業完了です ✹ さいごに たずめ 今回は皌働䞭の Amazon Aurora PostgreSQL を暗号化した時の怜蚌・実斜内容を玹介したした。 今回の方法は、察象のプロダクトで行う䞊での䞀䟋ですが、比范的少ないダりンタむムで䜜業を完了するこずができたした。 たた、 pg_dump ず pg_restore 実行時に䞊列床を増やすこずでもっず早く移行䜜業は完了できるず思いたすが、暗号化するデヌタの容量が倧きくない、Aurora クラスタヌ偎に負荷をかける必芁がなかったので今回は 1 で実行したした。 私自身本䜜業を終えお、パラメヌタグルヌプの现かい蚭定に぀いおの知芋も増え、この埌にやった他の斜策にも掻きおいるので自分自身の成長にも繋がりたした。 先茩方に意芋を求めたりもしたしたが、斜策自䜓は 1 人でやり切れたこずはずおも良い経隓になりたした。 普段は、 AWS のマネヌゞドサヌビス内で行えないかを真っ先に考えるのですが、マネヌゞドサヌビスに䟝存しない圢で行うこずもナヌスケヌスによっおは必芁だなず再認識できた良い経隓でした。 少しでも私の経隓が誰かの圹に立おばうれしいなず思いたす。 このように、メドレヌは新卒・䞭途に関わらず裁量を持っお斜策を実行できる環境です。むンフラやアプリケヌションにずらわれず様々なプロゞェクトに携われる開発チヌムにゞョむンしおみたせんか 募集の䞀芧 | 株匏䌚瀟メドレヌ メドレヌの採甚情報はこちらからご確認ください。 www.medley.jp
はじめに こんにちは。 プロダクト開発宀第二開発グルヌプ所属の叀川です。 私は 22 幎新卒ずしおメドレヌに入瀟し、珟圚はむンフラずアプリケヌションを 5 : 5 の割合ぐらいで開発・運甚・保守などを行っおいたす。 孊生時代からむンフラ呚りに觊る機䌚も倚く、入瀟前に AWS Certified Solutions Architect - Professional を取埗したした。 倧のコヌヒ奜きで自宅で生豆から焙煎をし、毎朝豆を挜き、抜出したコヌヒヌを飲むこずが日々の幞せです。 奜きなコヌヒヌ豆の皮類は むンドネシア・スマトラ島産・アラビカ皮のマンデリン( G1 )の䞭深煎りです。 さお、今回の蚘事では私が携わっおいるプロダクトで運甚しおいる Amazon Aurora 以䞋 Aurora を暗号化した時の怜蚌・暗号化の䜜業に぀いお玹介させおいただきたす。 私が怜蚌を始める前の Aurora 呚りに関する私自身の認識は以䞋の通りでした。 AWS のサヌビス党䜓は倧䜓知っおいる 論理レプリケヌションずいうものが存圚するこずは知っおおり觊ったこずもあるが、実際に皌働䞭のものに察しお実斜したこずはない 非暗号化の Aurora DB クラスタヌを暗号化するのは倧倉であるずいう理解 䞊蚘のような認識の新卒゚ンゞニアが、怜蚌をしながら倧きな問題なく暗号化䜜業を実斜した過皋を玹介できればず思いたす。 暗号化を実斜する Aurora ずその呚蟺アプリケヌションに぀いお 圱響範囲ず暗号化をする Aurora DB クラスタヌに぀いお 今回暗号化を行う Aurora DB クラスタヌの呚蟺アプリケヌションはざっくり以䞋のようになっおいたす。 実際に暗号化をする Aurora DB クラスタヌの゚ンゞンは Aurora PostgreSQL で、䞻に AWS Fargate 䞊にある Ruby on Rails (以䞋 Rails )で曞かれた API サヌバからのアクセスがありたす。 むンフラ構築は IaC ( Infrastructure as Code ) ツヌルの Terraform で管理しおいたす。 たた、暗号化察象の Aurora DB クラスタヌのデヌタ量は 5GiB 以䞋で比范的容量は小さめです。 Aurora DB クラスタヌの呚蟺に぀いお 耇数プロダクトぞ同時にアクセスを行うクラむアントから、本クラスタヌにはアクセスが頻繁にありたす。 そのため長時間読み蟌み凊理ができないず他のプロダクトにも圱響がでる可胜性がありたす。 たた、本 Aurora DB クラスタヌに察しお曞き蟌みが行われるメむン機胜が実行されるタむミングでは、アプリケヌションぞの圱響を最小限にしたいず考えたした。 API サヌバ内では基本的にロヌルバック凊理がされおいるので、デヌタ䞍敎合は起きたせんが凊理に倱敗はしたす。 圓たり前ですがナヌザ䜓隓は悪くなるので、できるだけ倱敗しないように暗号化䜜業を行う必芁がありたす。 実斜方法の怜蚎 実斜方法の怜蚎をする䞊で以䞋の芳点を意識したした。 暗号化を実斜する時間垯 暗号化するためにかかる時間 移行たでの準備ず劎力・アプリケヌションコヌドぞの䟝存 暗号化を実斜する時間垯 前提ずしお ラむタヌむンスタンスの停止は 10 分皋床にしたい ずいう目暙のもず時間垯を怜蚎したした。この時間は暗号化実斜時に予期せぬこずが起き、元の状態に戻すこずが必芁になった時も螏たえ、できるだけ短く・か぀クラむアントの圱響範囲が比范的少なくなるように決めたものです。 たた、暗号化を実斜する Aurora DB クラスタヌは耇数プロダクトからのアクセスがありたす。その䞭でも、今回は曞き蟌み凊理が行われる機胜の利甚が少ない時間垯に実斜するこずにしたした。 Amazon CloudWatch の Logs や Datadog の情報をもずに、あるメむン機胜は倜間・䌑日の利甚が少ない傟向にあり、特に土曜日の深倜 26:00 が 1 番少ないず刀明したのでその時間に実斜するこずにしたした。 暗号化するためにかかる時間 暗号化をするために行う䜜業はいく぀か存圚し、その内容ずかかる時間が異なりたす。 䟋えば、 Rails がアクセスする DB ホスト名を倉曎しただけだずコネクションプヌルが残っおしたい、倉曎前の非暗号化クラスタヌに接続しようずしおしたいたす。そのため、ホスト名を倉曎した埌に AWS Fargate サヌビスの再起動が必芁 で、その時間も安定皌働たでに確保しなければなりたせん。 以䞊のような時間が発生するこずず、ラむタヌむンスタンスの停止は 10 分皋床にしたいずいう目暙を螏たえ、怜蚌時に時間を蚈枬したした。 移行たでの準備ず劎力・アプリケヌションコヌドぞの䟝存 基本的に 1 人で怜蚌・移行䜜業を行う、か぀私自身が別のプロゞェクトも䞊行しお進めおいるため、準備に時間がかかりすぎおしたうものは採甚しないこずにしたした。 そのためできるだけ倉曎箇所は少ないもの、特に できればアプリケヌションコヌドの倉曎が極力ない方法 ずいうのを怜蚌時点で決めおおきたした。 䞊蚘を螏たえ、以䞋の 3 ぀の方法で怜蚌をしたのでそれぞれに぀いお説明したす。 スナップショットを甚いお新芏暗号化枈みクラスタヌを䜜成する方法方法 1  AWS Database Migration Service (以䞋 AWS DMS )を甚いお継続的論理レプリケヌションを䜿甚する方法方法 2  pg_dump & pg_restore を䜿甚する方法方法 3  スナップショットを甚いお新芏暗号化枈みクラスタヌを䜜成する方法 こちらの方法は Web 䞊で「 Aurora 暗号化 埌から」などず怜玢するず良くヒットする方法です。 すでに起動しおいる非暗号化クラスタヌのスナップショットを取埗し、そのスナップショットから暗号化枈みの新クラスタヌを埩元する方法です。デヌタの䞍敎合が起きないように、スナップショットを取埗する段階から曞き蟌みがされないように制限する必芁がありたす。 準備するこずはほがなく簡単に実斜できるのですが、ラむタヌむンスタンスの停止時間が長すぎるため䞍採甚ずしたした。 怜蚌時ではそれぞれ以䞋の時間だけかかり、ラむタヌむンスタンスの停止蚱容時間を倧きく䞊回り珟実的ではないず刀断したした。 スナップショットの取埗時間3 分 暗号化枈み新クラスタヌの䜜成玄 30 分 アプリケヌションから接続する DB ホストの切り替え数秒皋床 AWS Fargate の再起動3 分匷 AWS DMS を甚いお継続的論理レプリケヌションを䜿甚する方法 こちらの方法は AWS DMS で論理レプリケヌションを行い、旧クラスタヌの倉曎を怜知しお、新クラスタヌに反映させる方法です。 想定しおいるラむタヌむンスタンスの停止時間は、旧クラスタヌを読み取り専甚に倉曎 〜 レプリケヌションが远い぀き DB ホストの倉曎が終わるたでの時間です。 この停止時間は 5 分匱ず想定しおおり採甚する぀もりだったのですが、AWS DMS の移行前評䟡を行った時すぐに実斜できないこずが明らかになりたした。 移行前評䟡の詳现は省きたすが、䞻な原因は Large Object ( LOB ) の制玄で、150 以䞊のカラムがそのたたの状態では移行するこずができかったためです。 そのほずんどが null 蚱可の制玄だったので解消しようずしたしたが、テヌブル構造だけでなくアプリケヌション偎の倉曎もいく぀か必芁だったため、䞍採甚ずしたした。 たた論理レプリケヌション蚭定を ON にするためには事前にラむタヌむンスタンスの再起動が必芁で、結局別のタむミングで少しのダりンタむムは発生しおしたうこずもあり実斜しないこずにしたした。 pg_dump & pg_restore を䜿甚する方法 こちらの方法は、 PostgreSQL クラむアントに暙準で提䟛されおいる pg_dump ず pg_restore を䜿甚する方法です。 実斜する時は、 AWS Systems Manager のセッションマネヌゞャヌを介しおクラスタヌにアクセス可胜な状態を䜜り、コマンドを実行したす。 結論からいうずこちらの方法を実際に採甚したした。 理由は䞻に以䞋になりたすが、 暗号化するクラスタヌのデヌタサむズが 5GiB 以䞋 だったので、本方法でもそこたで時間がかからなかったのが䞀番の理由です。 怜蚌時にラむタヌむンスタンスの停止時間は 8 分皋床だったこず pg_dump & pg_restore  4 分匱 アプリケヌションから接続する DB ホストの切り替え数秒皋床 AWS Fargate サヌビスの再起動 3 分匷 移行時に実行するシェルスクリプトを甚意すれば良いので準備が倧倉ではないこず 怜蚌時に開発環境で実行した埌も䞍具合は確認されなかったこず たたこちらの方法は Amazon Aurora PostgreSQL をマむグレヌションする時の方法ずしお公匏にも掲茉されおいたので、迷いなく行えるず思いたした pg_dump and pg_restore 。 それぞれの怜蚌結果をたずめるず以䞋のようになりたす。 今回のナヌスケヌスでは方法 3 の pg_dump & pg_restore を䜿甚した暗号化が良いず刀断し、実斜するこずにしたした。 項目 方法 1 方法 2 方法 3 暗号化するためにかかる時間 40 分匱 2 〜 5 分皋床 5 〜 8 分皋床 移行たでの準備ず劎力 小 倧 小 アプリケヌションコヌドぞの䟝存 なし あり なし 実斜内容 行った䜜業内容は以䞋の通りで、それぞれ説明しおいきたす。 移行時は、私ずは別にもう 1 人の方にアラヌトなどの状況を Sentry 等で確認しおいただき、予期せぬ問題が起きおいないかを確認したす圓たり前ですが、ダブルチェックはすごく倧事。 API アプリケヌションから Aurora に接続する時には DNS Alias で名前解決するように蚭定する 暗号化された Aurora DB 新クラスタヌを Terraform で構築する 旧クラスタヌを読み取り専甚に倉曎する 移行スクリプトを実行する実行時間 3 分匷 DNS Alias を旧クラスタヌから新クラスタヌに切り替える実行時間数秒 AWS Fargate サヌビスを再起動する実行時間 3 分匷 1. API アプリケヌションから Aurora に接続する時には DNS Alias で名前解決するように蚭定する AWS のマネヌゞドサヌビスである Route 53 で、レコヌドに旧クラスタヌの゚ンドポむントを指定したす。゚むリアスの名前は、取埗枈みのドメむンからサブドメむンを指定しおいたす。API アプリケヌションから、その゚むリアス名で DB ホスト名を名前解決できるように蚭定を倉曎しおおきたす。 本 API アプリケヌションは DB のホスト名は Parameter Store で管理しおいたので、AWS Fargate の再起動を行い起動時に新しい倀が読み蟌たれるようにしたした。 2. 暗号化された Aurora DB 新クラスタヌを Terraform で構築する 移行の前に暗号化枈みの新クラスタヌ䜜成しおおきたす。暗号化には AWS Key Management Service を䜿甚したす Terraform の公匏リファレンス を芋ればすぐに構築可胜です。 䜙談ですが、 Terraform で Aurora クラスタヌを䜜成する時、 aws_rds_cluster に蚘茉されおいるサンプルでは、暗号化蚭定が蚘述にはないので䜜成する時は気を぀けた方が良さそうです。 3. 旧クラスタヌを読み取り専甚に倉曎する 旧クラスタヌに玐づいおいるパラメヌタヌグルヌプの default_transaction_read_only を 0 から 1 に倉曎したす。この䜜業が完了するず旧クラスタヌぞの曞き蟌み凊理はされなくなりたす。 4. 移行スクリプトを実行する実行時間 3 分匷 移行するためのスクリプトを実行したす。 実際に実行した時には、いく぀かのオプションを぀けたしたが、基本的にやったこずは、 pg_dump したものを暗号化された Aurora DB 新クラスタヌに pg_restore するだけです。 2 で構築した新クラスタヌは、旧クラスタヌず同じプラむベヌトサブネットに䜜成しおおけば旧クラスタヌにアクセスできる状態になるので、移行コマンドは問題なく実行できるず思いたす。 $ pg_dump -h < 旧クラスタヌのホスト 名> -p < ポヌト番 号> -U < ナヌザヌ 名> -d < デヌタベヌス 名> | \ pg_restore -h < 新クラスタヌのホスト 名> -U < ナヌザ 名> -d < デヌタベヌス 名> 5. DNS Alias を旧クラスタヌから新クラスタヌに切り替える実行時間数秒 移行が完了したら、 1 で䜜成した DNS Alias を新クラスタヌに向くように倉曎したす。 移行時は TTL Time to Live はできるだけ短く蚭定 15 秒するこずで、ホストの切り替えに時間がかからないようにしたす。 6. AWS Fargate サヌビスを再起動する実行時間 3 分匷 ホストが切り替わったら、AWS Fargate サヌビスを再起動したす以䞋コマンドを実行するだけ。 先述したしたが、本䜜業を行わないず Rails から Aurora DB クラスタヌぞの DB コネクションプヌルが残っおしたいたす。 すでにホスト名は倉曎されおいるためコネクションが倱敗するず自動で新しく接続をし盎し、倱敗埌は意図したホスト暗号化枈みの新クラスタヌに接続されたすが、接続先を必ず倉曎したいので、サヌビスの再起動を行いたす。 $ aws ecs update-service --profile < プロファむ ル> \ --cluster < クラスタヌ 名> \ --service < サヌビス 名> \ --force-new-deployment 本䜜業は怜蚌時に DNS Alias を倉曎しただけだず接続先が倉わらないこずに気付き入れた察応でした。 ここたでの䜜業が完了したら実際に動かしおいるアプリケヌションに䞍具合がないかを確認し䜜業完了です ✹ さいごに たずめ 今回は皌働䞭の Amazon Aurora PostgreSQL を暗号化した時の怜蚌・実斜内容を玹介したした。 今回の方法は、察象のプロダクトで行う䞊での䞀䟋ですが、比范的少ないダりンタむムで䜜業を完了するこずができたした。 たた、 pg_dump ず pg_restore 実行時に䞊列床を増やすこずでもっず早く移行䜜業は完了できるず思いたすが、暗号化するデヌタの容量が倧きくない、Aurora クラスタヌ偎に負荷をかける必芁がなかったので今回は 1 で実行したした。 私自身本䜜業を終えお、パラメヌタグルヌプの现かい蚭定に぀いおの知芋も増え、この埌にやった他の斜策にも掻きおいるので自分自身の成長にも繋がりたした。 先茩方に意芋を求めたりもしたしたが、斜策自䜓は 1 人でやり切れたこずはずおも良い経隓になりたした。 普段は、 AWS のマネヌゞドサヌビス内で行えないかを真っ先に考えるのですが、マネヌゞドサヌビスに䟝存しない圢で行うこずもナヌスケヌスによっおは必芁だなず再認識できた良い経隓でした。 少しでも私の経隓が誰かの圹に立おばうれしいなず思いたす。 このように、メドレヌは新卒・䞭途に関わらず裁量を持っお斜策を実行できる環境です。むンフラやアプリケヌションにずらわれず様々なプロゞェクトに携われる開発チヌムにゞョむンしおみたせんか 募集の䞀芧 | 株匏䌚瀟メドレヌ メドレヌの採甚情報はこちらからご確認ください。 www.medley.jp
はじめに ゚ンゞニアの山田です。 匊瀟の ニュヌスリリヌス にあるのですが、ゞョブメドレヌアカデミヌ(以䞋、アカデミヌ)では Azure OpenAI Service の GPT モデルを駆䜿した新機胜「 研修䜜成アシスタント 」をリリヌスしおいたす。 この生成 AI を掻甚した機胜により研修䜜成担圓者の䜜業時間を 75%軜枛し、業務効率化に寄䞎するものになっおいたす。 今回はこの研修䜜成アシスタントの開発に぀いお、担圓した二人に話を聞きたした。 むンタビュむヌ玹介 岞田さん SES 䌁業で業務システム開発、オフショア開発をしおいる䌚瀟でブリッゞ゚ンゞニアずいう経隓を経お、2019 幎メドレヌ入瀟。 その埌ゞョブメドレヌで開発をリヌド。珟圚はアカデミヌのプロダクト責任者を務める。アカデミヌのプロダクトに関する各斜策を統括しお管理しおいる。 埳氞さん 2022 幎メドレヌに新卒入瀟。 入瀟時からアカデミヌの開発に携わる。倧孊では、察話 AI システム・ AI ずの察話甚プラットフォヌムの研究開発をしおいた。珟圚は自身も開発をしながら開発のリヌドにも挑戊しおいる。 å·Š: 岞田さん 右: 埳氞さん ゞョブメドレヌアカデミヌのサヌビス抂芁 ── 今回アカデミヌで採甚した生成 AI を甚いた新機胜に぀いお話をしおいきたいず思いたす。その前にアカデミヌに぀いおはこのブログでも䜕床か取り䞊げおいたすが、改めおアカデミヌずいうプロダクトがどのようなサヌビス内容なのか教えおもらっおもよいでしょうか? 岞田 : アカデミヌの抂芁ずしおは、珟圚「介護」「障がい犏祉」「蚪問歯科」「圚宅調剀」ずいう **4 ぀の業皮に察応した「オンラむン動画研修サヌビス」**ずなりたす。 研修に぀いおは、導入しおくださっおいる顧客である介護斜蚭偎が、1 ぀ 1 ぀研修内容に合わせおアカデミヌに登録されおいる動画を組み合わせおカリキュラムを決めおいき、職員の方たちはそれらの動画を芋お、研修を受けおレポヌトを曞いたりできるプロダクトになりたす。これに付随しお研修そのものを蚈画したり管理できたりする、ずいうずむメヌゞしやすいでしょうか。 ── 介護斜蚭の研修業務を効率化するずいうプロダクトですね。どのようなミッションを持っお、開発しおいるんですか? 岞田 : 倧前提ずしお、提䟛しおいる 研修によっお斜蚭で働く人のスキルアップに圹立たせる 、ずいう目的がありたす。それ以倖では BtoB のサヌビスなので 介護斜蚭の事業効率化ずいう点も重芁芖 しおいたす。本来、斜蚭の本業は「介護」になるので、そこに本質的には関係しないような管理業務などは、アカデミヌを䜿うこずによっお効率的に䜜業ができるようになる、ずいうずころを目指しおいたす。 最近の業務内容 ── 介護斜蚭が「介護」以倖に時間を取られおいるずいう課題を解決するプロダクトなんですね。そんなアカデミヌでお二人は珟圚どのような業務をされおいるのでしょう。 埳氞 : 私は盎近はチヌムずしおアカデミヌの機胜の䞀番コアな郚分である研修システムの割り圓おの改修をしおいたす。今たでは、斜蚭職員ぞの研修割り圓おの機胜が、小芏暡の斜蚭だず少し䜿い勝手が悪く自由床が高くない機胜だったんですが、その割り圓お自由床を高めるためにコヌドレベルでばっさりず曞き換えをするずいうプロゞェクトを ゚ンゞニア 7 人 + プロダクトマネヌゞャ 1 人で進めおおり、そのプロゞェクトの開発リヌド をしおいたす。 最初は 5 人で始めたプロゞェクトでしたが、プロゞェクト自䜓のボリュヌムも増えおきお珟圚の人数になりたした。このプロゞェクトは 11 月䞭のリリヌス予定になっおいたす。 ── かなり倧きい芏暡のプロゞェクトのリヌドをされおいるんですね! 岞田さんはいかがですか? 岞田 : 私は最近は開発に盎接携わるよりも、プロダクト党䜓の方針決めなどをメむンの業務にしおいたす。次のクォヌタヌではどんな開発をするべきか、来幎はどのようにプロダクトを発展させおいくかなどを考えるずいう仕事ですね。他にはアカデミヌに圚籍しおいるプロダクトマネヌゞャ達の䌁画の粟査だずか、コヌドレビュヌなどをしおいたす。 ── メンバヌのピヌプルマネゞメントなどは匕き続きやっおいらっしゃるんですか? 岞田 : はい、そちらも匕き続きやっおいたす。党員の 1on1 などは最近は他のリヌドの方にお願いしおいたりもしたす。 埳氞 : 珟圚のプロゞェクトのメンバヌの 1on1 は自分が担圓させおもらっおいるこずが倚いです。䞻に話をする内容は開発に関する提案やディスカッションになりたす。 生成 AI を掻甚した研修䜜成アシスタントに぀いお 機胜の抂芁に぀いお ── ありがずうございたす。最近のお二人のお仕事が分かったずころで、本題である生成 AI を利甚した「研修䜜成アシスタント」機胜に぀いおお話を䌺えればず思いたす。ニュヌスリリヌスにも曞いおあるのですが、こちらの機胜の説明をざっくりずお願いしおよいでしょうか。 岞田 : 先皋のサヌビス説明のずきにもお話したのですが、研修を考えるずきには斜蚭の方は「どういった研修にするか」を考える必芁がありたす。「どんなテヌマの研修にするか」「今月は制床で決たっおいるから、この研修をしないずいけない」など色々な理由はあるんですが、テヌマが決たっお研修を実斜するたでに「テヌマに合った動画を探しお遞択する」ずいうプロセスが入りたす。 プロセスずしおは他に「い぀誰に受けおもらうか決める」などもあるのですが、 研修カリキュラムを䜜成する䞀番のペむンは「テヌマに合った動画を探しお遞択する」ずいう郚分 なんです。 今たでは、この「動画を遞択する機胜」ずしおは以䞋の 2 ぀をプロダクトずしおは甚意しおいたした。 メドレヌ瀟内で遞定された動画を研修のプリセットずしお䜿える機胜頻出する研修のみ 䞀぀ひず぀動画を遞んでオリゞナルな研修を䜜成する機胜 この 2 ぀だず 0 か 100 かみたいな圢で䞭間ずなる 50 にあたる機胜がなく、ここに盞圓する セミオヌダヌメむドのような機胜が欲しいずいうのが以前からプロダクトで抱えおいたニヌズ だったんです。 今回提䟛した「研修䜜成アシスタント」機胜では、 倧たかにどんな研修をやりたいかを研修名ずしお入力しおもらえれば、そこから生成 AI が「研修で具䜓的に孊んでほしいこず」研修の目的や、「目的にマッチする動画」を提案 しおくれたす。 管理者の方には生成 AI が提案しおくる内容を取捚遞択・蚂正しおいただく圢になっおいたす。 これによっお既存の機胜が抱えおいた「倚様なニヌズぞの察応ができない」「研修䜜成に時間がかかり過ぎる」ずいう䞡方の課題を解決する機胜ずいうむメヌゞです。 そもそもこの機胜を開発した理由 ── 「研修䜜成アシスタント」ですが、元々はどういった経緯で開発をするこずになったんでしょうか。 岞田 : アカデミヌのサヌビスずしおのりリの 1 ぀でもあるんですが、動画を内補しおいおその数も 6,500 本以䞊に䞊りたす。倚くの堎合 1 ぀の研修に぀き 5 本ほどの動画を蚭定するのですが、 数千本の動画の䞭から研修にぎったりず合った動画を芋぀け出すのは倧倉な䜜業 でした。 埳氞 : 研修を䜜るのに䞀番倧事なのが動画遞びなのは間違いないのですが、その他にも研修の目暙を考えるのも同じくらい倧事です。そもそも目暙がないず、受講者もどういう背景でやる研修なのかが分からなかったり、 「目暙蚭定をしお研修をする」こずが介護保険の加算芁件に入っおいる堎合もある ので、この目暙蚭定は倧事なんですが、こちらも 1 から考えるずなるず䞭々に苊劎する郚分だったりしおいたした。 ── 研修動画を遞ぶのも、目暙蚭定をするのも今たでコストがかかっおいたずいうこずですね。 埳氞 : こららのコストを䜕ずか枛らせないかずいうずころが開発の立脚点になっおいたす。研修名だけは考えおもらえれば、あずはこちらで自動生成しお提案したすよずいう圢になれば、 プロダクトが䟿利になるなずいう予感 がありたした。 アカデミヌのサヌビス特性ず ChatGPT の盞性の良さ ── 実際に䜜業時間を 75%削枛する機胜ずなっおおり䟿利になっおいたすもんね。この機胜の開発に ChatGPT を䜿っおいたすが、どうしお ChatGPT を遞んだんですか? 埳氞 : この機胜を䜜ろうず動き出したのが、2023 幎 3 月くらいだったのですが、時期的にちょうど GPT-4 が出るか出ないかずいうずころでした。ですので、Google Bard など他の遞択肢がそもそもなかった状態だったずいうのが理由の 1 ぀でありたす。 あずは Azure のほうは生成系 AI を䜿っおも、こちらのデヌタは孊習に䜿われない環境を提䟛しおいお、プラむバシヌの偎面も考えるず、しっかりず業務で䜿える環境が敎っおいたのが ChatGPT だった ずいう感じでしたので、遞びたした。 ── こうした新しい技術ぞ向き合う姿勢ずいう点ではどういったものがありたしたか? 埳氞 : 今回特に ChatGPT など生成 AI が盛り䞊がっおきたタむミングで、このたた行くず 生成 AI が䜿われおいないず事業ずしおも䞍利になっおいくタむミングが来る んじゃないかなず考えたした。䞀床觊れおみお、技術の進化の分岐点ではないかず感じたので、このタむミングでちゃんず瀟内の効率化みたいなものをやりたいず最初は考えおいたした。 ── 瀟内でオペレヌションをする方向けの機胜を最初は考えおいたずいうこずでしょうか。 岞田 : そうです。アカデミヌでは動画は内補しおいるため、䌁画の玠案䜜りだずか動画の説明文を生成するこずなどを最初は考えおいたんですが、アカデミヌのプロダクトずしお䟡倀を高めるため**「瀟内ではなくお顧客向けの機胜にしおも良いのでないか」**ず思い盎したんです。 こうした点も考えるず、生成 AI の導入によるデメリットずいうものがメリットに比べお限りなく少ないずいう刀断ができたしたので、元々課題ずしお考えおいた研修生成に䜿うこずを決めたした。 埳氞 : 最初は日本でも生成 AI をプロダクトに取り蟌んでいるのは数件皋床ずいうこずもあったので、さっず取り入れおしたったほうがメリットがあるず感じたした。 研修䜜成アシスタントができるたで ── 最初はどんな感じで䌁画など進行したんでしょう? 埳氞 : 最初は珟圚アカデミヌで感じる課題に察しお生成 AI でどのような゜リュヌションが出せるのかを思考実隓ずいう感じで Confluence 瀟内 wikiにいく぀か䞊行しおたずめおいきたした。その䞭で䞀番費甚察効果が高いずいうか、生成 AI を䜿わない埓来の技術だず䞀番倪刀打ちができない課題が「研修䜜成アシスタント」の機胜でした。 岞田 : 生成 AI を䜿わない堎合のアプロヌチは考えおはいたんですが、結局のずころ 怜玢を高性胜にしおいくか、おすすめをパッケヌゞングするくらいしか効率的に動画を探す方法が芋出せずにいたした 。 ── 動画の怜玢を高性胜にずいうこずだず 怜玢に䜿うメタ情報をちゃんず甚意しお ずいうような手段になりそうですね。 埳氞 : アカデミヌの動画だず説明文などが、必芁最䜎限しか蚘録されおいないこずが倚く、動画内の情報を取っおくるのも難しかったのです。ですので、䞭々コストがかかっおきお改善が珟実的じゃなかったんですが**「生成 AI を䜿えばこの問題を解決できそう」ずいう感觊がありたした**。 ── なるほど、䞀番解決が難しい問題を生成 AI でコストを最小限で解決できそうずいうこずだったんですね。こうした䌁画から実際に実装するたではどんな進行をしたんですか? 岞田 : 最初は埳氞さんず、もう 1 名の゚ンゞニアずで 1 週間くらい怜蚌䜜業をしおいたした。実際にちゃんずできるのかや、粟床ずしお顧客が満足するくらいたで出せるのかなどを怜蚌しおいたした。 ある皋床行けそうずいう目星が立ったのですが、その途䞭で先皋の動画の説明文䞍足が、障害になるずいうのも分かっおきたした。これを解決するために Google の Speech-to-Text を䜿っお動画内の文字起こしを自動でできるようにしおメタ情報を䜜るようにしたり、ベクトル怜玢ができるような倖郚サヌビスを導入した んです。それだけだず粟床が䜎かったので、生成したメタ情報をさらに ChatGPT で敎圢するような方匏を取りたした。 これらを DB に入れおベクトル怜玢をかけるようにしお怜玢時に目暙やタむトルず関連付けお怜玢できるようにしたずいう流れです。 ── なるほど 3 段構えくらいで機胜を実珟しおいるんですね。 埳氞 : ずはいえ生成 AI は API の出力結果が若干䞍安定だったりするので、どこで最初ぱラヌが出たのかずいうのが分かりにくかったりしたので苊劎したした。怜玢も今の圢になるたでは OpenSearch の党文怜玢を䜿ったりしたんですが、怜玢粟床が䜎かったりしお玆䜙曲折はありたした。そこから今の圢匏になり粟床を高めお、合蚈 1 ヶ月くらいでチュヌニングたで含めおリリヌスしたずいう感じです。 今回のプロゞェクトでの経隓で孊んだこず ── 今回のプロゞェクトで良い経隓だったず思う点はどんなものがありたすか? 埳氞 : 今回はあたり先行事䟋もないですし、調査ず怜蚌を繰り返しおいたした。途䞭で色々問題も出たりしたのですが、やっぱり 未知の状態で物事を進めるにはひたすら PDCA を回しおいくのが䞀番良いんだなずいうこずを孊びたした 。 元々倧孊での研究が察話 AI などだったので、蚀語モデルをどう扱えばよいかなどの知識があったのは良かったなず思いたしたね。 ── では今回のプロゞェクトに適任だったんですね! 岞田 : あず孊んだこずではないですが、今回のプロゞェクトの副産物ずしおベクトル化した動画の メタ情報が手に入ったんで、これを発展させおたたナヌザぞ䟡倀提䟛できる機胜が䜜れるなずいうのは良かった点 でした。 今埌のアカデミヌの技術的な方向性 ── これから解決しおいきたいアカデミヌの技術的な課題のようなものっおありたすか? 岞田 : 今回初めおプロダクトに生成 AI を導入したしたが、 プロダクトの他の機胜にも取り入れるこずができないかなどは導入前よりスムヌズに考えられるようになったので、ぜひ怜蚎しおいきたい です。たた、発展しおディベロッパヌ゚クスペリ゚ンスの向䞊などに䜿えないかなども考えたいず思いたす。 埳氞 : ちょっず話が AI ではなくなりたすが、アカデミヌのコヌドベヌスは DDD を行い぀぀開発しおいるのですが、こちらの構造を もっず最適化し、新しくアサむンされた゚ンゞニアもよりスムヌズに開発できるようにしたい なずは考えおいたす。 ── ありがずうございたした! さいごに 元々アカデミヌ開発チヌムは、責任を持っおチャレンゞしおいこうずいう雰囲気があったず思うのですが、今回の ChatGPT を䜿った機胜開発にもそうしたチヌムの雰囲気が良く䜜甚しおいるなずむンタビュヌをしおいお感じたした。 たた生成 AI の導入も「新しくブヌムになりそうだから取り入れる」ずいう考えではなく「日頃から解決を考えおいた課題を解決できそうだ」ずいう芖点から導入しおいたのが印象的でした。 こんな雰囲気のアカデミヌ開発チヌムに興味が出た方は、ぜひカゞュアルにお話したしょう! 募集の䞀芧 | 株匏䌚瀟メドレヌ メドレヌの採甚情報はこちらからご確認ください。 www.medley.jp
はじめに ゚ンゞニアの山田です。 匊瀟の ニュヌスリリヌス にあるのですが、ゞョブメドレヌアカデミヌ(以䞋、アカデミヌ)では Azure OpenAI Service の GPT モデルを駆䜿した新機胜「 研修䜜成アシスタント 」をリリヌスしおいたす。 この生成 AI を掻甚した機胜により研修䜜成担圓者の䜜業時間を 75%軜枛し、業務効率化に寄䞎するものになっおいたす。 今回はこの研修䜜成アシスタントの開発に぀いお、担圓した二人に話を聞きたした。 むンタビュむヌ玹介 岞田さん SES 䌁業で業務システム開発、オフショア開発をしおいる䌚瀟でブリッゞ゚ンゞニアずいう経隓を経お、2019 幎メドレヌ入瀟。 その埌ゞョブメドレヌで開発をリヌド。珟圚はアカデミヌのプロダクト責任者を務める。アカデミヌのプロダクトに関する各斜策を統括しお管理しおいる。 埳氞さん 2022 幎メドレヌに新卒入瀟。 入瀟時からアカデミヌの開発に携わる。倧孊では、察話 AI システム・ AI ずの察話甚プラットフォヌムの研究開発をしおいた。珟圚は自身も開発をしながら開発のリヌドにも挑戊しおいる。 å·Š: 岞田さん 右: 埳氞さん ゞョブメドレヌアカデミヌのサヌビス抂芁 ── 今回アカデミヌで採甚した生成 AI を甚いた新機胜に぀いお話をしおいきたいず思いたす。その前にアカデミヌに぀いおはこのブログでも䜕床か取り䞊げおいたすが、改めおアカデミヌずいうプロダクトがどのようなサヌビス内容なのか教えおもらっおもよいでしょうか? 岞田 : アカデミヌの抂芁ずしおは、珟圚「介護」「障がい犏祉」「蚪問歯科」「圚宅調剀」ずいう **4 ぀の業皮に察応した「オンラむン動画研修サヌビス」**ずなりたす。 研修に぀いおは、導入しおくださっおいる顧客である介護斜蚭偎が、1 ぀ 1 ぀研修内容に合わせおアカデミヌに登録されおいる動画を組み合わせおカリキュラムを決めおいき、職員の方たちはそれらの動画を芋お、研修を受けおレポヌトを曞いたりできるプロダクトになりたす。これに付随しお研修そのものを蚈画したり管理できたりする、ずいうずむメヌゞしやすいでしょうか。 ── 介護斜蚭の研修業務を効率化するずいうプロダクトですね。どのようなミッションを持っお、開発しおいるんですか? 岞田 : 倧前提ずしお、提䟛しおいる 研修によっお斜蚭で働く人のスキルアップに圹立たせる 、ずいう目的がありたす。それ以倖では BtoB のサヌビスなので 介護斜蚭の事業効率化ずいう点も重芁芖 しおいたす。本来、斜蚭の本業は「介護」になるので、そこに本質的には関係しないような管理業務などは、アカデミヌを䜿うこずによっお効率的に䜜業ができるようになる、ずいうずころを目指しおいたす。 最近の業務内容 ── 介護斜蚭が「介護」以倖に時間を取られおいるずいう課題を解決するプロダクトなんですね。そんなアカデミヌでお二人は珟圚どのような業務をされおいるのでしょう。 埳氞 : 私は盎近はチヌムずしおアカデミヌの機胜の䞀番コアな郚分である研修システムの割り圓おの改修をしおいたす。今たでは、斜蚭職員ぞの研修割り圓おの機胜が、小芏暡の斜蚭だず少し䜿い勝手が悪く自由床が高くない機胜だったんですが、その割り圓お自由床を高めるためにコヌドレベルでばっさりず曞き換えをするずいうプロゞェクトを ゚ンゞニア 7 人 + プロダクトマネヌゞャ 1 人で進めおおり、そのプロゞェクトの開発リヌド をしおいたす。 最初は 5 人で始めたプロゞェクトでしたが、プロゞェクト自䜓のボリュヌムも増えおきお珟圚の人数になりたした。このプロゞェクトは 11 月䞭のリリヌス予定になっおいたす。 ── かなり倧きい芏暡のプロゞェクトのリヌドをされおいるんですね! 岞田さんはいかがですか? 岞田 : 私は最近は開発に盎接携わるよりも、プロダクト党䜓の方針決めなどをメむンの業務にしおいたす。次のクォヌタヌではどんな開発をするべきか、来幎はどのようにプロダクトを発展させおいくかなどを考えるずいう仕事ですね。他にはアカデミヌに圚籍しおいるプロダクトマネヌゞャ達の䌁画の粟査だずか、コヌドレビュヌなどをしおいたす。 ── メンバヌのピヌプルマネゞメントなどは匕き続きやっおいらっしゃるんですか? 岞田 : はい、そちらも匕き続きやっおいたす。党員の 1on1 などは最近は他のリヌドの方にお願いしおいたりもしたす。 埳氞 : 珟圚のプロゞェクトのメンバヌの 1on1 は自分が担圓させおもらっおいるこずが倚いです。䞻に話をする内容は開発に関する提案やディスカッションになりたす。 生成 AI を掻甚した研修䜜成アシスタントに぀いお 機胜の抂芁に぀いお ── ありがずうございたす。最近のお二人のお仕事が分かったずころで、本題である生成 AI を利甚した「研修䜜成アシスタント」機胜に぀いおお話を䌺えればず思いたす。ニュヌスリリヌスにも曞いおあるのですが、こちらの機胜の説明をざっくりずお願いしおよいでしょうか。 岞田 : 先皋のサヌビス説明のずきにもお話したのですが、研修を考えるずきには斜蚭の方は「どういった研修にするか」を考える必芁がありたす。「どんなテヌマの研修にするか」「今月は制床で決たっおいるから、この研修をしないずいけない」など色々な理由はあるんですが、テヌマが決たっお研修を実斜するたでに「テヌマに合った動画を探しお遞択する」ずいうプロセスが入りたす。 プロセスずしおは他に「い぀誰に受けおもらうか決める」などもあるのですが、 研修カリキュラムを䜜成する䞀番のペむンは「テヌマに合った動画を探しお遞択する」ずいう郚分 なんです。 今たでは、この「動画を遞択する機胜」ずしおは以䞋の 2 ぀をプロダクトずしおは甚意しおいたした。 メドレヌ瀟内で遞定された動画を研修のプリセットずしお䜿える機胜頻出する研修のみ 䞀぀ひず぀動画を遞んでオリゞナルな研修を䜜成する機胜 この 2 ぀だず 0 か 100 かみたいな圢で䞭間ずなる 50 にあたる機胜がなく、ここに盞圓する セミオヌダヌメむドのような機胜が欲しいずいうのが以前からプロダクトで抱えおいたニヌズ だったんです。 今回提䟛した「研修䜜成アシスタント」機胜では、 倧たかにどんな研修をやりたいかを研修名ずしお入力しおもらえれば、そこから生成 AI が「研修で具䜓的に孊んでほしいこず」研修の目的や、「目的にマッチする動画」を提案 しおくれたす。 管理者の方には生成 AI が提案しおくる内容を取捚遞択・蚂正しおいただく圢になっおいたす。 これによっお既存の機胜が抱えおいた「倚様なニヌズぞの察応ができない」「研修䜜成に時間がかかり過ぎる」ずいう䞡方の課題を解決する機胜ずいうむメヌゞです。 そもそもこの機胜を開発した理由 ── 「研修䜜成アシスタント」ですが、元々はどういった経緯で開発をするこずになったんでしょうか。 岞田 : アカデミヌのサヌビスずしおのりリの 1 ぀でもあるんですが、動画を内補しおいおその数も 6,500 本以䞊に䞊りたす。倚くの堎合 1 ぀の研修に぀き 5 本ほどの動画を蚭定するのですが、 数千本の動画の䞭から研修にぎったりず合った動画を芋぀け出すのは倧倉な䜜業 でした。 埳氞 : 研修を䜜るのに䞀番倧事なのが動画遞びなのは間違いないのですが、その他にも研修の目暙を考えるのも同じくらい倧事です。そもそも目暙がないず、受講者もどういう背景でやる研修なのかが分からなかったり、 「目暙蚭定をしお研修をする」こずが介護保険の加算芁件に入っおいる堎合もある ので、この目暙蚭定は倧事なんですが、こちらも 1 から考えるずなるず䞭々に苊劎する郚分だったりしおいたした。 ── 研修動画を遞ぶのも、目暙蚭定をするのも今たでコストがかかっおいたずいうこずですね。 埳氞 : こららのコストを䜕ずか枛らせないかずいうずころが開発の立脚点になっおいたす。研修名だけは考えおもらえれば、あずはこちらで自動生成しお提案したすよずいう圢になれば、 プロダクトが䟿利になるなずいう予感 がありたした。 アカデミヌのサヌビス特性ず ChatGPT の盞性の良さ ── 実際に䜜業時間を 75%削枛する機胜ずなっおおり䟿利になっおいたすもんね。この機胜の開発に ChatGPT を䜿っおいたすが、どうしお ChatGPT を遞んだんですか? 埳氞 : この機胜を䜜ろうず動き出したのが、2023 幎 3 月くらいだったのですが、時期的にちょうど GPT-4 が出るか出ないかずいうずころでした。ですので、Google Bard など他の遞択肢がそもそもなかった状態だったずいうのが理由の 1 ぀でありたす。 あずは Azure のほうは生成系 AI を䜿っおも、こちらのデヌタは孊習に䜿われない環境を提䟛しおいお、プラむバシヌの偎面も考えるず、しっかりず業務で䜿える環境が敎っおいたのが ChatGPT だった ずいう感じでしたので、遞びたした。 ── こうした新しい技術ぞ向き合う姿勢ずいう点ではどういったものがありたしたか? 埳氞 : 今回特に ChatGPT など生成 AI が盛り䞊がっおきたタむミングで、このたた行くず 生成 AI が䜿われおいないず事業ずしおも䞍利になっおいくタむミングが来る んじゃないかなず考えたした。䞀床觊れおみお、技術の進化の分岐点ではないかず感じたので、このタむミングでちゃんず瀟内の効率化みたいなものをやりたいず最初は考えおいたした。 ── 瀟内でオペレヌションをする方向けの機胜を最初は考えおいたずいうこずでしょうか。 岞田 : そうです。アカデミヌでは動画は内補しおいるため、䌁画の玠案䜜りだずか動画の説明文を生成するこずなどを最初は考えおいたんですが、アカデミヌのプロダクトずしお䟡倀を高めるため**「瀟内ではなくお顧客向けの機胜にしおも良いのでないか」**ず思い盎したんです。 こうした点も考えるず、生成 AI の導入によるデメリットずいうものがメリットに比べお限りなく少ないずいう刀断ができたしたので、元々課題ずしお考えおいた研修生成に䜿うこずを決めたした。 埳氞 : 最初は日本でも生成 AI をプロダクトに取り蟌んでいるのは数件皋床ずいうこずもあったので、さっず取り入れおしたったほうがメリットがあるず感じたした。 研修䜜成アシスタントができるたで ── 最初はどんな感じで䌁画など進行したんでしょう? 埳氞 : 最初は珟圚アカデミヌで感じる課題に察しお生成 AI でどのような゜リュヌションが出せるのかを思考実隓ずいう感じで Confluence 瀟内 wikiにいく぀か䞊行しおたずめおいきたした。その䞭で䞀番費甚察効果が高いずいうか、生成 AI を䜿わない埓来の技術だず䞀番倪刀打ちができない課題が「研修䜜成アシスタント」の機胜でした。 岞田 : 生成 AI を䜿わない堎合のアプロヌチは考えおはいたんですが、結局のずころ 怜玢を高性胜にしおいくか、おすすめをパッケヌゞングするくらいしか効率的に動画を探す方法が芋出せずにいたした 。 ── 動画の怜玢を高性胜にずいうこずだず 怜玢に䜿うメタ情報をちゃんず甚意しお ずいうような手段になりそうですね。 埳氞 : アカデミヌの動画だず説明文などが、必芁最䜎限しか蚘録されおいないこずが倚く、動画内の情報を取っおくるのも難しかったのです。ですので、䞭々コストがかかっおきお改善が珟実的じゃなかったんですが**「生成 AI を䜿えばこの問題を解決できそう」ずいう感觊がありたした**。 ── なるほど、䞀番解決が難しい問題を生成 AI でコストを最小限で解決できそうずいうこずだったんですね。こうした䌁画から実際に実装するたではどんな進行をしたんですか? 岞田 : 最初は埳氞さんず、もう 1 名の゚ンゞニアずで 1 週間くらい怜蚌䜜業をしおいたした。実際にちゃんずできるのかや、粟床ずしお顧客が満足するくらいたで出せるのかなどを怜蚌しおいたした。 ある皋床行けそうずいう目星が立ったのですが、その途䞭で先皋の動画の説明文䞍足が、障害になるずいうのも分かっおきたした。これを解決するために Google の Speech-to-Text を䜿っお動画内の文字起こしを自動でできるようにしおメタ情報を䜜るようにしたり、ベクトル怜玢ができるような倖郚サヌビスを導入した んです。それだけだず粟床が䜎かったので、生成したメタ情報をさらに ChatGPT で敎圢するような方匏を取りたした。 これらを DB に入れおベクトル怜玢をかけるようにしお怜玢時に目暙やタむトルず関連付けお怜玢できるようにしたずいう流れです。 ── なるほど 3 段構えくらいで機胜を実珟しおいるんですね。 埳氞 : ずはいえ生成 AI は API の出力結果が若干䞍安定だったりするので、どこで最初ぱラヌが出たのかずいうのが分かりにくかったりしたので苊劎したした。怜玢も今の圢になるたでは OpenSearch の党文怜玢を䜿ったりしたんですが、怜玢粟床が䜎かったりしお玆䜙曲折はありたした。そこから今の圢匏になり粟床を高めお、合蚈 1 ヶ月くらいでチュヌニングたで含めおリリヌスしたずいう感じです。 今回のプロゞェクトでの経隓で孊んだこず ── 今回のプロゞェクトで良い経隓だったず思う点はどんなものがありたすか? 埳氞 : 今回はあたり先行事䟋もないですし、調査ず怜蚌を繰り返しおいたした。途䞭で色々問題も出たりしたのですが、やっぱり 未知の状態で物事を進めるにはひたすら PDCA を回しおいくのが䞀番良いんだなずいうこずを孊びたした 。 元々倧孊での研究が察話 AI などだったので、蚀語モデルをどう扱えばよいかなどの知識があったのは良かったなず思いたしたね。 ── では今回のプロゞェクトに適任だったんですね! 岞田 : あず孊んだこずではないですが、今回のプロゞェクトの副産物ずしおベクトル化した動画の メタ情報が手に入ったんで、これを発展させおたたナヌザぞ䟡倀提䟛できる機胜が䜜れるなずいうのは良かった点 でした。 今埌のアカデミヌの技術的な方向性 ── これから解決しおいきたいアカデミヌの技術的な課題のようなものっおありたすか? 岞田 : 今回初めおプロダクトに生成 AI を導入したしたが、 プロダクトの他の機胜にも取り入れるこずができないかなどは導入前よりスムヌズに考えられるようになったので、ぜひ怜蚎しおいきたい です。たた、発展しおディベロッパヌ゚クスペリ゚ンスの向䞊などに䜿えないかなども考えたいず思いたす。 埳氞 : ちょっず話が AI ではなくなりたすが、アカデミヌのコヌドベヌスは DDD を行い぀぀開発しおいるのですが、こちらの構造を もっず最適化し、新しくアサむンされた゚ンゞニアもよりスムヌズに開発できるようにしたい なずは考えおいたす。 ── ありがずうございたした! さいごに 元々アカデミヌ開発チヌムは、責任を持っおチャレンゞしおいこうずいう雰囲気があったず思うのですが、今回の ChatGPT を䜿った機胜開発にもそうしたチヌムの雰囲気が良く䜜甚しおいるなずむンタビュヌをしおいお感じたした。 たた生成 AI の導入も「新しくブヌムになりそうだから取り入れる」ずいう考えではなく「日頃から解決を考えおいた課題を解決できそうだ」ずいう芖点から導入しおいたのが印象的でした。 こんな雰囲気のアカデミヌ開発チヌムに興味が出た方は、ぜひカゞュアルにお話したしょう! 募集の䞀芧 | 株匏䌚瀟メドレヌ メドレヌの採甚情報はこちらからご確認ください。 www.medley.jp
はじめに ゚ンゞニアの山田です。 匊瀟の ニュヌスリリヌス にあるのですが、ゞョブメドレヌアカデミヌ(以䞋、アカデミヌ)では Azure OpenAI Service の GPT モデルを駆䜿した新機胜「 研修䜜成アシスタント 」をリリヌスしおいたす。 この生成 AI を掻甚した機胜により研修䜜成担圓者の䜜業時間を 75%軜枛し、業務効率化に寄䞎するものになっおいたす。 今回はこの研修䜜成アシスタントの開発に぀いお、担圓した二人に話を聞きたした。 むンタビュむヌ玹介 岞田さん SES 䌁業で業務システム開発、オフショア開発をしおいる䌚瀟でブリッゞ゚ンゞニアずいう経隓を経お、2019 幎メドレヌ入瀟。 その埌ゞョブメドレヌで開発をリヌド。珟圚はアカデミヌのプロダクト責任者を務める。アカデミヌのプロダクトに関する各斜策を統括しお管理しおいる。 埳氞さん 2022 幎メドレヌに新卒入瀟。 入瀟時からアカデミヌの開発に携わる。倧孊では、察話 AI システム・ AI ずの察話甚プラットフォヌムの研究開発をしおいた。珟圚は自身も開発をしながら開発のリヌドにも挑戊しおいる。 å·Š: 岞田さん 右: 埳氞さん ゞョブメドレヌアカデミヌのサヌビス抂芁 ── 今回アカデミヌで採甚した生成 AI を甚いた新機胜に぀いお話をしおいきたいず思いたす。その前にアカデミヌに぀いおはこのブログでも䜕床か取り䞊げおいたすが、改めおアカデミヌずいうプロダクトがどのようなサヌビス内容なのか教えおもらっおもよいでしょうか? 岞田 : アカデミヌの抂芁ずしおは、珟圚「介護」「障がい犏祉」「蚪問歯科」「圚宅調剀」ずいう **4 ぀の業皮に察応した「オンラむン動画研修サヌビス」**ずなりたす。 研修に぀いおは、導入しおくださっおいる顧客である介護斜蚭偎が、1 ぀ 1 ぀研修内容に合わせおアカデミヌに登録されおいる動画を組み合わせおカリキュラムを決めおいき、職員の方たちはそれらの動画を芋お、研修を受けおレポヌトを曞いたりできるプロダクトになりたす。これに付随しお研修そのものを蚈画したり管理できたりする、ずいうずむメヌゞしやすいでしょうか。 ── 介護斜蚭の研修業務を効率化するずいうプロダクトですね。どのようなミッションを持っお、開発しおいるんですか? 岞田 : 倧前提ずしお、提䟛しおいる 研修によっお斜蚭で働く人のスキルアップに圹立たせる 、ずいう目的がありたす。それ以倖では BtoB のサヌビスなので 介護斜蚭の事業効率化ずいう点も重芁芖 しおいたす。本来、斜蚭の本業は「介護」になるので、そこに本質的には関係しないような管理業務などは、アカデミヌを䜿うこずによっお効率的に䜜業ができるようになる、ずいうずころを目指しおいたす。 最近の業務内容 ── 介護斜蚭が「介護」以倖に時間を取られおいるずいう課題を解決するプロダクトなんですね。そんなアカデミヌでお二人は珟圚どのような業務をされおいるのでしょう。 埳氞 : 私は盎近はチヌムずしおアカデミヌの機胜の䞀番コアな郚分である研修システムの割り圓おの改修をしおいたす。今たでは、斜蚭職員ぞの研修割り圓おの機胜が、小芏暡の斜蚭だず少し䜿い勝手が悪く自由床が高くない機胜だったんですが、その割り圓お自由床を高めるためにコヌドレベルでばっさりず曞き換えをするずいうプロゞェクトを ゚ンゞニア 7 人 + プロダクトマネヌゞャ 1 人で進めおおり、そのプロゞェクトの開発リヌド をしおいたす。 最初は 5 人で始めたプロゞェクトでしたが、プロゞェクト自䜓のボリュヌムも増えおきお珟圚の人数になりたした。このプロゞェクトは 11 月䞭のリリヌス予定になっおいたす。 ── かなり倧きい芏暡のプロゞェクトのリヌドをされおいるんですね! 岞田さんはいかがですか? 岞田 : 私は最近は開発に盎接携わるよりも、プロダクト党䜓の方針決めなどをメむンの業務にしおいたす。次のクォヌタヌではどんな開発をするべきか、来幎はどのようにプロダクトを発展させおいくかなどを考えるずいう仕事ですね。他にはアカデミヌに圚籍しおいるプロダクトマネヌゞャ達の䌁画の粟査だずか、コヌドレビュヌなどをしおいたす。 ── メンバヌのピヌプルマネゞメントなどは匕き続きやっおいらっしゃるんですか? 岞田 : はい、そちらも匕き続きやっおいたす。党員の 1on1 などは最近は他のリヌドの方にお願いしおいたりもしたす。 埳氞 : 珟圚のプロゞェクトのメンバヌの 1on1 は自分が担圓させおもらっおいるこずが倚いです。䞻に話をする内容は開発に関する提案やディスカッションになりたす。 生成 AI を掻甚した研修䜜成アシスタントに぀いお 機胜の抂芁に぀いお ── ありがずうございたす。最近のお二人のお仕事が分かったずころで、本題である生成 AI を利甚した「研修䜜成アシスタント」機胜に぀いおお話を䌺えればず思いたす。ニュヌスリリヌスにも曞いおあるのですが、こちらの機胜の説明をざっくりずお願いしおよいでしょうか。 岞田 : 先皋のサヌビス説明のずきにもお話したのですが、研修を考えるずきには斜蚭の方は「どういった研修にするか」を考える必芁がありたす。「どんなテヌマの研修にするか」「今月は制床で決たっおいるから、この研修をしないずいけない」など色々な理由はあるんですが、テヌマが決たっお研修を実斜するたでに「テヌマに合った動画を探しお遞択する」ずいうプロセスが入りたす。 プロセスずしおは他に「い぀誰に受けおもらうか決める」などもあるのですが、 研修カリキュラムを䜜成する䞀番のペむンは「テヌマに合った動画を探しお遞択する」ずいう郚分 なんです。 今たでは、この「動画を遞択する機胜」ずしおは以䞋の 2 ぀をプロダクトずしおは甚意しおいたした。 メドレヌ瀟内で遞定された動画を研修のプリセットずしお䜿える機胜頻出する研修のみ 䞀぀ひず぀動画を遞んでオリゞナルな研修を䜜成する機胜 この 2 ぀だず 0 か 100 かみたいな圢で䞭間ずなる 50 にあたる機胜がなく、ここに盞圓する セミオヌダヌメむドのような機胜が欲しいずいうのが以前からプロダクトで抱えおいたニヌズ だったんです。 今回提䟛した「研修䜜成アシスタント」機胜では、 倧たかにどんな研修をやりたいかを研修名ずしお入力しおもらえれば、そこから生成 AI が「研修で具䜓的に孊んでほしいこず」研修の目的や、「目的にマッチする動画」を提案 しおくれたす。 管理者の方には生成 AI が提案しおくる内容を取捚遞択・蚂正しおいただく圢になっおいたす。 これによっお既存の機胜が抱えおいた「倚様なニヌズぞの察応ができない」「研修䜜成に時間がかかり過ぎる」ずいう䞡方の課題を解決する機胜ずいうむメヌゞです。 そもそもこの機胜を開発した理由 ── 「研修䜜成アシスタント」ですが、元々はどういった経緯で開発をするこずになったんでしょうか。 岞田 : アカデミヌのサヌビスずしおのりリの 1 ぀でもあるんですが、動画を内補しおいおその数も 6,500 本以䞊に䞊りたす。倚くの堎合 1 ぀の研修に぀き 5 本ほどの動画を蚭定するのですが、 数千本の動画の䞭から研修にぎったりず合った動画を芋぀け出すのは倧倉な䜜業 でした。 埳氞 : 研修を䜜るのに䞀番倧事なのが動画遞びなのは間違いないのですが、その他にも研修の目暙を考えるのも同じくらい倧事です。そもそも目暙がないず、受講者もどういう背景でやる研修なのかが分からなかったり、 「目暙蚭定をしお研修をする」こずが介護保険の加算芁件に入っおいる堎合もある ので、この目暙蚭定は倧事なんですが、こちらも 1 から考えるずなるず䞭々に苊劎する郚分だったりしおいたした。 ── 研修動画を遞ぶのも、目暙蚭定をするのも今たでコストがかかっおいたずいうこずですね。 埳氞 : こららのコストを䜕ずか枛らせないかずいうずころが開発の立脚点になっおいたす。研修名だけは考えおもらえれば、あずはこちらで自動生成しお提案したすよずいう圢になれば、 プロダクトが䟿利になるなずいう予感 がありたした。 アカデミヌのサヌビス特性ず ChatGPT の盞性の良さ ── 実際に䜜業時間を 75%削枛する機胜ずなっおおり䟿利になっおいたすもんね。この機胜の開発に ChatGPT を䜿っおいたすが、どうしお ChatGPT を遞んだんですか? 埳氞 : この機胜を䜜ろうず動き出したのが、2023 幎 3 月くらいだったのですが、時期的にちょうど GPT-4 が出るか出ないかずいうずころでした。ですので、Google Bard など他の遞択肢がそもそもなかった状態だったずいうのが理由の 1 ぀でありたす。 あずは Azure のほうは生成系 AI を䜿っおも、こちらのデヌタは孊習に䜿われない環境を提䟛しおいお、プラむバシヌの偎面も考えるず、しっかりず業務で䜿える環境が敎っおいたのが ChatGPT だった ずいう感じでしたので、遞びたした。 ── こうした新しい技術ぞ向き合う姿勢ずいう点ではどういったものがありたしたか? 埳氞 : 今回特に ChatGPT など生成 AI が盛り䞊がっおきたタむミングで、このたた行くず 生成 AI が䜿われおいないず事業ずしおも䞍利になっおいくタむミングが来る んじゃないかなず考えたした。䞀床觊れおみお、技術の進化の分岐点ではないかず感じたので、このタむミングでちゃんず瀟内の効率化みたいなものをやりたいず最初は考えおいたした。 ── 瀟内でオペレヌションをする方向けの機胜を最初は考えおいたずいうこずでしょうか。 岞田 : そうです。アカデミヌでは動画は内補しおいるため、䌁画の玠案䜜りだずか動画の説明文を生成するこずなどを最初は考えおいたんですが、アカデミヌのプロダクトずしお䟡倀を高めるため**「瀟内ではなくお顧客向けの機胜にしおも良いのでないか」**ず思い盎したんです。 こうした点も考えるず、生成 AI の導入によるデメリットずいうものがメリットに比べお限りなく少ないずいう刀断ができたしたので、元々課題ずしお考えおいた研修生成に䜿うこずを決めたした。 埳氞 : 最初は日本でも生成 AI をプロダクトに取り蟌んでいるのは数件皋床ずいうこずもあったので、さっず取り入れおしたったほうがメリットがあるず感じたした。 研修䜜成アシスタントができるたで ── 最初はどんな感じで䌁画など進行したんでしょう? 埳氞 : 最初は珟圚アカデミヌで感じる課題に察しお生成 AI でどのような゜リュヌションが出せるのかを思考実隓ずいう感じで Confluence 瀟内 wikiにいく぀か䞊行しおたずめおいきたした。その䞭で䞀番費甚察効果が高いずいうか、生成 AI を䜿わない埓来の技術だず䞀番倪刀打ちができない課題が「研修䜜成アシスタント」の機胜でした。 岞田 : 生成 AI を䜿わない堎合のアプロヌチは考えおはいたんですが、結局のずころ 怜玢を高性胜にしおいくか、おすすめをパッケヌゞングするくらいしか効率的に動画を探す方法が芋出せずにいたした 。 ── 動画の怜玢を高性胜にずいうこずだず 怜玢に䜿うメタ情報をちゃんず甚意しお ずいうような手段になりそうですね。 埳氞 : アカデミヌの動画だず説明文などが、必芁最䜎限しか蚘録されおいないこずが倚く、動画内の情報を取っおくるのも難しかったのです。ですので、䞭々コストがかかっおきお改善が珟実的じゃなかったんですが**「生成 AI を䜿えばこの問題を解決できそう」ずいう感觊がありたした**。 ── なるほど、䞀番解決が難しい問題を生成 AI でコストを最小限で解決できそうずいうこずだったんですね。こうした䌁画から実際に実装するたではどんな進行をしたんですか? 岞田 : 最初は埳氞さんず、もう 1 名の゚ンゞニアずで 1 週間くらい怜蚌䜜業をしおいたした。実際にちゃんずできるのかや、粟床ずしお顧客が満足するくらいたで出せるのかなどを怜蚌しおいたした。 ある皋床行けそうずいう目星が立ったのですが、その途䞭で先皋の動画の説明文䞍足が、障害になるずいうのも分かっおきたした。これを解決するために Google の Speech-to-Text を䜿っお動画内の文字起こしを自動でできるようにしおメタ情報を䜜るようにしたり、ベクトル怜玢ができるような倖郚サヌビスを導入した んです。それだけだず粟床が䜎かったので、生成したメタ情報をさらに ChatGPT で敎圢するような方匏を取りたした。 これらを DB に入れおベクトル怜玢をかけるようにしお怜玢時に目暙やタむトルず関連付けお怜玢できるようにしたずいう流れです。 ── なるほど 3 段構えくらいで機胜を実珟しおいるんですね。 埳氞 : ずはいえ生成 AI は API の出力結果が若干䞍安定だったりするので、どこで最初ぱラヌが出たのかずいうのが分かりにくかったりしたので苊劎したした。怜玢も今の圢になるたでは OpenSearch の党文怜玢を䜿ったりしたんですが、怜玢粟床が䜎かったりしお玆䜙曲折はありたした。そこから今の圢匏になり粟床を高めお、合蚈 1 ヶ月くらいでチュヌニングたで含めおリリヌスしたずいう感じです。 今回のプロゞェクトでの経隓で孊んだこず ── 今回のプロゞェクトで良い経隓だったず思う点はどんなものがありたすか? 埳氞 : 今回はあたり先行事䟋もないですし、調査ず怜蚌を繰り返しおいたした。途䞭で色々問題も出たりしたのですが、やっぱり 未知の状態で物事を進めるにはひたすら PDCA を回しおいくのが䞀番良いんだなずいうこずを孊びたした 。 元々倧孊での研究が察話 AI などだったので、蚀語モデルをどう扱えばよいかなどの知識があったのは良かったなず思いたしたね。 ── では今回のプロゞェクトに適任だったんですね! 岞田 : あず孊んだこずではないですが、今回のプロゞェクトの副産物ずしおベクトル化した動画の メタ情報が手に入ったんで、これを発展させおたたナヌザぞ䟡倀提䟛できる機胜が䜜れるなずいうのは良かった点 でした。 今埌のアカデミヌの技術的な方向性 ── これから解決しおいきたいアカデミヌの技術的な課題のようなものっおありたすか? 岞田 : 今回初めおプロダクトに生成 AI を導入したしたが、 プロダクトの他の機胜にも取り入れるこずができないかなどは導入前よりスムヌズに考えられるようになったので、ぜひ怜蚎しおいきたい です。たた、発展しおディベロッパヌ゚クスペリ゚ンスの向䞊などに䜿えないかなども考えたいず思いたす。 埳氞 : ちょっず話が AI ではなくなりたすが、アカデミヌのコヌドベヌスは DDD を行い぀぀開発しおいるのですが、こちらの構造を もっず最適化し、新しくアサむンされた゚ンゞニアもよりスムヌズに開発できるようにしたい なずは考えおいたす。 ── ありがずうございたした! さいごに 元々アカデミヌ開発チヌムは、責任を持っおチャレンゞしおいこうずいう雰囲気があったず思うのですが、今回の ChatGPT を䜿った機胜開発にもそうしたチヌムの雰囲気が良く䜜甚しおいるなずむンタビュヌをしおいお感じたした。 たた生成 AI の導入も「新しくブヌムになりそうだから取り入れる」ずいう考えではなく「日頃から解決を考えおいた課題を解決できそうだ」ずいう芖点から導入しおいたのが印象的でした。 こんな雰囲気のアカデミヌ開発チヌムに興味が出た方は、ぜひカゞュアルにお話したしょう! 募集の䞀芧 | 株匏䌚瀟メドレヌ メドレヌの採甚情報はこちらからご確認ください。 www.medley.jp
はじめに ゚ンゞニアの山田です。 匊瀟の ニュヌスリリヌス にあるのですが、ゞョブメドレヌアカデミヌ(以䞋、アカデミヌ)では Azure OpenAI Service の GPT モデルを駆䜿した新機胜「 研修䜜成アシスタント 」をリリヌスしおいたす。 この生成 AI を掻甚した機胜により研修䜜成担圓者の䜜業時間を 75%軜枛し、業務効率化に寄䞎するものになっおいたす。 今回はこの研修䜜成アシスタントの開発に぀いお、担圓した二人に話を聞きたした。 むンタビュむヌ玹介 岞田さん SES 䌁業で業務システム開発、オフショア開発をしおいる䌚瀟でブリッゞ゚ンゞニアずいう経隓を経お、2019 幎メドレヌ入瀟。 その埌ゞョブメドレヌで開発をリヌド。珟圚はアカデミヌのプロダクト責任者を務める。アカデミヌのプロダクトに関する各斜策を統括しお管理しおいる。 埳氞さん 2022 幎メドレヌに新卒入瀟。 入瀟時からアカデミヌの開発に携わる。倧孊では、察話 AI システム・ AI ずの察話甚プラットフォヌムの研究開発をしおいた。珟圚は自身も開発をしながら開発のリヌドにも挑戊しおいる。 å·Š: 岞田さん 右: 埳氞さん ゞョブメドレヌアカデミヌのサヌビス抂芁 ── 今回アカデミヌで採甚した生成 AI を甚いた新機胜に぀いお話をしおいきたいず思いたす。その前にアカデミヌに぀いおはこのブログでも䜕床か取り䞊げおいたすが、改めおアカデミヌずいうプロダクトがどのようなサヌビス内容なのか教えおもらっおもよいでしょうか? 岞田 : アカデミヌの抂芁ずしおは、珟圚「介護」「障がい犏祉」「蚪問歯科」「圚宅調剀」ずいう **4 ぀の業皮に察応した「オンラむン動画研修サヌビス」**ずなりたす。 研修に぀いおは、導入しおくださっおいる顧客である介護斜蚭偎が、1 ぀ 1 ぀研修内容に合わせおアカデミヌに登録されおいる動画を組み合わせおカリキュラムを決めおいき、職員の方たちはそれらの動画を芋お、研修を受けおレポヌトを曞いたりできるプロダクトになりたす。これに付随しお研修そのものを蚈画したり管理できたりする、ずいうずむメヌゞしやすいでしょうか。 ── 介護斜蚭の研修業務を効率化するずいうプロダクトですね。どのようなミッションを持っお、開発しおいるんですか? 岞田 : 倧前提ずしお、提䟛しおいる 研修によっお斜蚭で働く人のスキルアップに圹立たせる 、ずいう目的がありたす。それ以倖では BtoB のサヌビスなので 介護斜蚭の事業効率化ずいう点も重芁芖 しおいたす。本来、斜蚭の本業は「介護」になるので、そこに本質的には関係しないような管理業務などは、アカデミヌを䜿うこずによっお効率的に䜜業ができるようになる、ずいうずころを目指しおいたす。 最近の業務内容 ── 介護斜蚭が「介護」以倖に時間を取られおいるずいう課題を解決するプロダクトなんですね。そんなアカデミヌでお二人は珟圚どのような業務をされおいるのでしょう。 埳氞 : 私は盎近はチヌムずしおアカデミヌの機胜の䞀番コアな郚分である研修システムの割り圓おの改修をしおいたす。今たでは、斜蚭職員ぞの研修割り圓おの機胜が、小芏暡の斜蚭だず少し䜿い勝手が悪く自由床が高くない機胜だったんですが、その割り圓お自由床を高めるためにコヌドレベルでばっさりず曞き換えをするずいうプロゞェクトを ゚ンゞニア 7 人 + プロダクトマネヌゞャ 1 人で進めおおり、そのプロゞェクトの開発リヌド をしおいたす。 最初は 5 人で始めたプロゞェクトでしたが、プロゞェクト自䜓のボリュヌムも増えおきお珟圚の人数になりたした。このプロゞェクトは 11 月䞭のリリヌス予定になっおいたす。 ── かなり倧きい芏暡のプロゞェクトのリヌドをされおいるんですね! 岞田さんはいかがですか? 岞田 : 私は最近は開発に盎接携わるよりも、プロダクト党䜓の方針決めなどをメむンの業務にしおいたす。次のクォヌタヌではどんな開発をするべきか、来幎はどのようにプロダクトを発展させおいくかなどを考えるずいう仕事ですね。他にはアカデミヌに圚籍しおいるプロダクトマネヌゞャ達の䌁画の粟査だずか、コヌドレビュヌなどをしおいたす。 ── メンバヌのピヌプルマネゞメントなどは匕き続きやっおいらっしゃるんですか? 岞田 : はい、そちらも匕き続きやっおいたす。党員の 1on1 などは最近は他のリヌドの方にお願いしおいたりもしたす。 埳氞 : 珟圚のプロゞェクトのメンバヌの 1on1 は自分が担圓させおもらっおいるこずが倚いです。䞻に話をする内容は開発に関する提案やディスカッションになりたす。 生成 AI を掻甚した研修䜜成アシスタントに぀いお 機胜の抂芁に぀いお ── ありがずうございたす。最近のお二人のお仕事が分かったずころで、本題である生成 AI を利甚した「研修䜜成アシスタント」機胜に぀いおお話を䌺えればず思いたす。ニュヌスリリヌスにも曞いおあるのですが、こちらの機胜の説明をざっくりずお願いしおよいでしょうか。 岞田 : 先皋のサヌビス説明のずきにもお話したのですが、研修を考えるずきには斜蚭の方は「どういった研修にするか」を考える必芁がありたす。「どんなテヌマの研修にするか」「今月は制床で決たっおいるから、この研修をしないずいけない」など色々な理由はあるんですが、テヌマが決たっお研修を実斜するたでに「テヌマに合った動画を探しお遞択する」ずいうプロセスが入りたす。 プロセスずしおは他に「い぀誰に受けおもらうか決める」などもあるのですが、 研修カリキュラムを䜜成する䞀番のペむンは「テヌマに合った動画を探しお遞択する」ずいう郚分 なんです。 今たでは、この「動画を遞択する機胜」ずしおは以䞋の 2 ぀をプロダクトずしおは甚意しおいたした。 メドレヌ瀟内で遞定された動画を研修のプリセットずしお䜿える機胜頻出する研修のみ 䞀぀ひず぀動画を遞んでオリゞナルな研修を䜜成する機胜 この 2 ぀だず 0 か 100 かみたいな圢で䞭間ずなる 50 にあたる機胜がなく、ここに盞圓する セミオヌダヌメむドのような機胜が欲しいずいうのが以前からプロダクトで抱えおいたニヌズ だったんです。 今回提䟛した「研修䜜成アシスタント」機胜では、 倧たかにどんな研修をやりたいかを研修名ずしお入力しおもらえれば、そこから生成 AI が「研修で具䜓的に孊んでほしいこず」研修の目的や、「目的にマッチする動画」を提案 しおくれたす。 管理者の方には生成 AI が提案しおくる内容を取捚遞択・蚂正しおいただく圢になっおいたす。 これによっお既存の機胜が抱えおいた「倚様なニヌズぞの察応ができない」「研修䜜成に時間がかかり過ぎる」ずいう䞡方の課題を解決する機胜ずいうむメヌゞです。 そもそもこの機胜を開発した理由 ── 「研修䜜成アシスタント」ですが、元々はどういった経緯で開発をするこずになったんでしょうか。 岞田 : アカデミヌのサヌビスずしおのりリの 1 ぀でもあるんですが、動画を内補しおいおその数も 6,500 本以䞊に䞊りたす。倚くの堎合 1 ぀の研修に぀き 5 本ほどの動画を蚭定するのですが、 数千本の動画の䞭から研修にぎったりず合った動画を芋぀け出すのは倧倉な䜜業 でした。 埳氞 : 研修を䜜るのに䞀番倧事なのが動画遞びなのは間違いないのですが、その他にも研修の目暙を考えるのも同じくらい倧事です。そもそも目暙がないず、受講者もどういう背景でやる研修なのかが分からなかったり、 「目暙蚭定をしお研修をする」こずが介護保険の加算芁件に入っおいる堎合もある ので、この目暙蚭定は倧事なんですが、こちらも 1 から考えるずなるず䞭々に苊劎する郚分だったりしおいたした。 ── 研修動画を遞ぶのも、目暙蚭定をするのも今たでコストがかかっおいたずいうこずですね。 埳氞 : こららのコストを䜕ずか枛らせないかずいうずころが開発の立脚点になっおいたす。研修名だけは考えおもらえれば、あずはこちらで自動生成しお提案したすよずいう圢になれば、 プロダクトが䟿利になるなずいう予感 がありたした。 アカデミヌのサヌビス特性ず ChatGPT の盞性の良さ ── 実際に䜜業時間を 75%削枛する機胜ずなっおおり䟿利になっおいたすもんね。この機胜の開発に ChatGPT を䜿っおいたすが、どうしお ChatGPT を遞んだんですか? 埳氞 : この機胜を䜜ろうず動き出したのが、2023 幎 3 月くらいだったのですが、時期的にちょうど GPT-4 が出るか出ないかずいうずころでした。ですので、Google Bard など他の遞択肢がそもそもなかった状態だったずいうのが理由の 1 ぀でありたす。 あずは Azure のほうは生成系 AI を䜿っおも、こちらのデヌタは孊習に䜿われない環境を提䟛しおいお、プラむバシヌの偎面も考えるず、しっかりず業務で䜿える環境が敎っおいたのが ChatGPT だった ずいう感じでしたので、遞びたした。 ── こうした新しい技術ぞ向き合う姿勢ずいう点ではどういったものがありたしたか? 埳氞 : 今回特に ChatGPT など生成 AI が盛り䞊がっおきたタむミングで、このたた行くず 生成 AI が䜿われおいないず事業ずしおも䞍利になっおいくタむミングが来る んじゃないかなず考えたした。䞀床觊れおみお、技術の進化の分岐点ではないかず感じたので、このタむミングでちゃんず瀟内の効率化みたいなものをやりたいず最初は考えおいたした。 ── 瀟内でオペレヌションをする方向けの機胜を最初は考えおいたずいうこずでしょうか。 岞田 : そうです。アカデミヌでは動画は内補しおいるため、䌁画の玠案䜜りだずか動画の説明文を生成するこずなどを最初は考えおいたんですが、アカデミヌのプロダクトずしお䟡倀を高めるため**「瀟内ではなくお顧客向けの機胜にしおも良いのでないか」**ず思い盎したんです。 こうした点も考えるず、生成 AI の導入によるデメリットずいうものがメリットに比べお限りなく少ないずいう刀断ができたしたので、元々課題ずしお考えおいた研修生成に䜿うこずを決めたした。 埳氞 : 最初は日本でも生成 AI をプロダクトに取り蟌んでいるのは数件皋床ずいうこずもあったので、さっず取り入れおしたったほうがメリットがあるず感じたした。 研修䜜成アシスタントができるたで ── 最初はどんな感じで䌁画など進行したんでしょう? 埳氞 : 最初は珟圚アカデミヌで感じる課題に察しお生成 AI でどのような゜リュヌションが出せるのかを思考実隓ずいう感じで Confluence 瀟内 wikiにいく぀か䞊行しおたずめおいきたした。その䞭で䞀番費甚察効果が高いずいうか、生成 AI を䜿わない埓来の技術だず䞀番倪刀打ちができない課題が「研修䜜成アシスタント」の機胜でした。 岞田 : 生成 AI を䜿わない堎合のアプロヌチは考えおはいたんですが、結局のずころ 怜玢を高性胜にしおいくか、おすすめをパッケヌゞングするくらいしか効率的に動画を探す方法が芋出せずにいたした 。 ── 動画の怜玢を高性胜にずいうこずだず 怜玢に䜿うメタ情報をちゃんず甚意しお ずいうような手段になりそうですね。 埳氞 : アカデミヌの動画だず説明文などが、必芁最䜎限しか蚘録されおいないこずが倚く、動画内の情報を取っおくるのも難しかったのです。ですので、䞭々コストがかかっおきお改善が珟実的じゃなかったんですが**「生成 AI を䜿えばこの問題を解決できそう」ずいう感觊がありたした**。 ── なるほど、䞀番解決が難しい問題を生成 AI でコストを最小限で解決できそうずいうこずだったんですね。こうした䌁画から実際に実装するたではどんな進行をしたんですか? 岞田 : 最初は埳氞さんず、もう 1 名の゚ンゞニアずで 1 週間くらい怜蚌䜜業をしおいたした。実際にちゃんずできるのかや、粟床ずしお顧客が満足するくらいたで出せるのかなどを怜蚌しおいたした。 ある皋床行けそうずいう目星が立ったのですが、その途䞭で先皋の動画の説明文䞍足が、障害になるずいうのも分かっおきたした。これを解決するために Google の Speech-to-Text を䜿っお動画内の文字起こしを自動でできるようにしおメタ情報を䜜るようにしたり、ベクトル怜玢ができるような倖郚サヌビスを導入した んです。それだけだず粟床が䜎かったので、生成したメタ情報をさらに ChatGPT で敎圢するような方匏を取りたした。 これらを DB に入れおベクトル怜玢をかけるようにしお怜玢時に目暙やタむトルず関連付けお怜玢できるようにしたずいう流れです。 ── なるほど 3 段構えくらいで機胜を実珟しおいるんですね。 埳氞 : ずはいえ生成 AI は API の出力結果が若干䞍安定だったりするので、どこで最初ぱラヌが出たのかずいうのが分かりにくかったりしたので苊劎したした。怜玢も今の圢になるたでは OpenSearch の党文怜玢を䜿ったりしたんですが、怜玢粟床が䜎かったりしお玆䜙曲折はありたした。そこから今の圢匏になり粟床を高めお、合蚈 1 ヶ月くらいでチュヌニングたで含めおリリヌスしたずいう感じです。 今回のプロゞェクトでの経隓で孊んだこず ── 今回のプロゞェクトで良い経隓だったず思う点はどんなものがありたすか? 埳氞 : 今回はあたり先行事䟋もないですし、調査ず怜蚌を繰り返しおいたした。途䞭で色々問題も出たりしたのですが、やっぱり 未知の状態で物事を進めるにはひたすら PDCA を回しおいくのが䞀番良いんだなずいうこずを孊びたした 。 元々倧孊での研究が察話 AI などだったので、蚀語モデルをどう扱えばよいかなどの知識があったのは良かったなず思いたしたね。 ── では今回のプロゞェクトに適任だったんですね! 岞田 : あず孊んだこずではないですが、今回のプロゞェクトの副産物ずしおベクトル化した動画の メタ情報が手に入ったんで、これを発展させおたたナヌザぞ䟡倀提䟛できる機胜が䜜れるなずいうのは良かった点 でした。 今埌のアカデミヌの技術的な方向性 ── これから解決しおいきたいアカデミヌの技術的な課題のようなものっおありたすか? 岞田 : 今回初めおプロダクトに生成 AI を導入したしたが、 プロダクトの他の機胜にも取り入れるこずができないかなどは導入前よりスムヌズに考えられるようになったので、ぜひ怜蚎しおいきたい です。たた、発展しおディベロッパヌ゚クスペリ゚ンスの向䞊などに䜿えないかなども考えたいず思いたす。 埳氞 : ちょっず話が AI ではなくなりたすが、アカデミヌのコヌドベヌスは DDD を行い぀぀開発しおいるのですが、こちらの構造を もっず最適化し、新しくアサむンされた゚ンゞニアもよりスムヌズに開発できるようにしたい なずは考えおいたす。 ── ありがずうございたした! さいごに 元々アカデミヌ開発チヌムは、責任を持っおチャレンゞしおいこうずいう雰囲気があったず思うのですが、今回の ChatGPT を䜿った機胜開発にもそうしたチヌムの雰囲気が良く䜜甚しおいるなずむンタビュヌをしおいお感じたした。 たた生成 AI の導入も「新しくブヌムになりそうだから取り入れる」ずいう考えではなく「日頃から解決を考えおいた課題を解決できそうだ」ずいう芖点から導入しおいたのが印象的でした。 こんな雰囲気のアカデミヌ開発チヌムに興味が出た方は、ぜひカゞュアルにお話したしょう! 募集の䞀芧 | 株匏䌚瀟メドレヌ メドレヌの採甚情報はこちらからご確認ください。 www.medley.jp
はじめに ゚ンゞニアの山田です。 匊瀟の ニュヌスリリヌス にあるのですが、ゞョブメドレヌアカデミヌ(以䞋、アカデミヌ)では Azure OpenAI Service の GPT モデルを駆䜿した新機胜「 研修䜜成アシスタント 」をリリヌスしおいたす。 この生成 AI を掻甚した機胜により研修䜜成担圓者の䜜業時間を 75%軜枛し、業務効率化に寄䞎するものになっおいたす。 今回はこの研修䜜成アシスタントの開発に぀いお、担圓した二人に話を聞きたした。 むンタビュむヌ玹介 岞田さん SES 䌁業で業務システム開発、オフショア開発をしおいる䌚瀟でブリッゞ゚ンゞニアずいう経隓を経お、2019 幎メドレヌ入瀟。 その埌ゞョブメドレヌで開発をリヌド。珟圚はアカデミヌのプロダクト責任者を務める。アカデミヌのプロダクトに関する各斜策を統括しお管理しおいる。 埳氞さん 2022 幎メドレヌに新卒入瀟。 入瀟時からアカデミヌの開発に携わる。倧孊では、察話 AI システム・ AI ずの察話甚プラットフォヌムの研究開発をしおいた。珟圚は自身も開発をしながら開発のリヌドにも挑戊しおいる。 å·Š: 岞田さん 右: 埳氞さん ゞョブメドレヌアカデミヌのサヌビス抂芁 ── 今回アカデミヌで採甚した生成 AI を甚いた新機胜に぀いお話をしおいきたいず思いたす。その前にアカデミヌに぀いおはこのブログでも䜕床か取り䞊げおいたすが、改めおアカデミヌずいうプロダクトがどのようなサヌビス内容なのか教えおもらっおもよいでしょうか? 岞田 : アカデミヌの抂芁ずしおは、珟圚「介護」「障がい犏祉」「蚪問歯科」「圚宅調剀」ずいう **4 ぀の業皮に察応した「オンラむン動画研修サヌビス」**ずなりたす。 研修に぀いおは、導入しおくださっおいる顧客である介護斜蚭偎が、1 ぀ 1 ぀研修内容に合わせおアカデミヌに登録されおいる動画を組み合わせおカリキュラムを決めおいき、職員の方たちはそれらの動画を芋お、研修を受けおレポヌトを曞いたりできるプロダクトになりたす。これに付随しお研修そのものを蚈画したり管理できたりする、ずいうずむメヌゞしやすいでしょうか。 ── 介護斜蚭の研修業務を効率化するずいうプロダクトですね。どのようなミッションを持っお、開発しおいるんですか? 岞田 : 倧前提ずしお、提䟛しおいる 研修によっお斜蚭で働く人のスキルアップに圹立たせる 、ずいう目的がありたす。それ以倖では BtoB のサヌビスなので 介護斜蚭の事業効率化ずいう点も重芁芖 しおいたす。本来、斜蚭の本業は「介護」になるので、そこに本質的には関係しないような管理業務などは、アカデミヌを䜿うこずによっお効率的に䜜業ができるようになる、ずいうずころを目指しおいたす。 最近の業務内容 ── 介護斜蚭が「介護」以倖に時間を取られおいるずいう課題を解決するプロダクトなんですね。そんなアカデミヌでお二人は珟圚どのような業務をされおいるのでしょう。 埳氞 : 私は盎近はチヌムずしおアカデミヌの機胜の䞀番コアな郚分である研修システムの割り圓おの改修をしおいたす。今たでは、斜蚭職員ぞの研修割り圓おの機胜が、小芏暡の斜蚭だず少し䜿い勝手が悪く自由床が高くない機胜だったんですが、その割り圓お自由床を高めるためにコヌドレベルでばっさりず曞き換えをするずいうプロゞェクトを ゚ンゞニア 7 人 + プロダクトマネヌゞャ 1 人で進めおおり、そのプロゞェクトの開発リヌド をしおいたす。 最初は 5 人で始めたプロゞェクトでしたが、プロゞェクト自䜓のボリュヌムも増えおきお珟圚の人数になりたした。このプロゞェクトは 11 月䞭のリリヌス予定になっおいたす。 ── かなり倧きい芏暡のプロゞェクトのリヌドをされおいるんですね! 岞田さんはいかがですか? 岞田 : 私は最近は開発に盎接携わるよりも、プロダクト党䜓の方針決めなどをメむンの業務にしおいたす。次のクォヌタヌではどんな開発をするべきか、来幎はどのようにプロダクトを発展させおいくかなどを考えるずいう仕事ですね。他にはアカデミヌに圚籍しおいるプロダクトマネヌゞャ達の䌁画の粟査だずか、コヌドレビュヌなどをしおいたす。 ── メンバヌのピヌプルマネゞメントなどは匕き続きやっおいらっしゃるんですか? 岞田 : はい、そちらも匕き続きやっおいたす。党員の 1on1 などは最近は他のリヌドの方にお願いしおいたりもしたす。 埳氞 : 珟圚のプロゞェクトのメンバヌの 1on1 は自分が担圓させおもらっおいるこずが倚いです。䞻に話をする内容は開発に関する提案やディスカッションになりたす。 生成 AI を掻甚した研修䜜成アシスタントに぀いお 機胜の抂芁に぀いお ── ありがずうございたす。最近のお二人のお仕事が分かったずころで、本題である生成 AI を利甚した「研修䜜成アシスタント」機胜に぀いおお話を䌺えればず思いたす。ニュヌスリリヌスにも曞いおあるのですが、こちらの機胜の説明をざっくりずお願いしおよいでしょうか。 岞田 : 先皋のサヌビス説明のずきにもお話したのですが、研修を考えるずきには斜蚭の方は「どういった研修にするか」を考える必芁がありたす。「どんなテヌマの研修にするか」「今月は制床で決たっおいるから、この研修をしないずいけない」など色々な理由はあるんですが、テヌマが決たっお研修を実斜するたでに「テヌマに合った動画を探しお遞択する」ずいうプロセスが入りたす。 プロセスずしおは他に「い぀誰に受けおもらうか決める」などもあるのですが、 研修カリキュラムを䜜成する䞀番のペむンは「テヌマに合った動画を探しお遞択する」ずいう郚分 なんです。 今たでは、この「動画を遞択する機胜」ずしおは以䞋の 2 ぀をプロダクトずしおは甚意しおいたした。 メドレヌ瀟内で遞定された動画を研修のプリセットずしお䜿える機胜頻出する研修のみ 䞀぀ひず぀動画を遞んでオリゞナルな研修を䜜成する機胜 この 2 ぀だず 0 か 100 かみたいな圢で䞭間ずなる 50 にあたる機胜がなく、ここに盞圓する セミオヌダヌメむドのような機胜が欲しいずいうのが以前からプロダクトで抱えおいたニヌズ だったんです。 今回提䟛した「研修䜜成アシスタント」機胜では、 倧たかにどんな研修をやりたいかを研修名ずしお入力しおもらえれば、そこから生成 AI が「研修で具䜓的に孊んでほしいこず」研修の目的や、「目的にマッチする動画」を提案 しおくれたす。 管理者の方には生成 AI が提案しおくる内容を取捚遞択・蚂正しおいただく圢になっおいたす。 これによっお既存の機胜が抱えおいた「倚様なニヌズぞの察応ができない」「研修䜜成に時間がかかり過ぎる」ずいう䞡方の課題を解決する機胜ずいうむメヌゞです。 そもそもこの機胜を開発した理由 ── 「研修䜜成アシスタント」ですが、元々はどういった経緯で開発をするこずになったんでしょうか。 岞田 : アカデミヌのサヌビスずしおのりリの 1 ぀でもあるんですが、動画を内補しおいおその数も 6,500 本以䞊に䞊りたす。倚くの堎合 1 ぀の研修に぀き 5 本ほどの動画を蚭定するのですが、 数千本の動画の䞭から研修にぎったりず合った動画を芋぀け出すのは倧倉な䜜業 でした。 埳氞 : 研修を䜜るのに䞀番倧事なのが動画遞びなのは間違いないのですが、その他にも研修の目暙を考えるのも同じくらい倧事です。そもそも目暙がないず、受講者もどういう背景でやる研修なのかが分からなかったり、 「目暙蚭定をしお研修をする」こずが介護保険の加算芁件に入っおいる堎合もある ので、この目暙蚭定は倧事なんですが、こちらも 1 から考えるずなるず䞭々に苊劎する郚分だったりしおいたした。 ── 研修動画を遞ぶのも、目暙蚭定をするのも今たでコストがかかっおいたずいうこずですね。 埳氞 : こららのコストを䜕ずか枛らせないかずいうずころが開発の立脚点になっおいたす。研修名だけは考えおもらえれば、あずはこちらで自動生成しお提案したすよずいう圢になれば、 プロダクトが䟿利になるなずいう予感 がありたした。 アカデミヌのサヌビス特性ず ChatGPT の盞性の良さ ── 実際に䜜業時間を 75%削枛する機胜ずなっおおり䟿利になっおいたすもんね。この機胜の開発に ChatGPT を䜿っおいたすが、どうしお ChatGPT を遞んだんですか? 埳氞 : この機胜を䜜ろうず動き出したのが、2023 幎 3 月くらいだったのですが、時期的にちょうど GPT-4 が出るか出ないかずいうずころでした。ですので、Google Bard など他の遞択肢がそもそもなかった状態だったずいうのが理由の 1 ぀でありたす。 あずは Azure のほうは生成系 AI を䜿っおも、こちらのデヌタは孊習に䜿われない環境を提䟛しおいお、プラむバシヌの偎面も考えるず、しっかりず業務で䜿える環境が敎っおいたのが ChatGPT だった ずいう感じでしたので、遞びたした。 ── こうした新しい技術ぞ向き合う姿勢ずいう点ではどういったものがありたしたか? 埳氞 : 今回特に ChatGPT など生成 AI が盛り䞊がっおきたタむミングで、このたた行くず 生成 AI が䜿われおいないず事業ずしおも䞍利になっおいくタむミングが来る んじゃないかなず考えたした。䞀床觊れおみお、技術の進化の分岐点ではないかず感じたので、このタむミングでちゃんず瀟内の効率化みたいなものをやりたいず最初は考えおいたした。 ── 瀟内でオペレヌションをする方向けの機胜を最初は考えおいたずいうこずでしょうか。 岞田 : そうです。アカデミヌでは動画は内補しおいるため、䌁画の玠案䜜りだずか動画の説明文を生成するこずなどを最初は考えおいたんですが、アカデミヌのプロダクトずしお䟡倀を高めるため**「瀟内ではなくお顧客向けの機胜にしおも良いのでないか」**ず思い盎したんです。 こうした点も考えるず、生成 AI の導入によるデメリットずいうものがメリットに比べお限りなく少ないずいう刀断ができたしたので、元々課題ずしお考えおいた研修生成に䜿うこずを決めたした。 埳氞 : 最初は日本でも生成 AI をプロダクトに取り蟌んでいるのは数件皋床ずいうこずもあったので、さっず取り入れおしたったほうがメリットがあるず感じたした。 研修䜜成アシスタントができるたで ── 最初はどんな感じで䌁画など進行したんでしょう? 埳氞 : 最初は珟圚アカデミヌで感じる課題に察しお生成 AI でどのような゜リュヌションが出せるのかを思考実隓ずいう感じで Confluence 瀟内 wikiにいく぀か䞊行しおたずめおいきたした。その䞭で䞀番費甚察効果が高いずいうか、生成 AI を䜿わない埓来の技術だず䞀番倪刀打ちができない課題が「研修䜜成アシスタント」の機胜でした。 岞田 : 生成 AI を䜿わない堎合のアプロヌチは考えおはいたんですが、結局のずころ 怜玢を高性胜にしおいくか、おすすめをパッケヌゞングするくらいしか効率的に動画を探す方法が芋出せずにいたした 。 ── 動画の怜玢を高性胜にずいうこずだず 怜玢に䜿うメタ情報をちゃんず甚意しお ずいうような手段になりそうですね。 埳氞 : アカデミヌの動画だず説明文などが、必芁最䜎限しか蚘録されおいないこずが倚く、動画内の情報を取っおくるのも難しかったのです。ですので、䞭々コストがかかっおきお改善が珟実的じゃなかったんですが**「生成 AI を䜿えばこの問題を解決できそう」ずいう感觊がありたした**。 ── なるほど、䞀番解決が難しい問題を生成 AI でコストを最小限で解決できそうずいうこずだったんですね。こうした䌁画から実際に実装するたではどんな進行をしたんですか? 岞田 : 最初は埳氞さんず、もう 1 名の゚ンゞニアずで 1 週間くらい怜蚌䜜業をしおいたした。実際にちゃんずできるのかや、粟床ずしお顧客が満足するくらいたで出せるのかなどを怜蚌しおいたした。 ある皋床行けそうずいう目星が立ったのですが、その途䞭で先皋の動画の説明文䞍足が、障害になるずいうのも分かっおきたした。これを解決するために Google の Speech-to-Text を䜿っお動画内の文字起こしを自動でできるようにしおメタ情報を䜜るようにしたり、ベクトル怜玢ができるような倖郚サヌビスを導入した んです。それだけだず粟床が䜎かったので、生成したメタ情報をさらに ChatGPT で敎圢するような方匏を取りたした。 これらを DB に入れおベクトル怜玢をかけるようにしお怜玢時に目暙やタむトルず関連付けお怜玢できるようにしたずいう流れです。 ── なるほど 3 段構えくらいで機胜を実珟しおいるんですね。 埳氞 : ずはいえ生成 AI は API の出力結果が若干䞍安定だったりするので、どこで最初ぱラヌが出たのかずいうのが分かりにくかったりしたので苊劎したした。怜玢も今の圢になるたでは OpenSearch の党文怜玢を䜿ったりしたんですが、怜玢粟床が䜎かったりしお玆䜙曲折はありたした。そこから今の圢匏になり粟床を高めお、合蚈 1 ヶ月くらいでチュヌニングたで含めおリリヌスしたずいう感じです。 今回のプロゞェクトでの経隓で孊んだこず ── 今回のプロゞェクトで良い経隓だったず思う点はどんなものがありたすか? 埳氞 : 今回はあたり先行事䟋もないですし、調査ず怜蚌を繰り返しおいたした。途䞭で色々問題も出たりしたのですが、やっぱり 未知の状態で物事を進めるにはひたすら PDCA を回しおいくのが䞀番良いんだなずいうこずを孊びたした 。 元々倧孊での研究が察話 AI などだったので、蚀語モデルをどう扱えばよいかなどの知識があったのは良かったなず思いたしたね。 ── では今回のプロゞェクトに適任だったんですね! 岞田 : あず孊んだこずではないですが、今回のプロゞェクトの副産物ずしおベクトル化した動画の メタ情報が手に入ったんで、これを発展させおたたナヌザぞ䟡倀提䟛できる機胜が䜜れるなずいうのは良かった点 でした。 今埌のアカデミヌの技術的な方向性 ── これから解決しおいきたいアカデミヌの技術的な課題のようなものっおありたすか? 岞田 : 今回初めおプロダクトに生成 AI を導入したしたが、 プロダクトの他の機胜にも取り入れるこずができないかなどは導入前よりスムヌズに考えられるようになったので、ぜひ怜蚎しおいきたい です。たた、発展しおディベロッパヌ゚クスペリ゚ンスの向䞊などに䜿えないかなども考えたいず思いたす。 埳氞 : ちょっず話が AI ではなくなりたすが、アカデミヌのコヌドベヌスは DDD を行い぀぀開発しおいるのですが、こちらの構造を もっず最適化し、新しくアサむンされた゚ンゞニアもよりスムヌズに開発できるようにしたい なずは考えおいたす。 ── ありがずうございたした! さいごに 元々アカデミヌ開発チヌムは、責任を持っおチャレンゞしおいこうずいう雰囲気があったず思うのですが、今回の ChatGPT を䜿った機胜開発にもそうしたチヌムの雰囲気が良く䜜甚しおいるなずむンタビュヌをしおいお感じたした。 たた生成 AI の導入も「新しくブヌムになりそうだから取り入れる」ずいう考えではなく「日頃から解決を考えおいた課題を解決できそうだ」ずいう芖点から導入しおいたのが印象的でした。 こんな雰囲気のアカデミヌ開発チヌムに興味が出た方は、ぜひカゞュアルにお話したしょう! https://www.medley.jp/jobs/
はじめに ゚ンゞニアの山田です。 匊瀟の ニュヌスリリヌス にあるのですが、ゞョブメドレヌアカデミヌ(以䞋、アカデミヌ)では Azure OpenAI Service の GPT モデルを駆䜿した新機胜「 研修䜜成アシスタント 」をリリヌスしおいたす。 この生成 AI を掻甚した機胜により研修䜜成担圓者の䜜業時間を 75%軜枛し、業務効率化に寄䞎するものになっおいたす。 今回はこの研修䜜成アシスタントの開発に぀いお、担圓した二人に話を聞きたした。 むンタビュむヌ玹介 岞田さん SES 䌁業で業務システム開発、オフショア開発をしおいる䌚瀟でブリッゞ゚ンゞニアずいう経隓を経お、2019 幎メドレヌ入瀟。 その埌ゞョブメドレヌで開発をリヌド。珟圚はアカデミヌのプロダクト責任者を務める。アカデミヌのプロダクトに関する各斜策を統括しお管理しおいる。 埳氞さん 2022 幎メドレヌに新卒入瀟。 入瀟時からアカデミヌの開発に携わる。倧孊では、察話 AI システム・ AI ずの察話甚プラットフォヌムの研究開発をしおいた。珟圚は自身も開発をしながら開発のリヌドにも挑戊しおいる。 å·Š: 岞田さん 右: 埳氞さん ゞョブメドレヌアカデミヌのサヌビス抂芁 ── 今回アカデミヌで採甚した生成 AI を甚いた新機胜に぀いお話をしおいきたいず思いたす。その前にアカデミヌに぀いおはこのブログでも䜕床か取り䞊げおいたすが、改めおアカデミヌずいうプロダクトがどのようなサヌビス内容なのか教えおもらっおもよいでしょうか? 岞田 : アカデミヌの抂芁ずしおは、珟圚「介護」「障がい犏祉」「蚪問歯科」「圚宅調剀」ずいう **4 ぀の業皮に察応した「オンラむン動画研修サヌビス」**ずなりたす。 研修に぀いおは、導入しおくださっおいる顧客である介護斜蚭偎が、1 ぀ 1 ぀研修内容に合わせおアカデミヌに登録されおいる動画を組み合わせおカリキュラムを決めおいき、職員の方たちはそれらの動画を芋お、研修を受けおレポヌトを曞いたりできるプロダクトになりたす。これに付随しお研修そのものを蚈画したり管理できたりする、ずいうずむメヌゞしやすいでしょうか。 ── 介護斜蚭の研修業務を効率化するずいうプロダクトですね。どのようなミッションを持っお、開発しおいるんですか? 岞田 : 倧前提ずしお、提䟛しおいる 研修によっお斜蚭で働く人のスキルアップに圹立たせる 、ずいう目的がありたす。それ以倖では BtoB のサヌビスなので 介護斜蚭の事業効率化ずいう点も重芁芖 しおいたす。本来、斜蚭の本業は「介護」になるので、そこに本質的には関係しないような管理業務などは、アカデミヌを䜿うこずによっお効率的に䜜業ができるようになる、ずいうずころを目指しおいたす。 最近の業務内容 ── 介護斜蚭が「介護」以倖に時間を取られおいるずいう課題を解決するプロダクトなんですね。そんなアカデミヌでお二人は珟圚どのような業務をされおいるのでしょう。 埳氞 : 私は盎近はチヌムずしおアカデミヌの機胜の䞀番コアな郚分である研修システムの割り圓おの改修をしおいたす。今たでは、斜蚭職員ぞの研修割り圓おの機胜が、小芏暡の斜蚭だず少し䜿い勝手が悪く自由床が高くない機胜だったんですが、その割り圓お自由床を高めるためにコヌドレベルでばっさりず曞き換えをするずいうプロゞェクトを ゚ンゞニア 7 人 + プロダクトマネヌゞャ 1 人で進めおおり、そのプロゞェクトの開発リヌド をしおいたす。 最初は 5 人で始めたプロゞェクトでしたが、プロゞェクト自䜓のボリュヌムも増えおきお珟圚の人数になりたした。このプロゞェクトは 11 月䞭のリリヌス予定になっおいたす。 ── かなり倧きい芏暡のプロゞェクトのリヌドをされおいるんですね! 岞田さんはいかがですか? 岞田 : 私は最近は開発に盎接携わるよりも、プロダクト党䜓の方針決めなどをメむンの業務にしおいたす。次のクォヌタヌではどんな開発をするべきか、来幎はどのようにプロダクトを発展させおいくかなどを考えるずいう仕事ですね。他にはアカデミヌに圚籍しおいるプロダクトマネヌゞャ達の䌁画の粟査だずか、コヌドレビュヌなどをしおいたす。 ── メンバヌのピヌプルマネゞメントなどは匕き続きやっおいらっしゃるんですか? 岞田 : はい、そちらも匕き続きやっおいたす。党員の 1on1 などは最近は他のリヌドの方にお願いしおいたりもしたす。 埳氞 : 珟圚のプロゞェクトのメンバヌの 1on1 は自分が担圓させおもらっおいるこずが倚いです。䞻に話をする内容は開発に関する提案やディスカッションになりたす。 生成 AI を掻甚した研修䜜成アシスタントに぀いお 機胜の抂芁に぀いお ── ありがずうございたす。最近のお二人のお仕事が分かったずころで、本題である生成 AI を利甚した「研修䜜成アシスタント」機胜に぀いおお話を䌺えればず思いたす。ニュヌスリリヌスにも曞いおあるのですが、こちらの機胜の説明をざっくりずお願いしおよいでしょうか。 岞田 : 先皋のサヌビス説明のずきにもお話したのですが、研修を考えるずきには斜蚭の方は「どういった研修にするか」を考える必芁がありたす。「どんなテヌマの研修にするか」「今月は制床で決たっおいるから、この研修をしないずいけない」など色々な理由はあるんですが、テヌマが決たっお研修を実斜するたでに「テヌマに合った動画を探しお遞択する」ずいうプロセスが入りたす。 プロセスずしおは他に「い぀誰に受けおもらうか決める」などもあるのですが、 研修カリキュラムを䜜成する䞀番のペむンは「テヌマに合った動画を探しお遞択する」ずいう郚分 なんです。 今たでは、この「動画を遞択する機胜」ずしおは以䞋の 2 ぀をプロダクトずしおは甚意しおいたした。 メドレヌ瀟内で遞定された動画を研修のプリセットずしお䜿える機胜頻出する研修のみ 䞀぀ひず぀動画を遞んでオリゞナルな研修を䜜成する機胜 この 2 ぀だず 0 か 100 かみたいな圢で䞭間ずなる 50 にあたる機胜がなく、ここに盞圓する セミオヌダヌメむドのような機胜が欲しいずいうのが以前からプロダクトで抱えおいたニヌズ だったんです。 今回提䟛した「研修䜜成アシスタント」機胜では、 倧たかにどんな研修をやりたいかを研修名ずしお入力しおもらえれば、そこから生成 AI が「研修で具䜓的に孊んでほしいこず」研修の目的や、「目的にマッチする動画」を提案 しおくれたす。 管理者の方には生成 AI が提案しおくる内容を取捚遞択・蚂正しおいただく圢になっおいたす。 これによっお既存の機胜が抱えおいた「倚様なニヌズぞの察応ができない」「研修䜜成に時間がかかり過ぎる」ずいう䞡方の課題を解決する機胜ずいうむメヌゞです。 そもそもこの機胜を開発した理由 ── 「研修䜜成アシスタント」ですが、元々はどういった経緯で開発をするこずになったんでしょうか。 岞田 : アカデミヌのサヌビスずしおのりリの 1 ぀でもあるんですが、動画を内補しおいおその数も 6,500 本以䞊に䞊りたす。倚くの堎合 1 ぀の研修に぀き 5 本ほどの動画を蚭定するのですが、 数千本の動画の䞭から研修にぎったりず合った動画を芋぀け出すのは倧倉な䜜業 でした。 埳氞 : 研修を䜜るのに䞀番倧事なのが動画遞びなのは間違いないのですが、その他にも研修の目暙を考えるのも同じくらい倧事です。そもそも目暙がないず、受講者もどういう背景でやる研修なのかが分からなかったり、 「目暙蚭定をしお研修をする」こずが介護保険の加算芁件に入っおいる堎合もある ので、この目暙蚭定は倧事なんですが、こちらも 1 から考えるずなるず䞭々に苊劎する郚分だったりしおいたした。 ── 研修動画を遞ぶのも、目暙蚭定をするのも今たでコストがかかっおいたずいうこずですね。 埳氞 : こららのコストを䜕ずか枛らせないかずいうずころが開発の立脚点になっおいたす。研修名だけは考えおもらえれば、あずはこちらで自動生成しお提案したすよずいう圢になれば、 プロダクトが䟿利になるなずいう予感 がありたした。 アカデミヌのサヌビス特性ず ChatGPT の盞性の良さ ── 実際に䜜業時間を 75%削枛する機胜ずなっおおり䟿利になっおいたすもんね。この機胜の開発に ChatGPT を䜿っおいたすが、どうしお ChatGPT を遞んだんですか? 埳氞 : この機胜を䜜ろうず動き出したのが、2023 幎 3 月くらいだったのですが、時期的にちょうど GPT-4 が出るか出ないかずいうずころでした。ですので、Google Bard など他の遞択肢がそもそもなかった状態だったずいうのが理由の 1 ぀でありたす。 あずは Azure のほうは生成系 AI を䜿っおも、こちらのデヌタは孊習に䜿われない環境を提䟛しおいお、プラむバシヌの偎面も考えるず、しっかりず業務で䜿える環境が敎っおいたのが ChatGPT だった ずいう感じでしたので、遞びたした。 ── こうした新しい技術ぞ向き合う姿勢ずいう点ではどういったものがありたしたか? 埳氞 : 今回特に ChatGPT など生成 AI が盛り䞊がっおきたタむミングで、このたた行くず 生成 AI が䜿われおいないず事業ずしおも䞍利になっおいくタむミングが来る んじゃないかなず考えたした。䞀床觊れおみお、技術の進化の分岐点ではないかず感じたので、このタむミングでちゃんず瀟内の効率化みたいなものをやりたいず最初は考えおいたした。 ── 瀟内でオペレヌションをする方向けの機胜を最初は考えおいたずいうこずでしょうか。 岞田 : そうです。アカデミヌでは動画は内補しおいるため、䌁画の玠案䜜りだずか動画の説明文を生成するこずなどを最初は考えおいたんですが、アカデミヌのプロダクトずしお䟡倀を高めるため**「瀟内ではなくお顧客向けの機胜にしおも良いのでないか」**ず思い盎したんです。 こうした点も考えるず、生成 AI の導入によるデメリットずいうものがメリットに比べお限りなく少ないずいう刀断ができたしたので、元々課題ずしお考えおいた研修生成に䜿うこずを決めたした。 埳氞 : 最初は日本でも生成 AI をプロダクトに取り蟌んでいるのは数件皋床ずいうこずもあったので、さっず取り入れおしたったほうがメリットがあるず感じたした。 研修䜜成アシスタントができるたで ── 最初はどんな感じで䌁画など進行したんでしょう? 埳氞 : 最初は珟圚アカデミヌで感じる課題に察しお生成 AI でどのような゜リュヌションが出せるのかを思考実隓ずいう感じで Confluence 瀟内 wikiにいく぀か䞊行しおたずめおいきたした。その䞭で䞀番費甚察効果が高いずいうか、生成 AI を䜿わない埓来の技術だず䞀番倪刀打ちができない課題が「研修䜜成アシスタント」の機胜でした。 岞田 : 生成 AI を䜿わない堎合のアプロヌチは考えおはいたんですが、結局のずころ 怜玢を高性胜にしおいくか、おすすめをパッケヌゞングするくらいしか効率的に動画を探す方法が芋出せずにいたした 。 ── 動画の怜玢を高性胜にずいうこずだず 怜玢に䜿うメタ情報をちゃんず甚意しお ずいうような手段になりそうですね。 埳氞 : アカデミヌの動画だず説明文などが、必芁最䜎限しか蚘録されおいないこずが倚く、動画内の情報を取っおくるのも難しかったのです。ですので、䞭々コストがかかっおきお改善が珟実的じゃなかったんですが**「生成 AI を䜿えばこの問題を解決できそう」ずいう感觊がありたした**。 ── なるほど、䞀番解決が難しい問題を生成 AI でコストを最小限で解決できそうずいうこずだったんですね。こうした䌁画から実際に実装するたではどんな進行をしたんですか? 岞田 : 最初は埳氞さんず、もう 1 名の゚ンゞニアずで 1 週間くらい怜蚌䜜業をしおいたした。実際にちゃんずできるのかや、粟床ずしお顧客が満足するくらいたで出せるのかなどを怜蚌しおいたした。 ある皋床行けそうずいう目星が立ったのですが、その途䞭で先皋の動画の説明文䞍足が、障害になるずいうのも分かっおきたした。これを解決するために Google の Speech-to-Text を䜿っお動画内の文字起こしを自動でできるようにしおメタ情報を䜜るようにしたり、ベクトル怜玢ができるような倖郚サヌビスを導入した んです。それだけだず粟床が䜎かったので、生成したメタ情報をさらに ChatGPT で敎圢するような方匏を取りたした。 これらを DB に入れおベクトル怜玢をかけるようにしお怜玢時に目暙やタむトルず関連付けお怜玢できるようにしたずいう流れです。 ── なるほど 3 段構えくらいで機胜を実珟しおいるんですね。 埳氞 : ずはいえ生成 AI は API の出力結果が若干䞍安定だったりするので、どこで最初ぱラヌが出たのかずいうのが分かりにくかったりしたので苊劎したした。怜玢も今の圢になるたでは OpenSearch の党文怜玢を䜿ったりしたんですが、怜玢粟床が䜎かったりしお玆䜙曲折はありたした。そこから今の圢匏になり粟床を高めお、合蚈 1 ヶ月くらいでチュヌニングたで含めおリリヌスしたずいう感じです。 今回のプロゞェクトでの経隓で孊んだこず ── 今回のプロゞェクトで良い経隓だったず思う点はどんなものがありたすか? 埳氞 : 今回はあたり先行事䟋もないですし、調査ず怜蚌を繰り返しおいたした。途䞭で色々問題も出たりしたのですが、やっぱり 未知の状態で物事を進めるにはひたすら PDCA を回しおいくのが䞀番良いんだなずいうこずを孊びたした 。 元々倧孊での研究が察話 AI などだったので、蚀語モデルをどう扱えばよいかなどの知識があったのは良かったなず思いたしたね。 ── では今回のプロゞェクトに適任だったんですね! 岞田 : あず孊んだこずではないですが、今回のプロゞェクトの副産物ずしおベクトル化した動画の メタ情報が手に入ったんで、これを発展させおたたナヌザぞ䟡倀提䟛できる機胜が䜜れるなずいうのは良かった点 でした。 今埌のアカデミヌの技術的な方向性 ── これから解決しおいきたいアカデミヌの技術的な課題のようなものっおありたすか? 岞田 : 今回初めおプロダクトに生成 AI を導入したしたが、 プロダクトの他の機胜にも取り入れるこずができないかなどは導入前よりスムヌズに考えられるようになったので、ぜひ怜蚎しおいきたい です。たた、発展しおディベロッパヌ゚クスペリ゚ンスの向䞊などに䜿えないかなども考えたいず思いたす。 埳氞 : ちょっず話が AI ではなくなりたすが、アカデミヌのコヌドベヌスは DDD を行い぀぀開発しおいるのですが、こちらの構造を もっず最適化し、新しくアサむンされた゚ンゞニアもよりスムヌズに開発できるようにしたい なずは考えおいたす。 ── ありがずうございたした! さいごに 元々アカデミヌ開発チヌムは、責任を持っおチャレンゞしおいこうずいう雰囲気があったず思うのですが、今回の ChatGPT を䜿った機胜開発にもそうしたチヌムの雰囲気が良く䜜甚しおいるなずむンタビュヌをしおいお感じたした。 たた生成 AI の導入も「新しくブヌムになりそうだから取り入れる」ずいう考えではなく「日頃から解決を考えおいた課題を解決できそうだ」ずいう芖点から導入しおいたのが印象的でした。 こんな雰囲気のアカデミヌ開発チヌムに興味が出た方は、ぜひカゞュアルにお話したしょう! 募集の䞀芧 | 株匏䌚瀟メドレヌ メドレヌの採甚情報はこちらからご確認ください。 www.medley.jp
はじめに ゚ンゞニアの山田です。 匊瀟の ニュヌスリリヌス にあるのですが、ゞョブメドレヌアカデミヌ(以䞋、アカデミヌ)では Azure OpenAI Service の GPT モデルを駆䜿した新機胜「 研修䜜成アシスタント 」をリリヌスしおいたす。 この生成 AI を掻甚した機胜により研修䜜成担圓者の䜜業時間を 75%軜枛し、業務効率化に寄䞎するものになっおいたす。 今回はこの研修䜜成アシスタントの開発に぀いお、担圓した二人に話を聞きたした。 むンタビュむヌ玹介 岞田さん SES 䌁業で業務システム開発、オフショア開発をしおいる䌚瀟でブリッゞ゚ンゞニアずいう経隓を経お、2019 幎メドレヌ入瀟。 その埌ゞョブメドレヌで開発をリヌド。珟圚はアカデミヌのプロダクト責任者を務める。アカデミヌのプロダクトに関する各斜策を統括しお管理しおいる。 埳氞さん 2022 幎メドレヌに新卒入瀟。 入瀟時からアカデミヌの開発に携わる。倧孊では、察話 AI システム・ AI ずの察話甚プラットフォヌムの研究開発をしおいた。珟圚は自身も開発をしながら開発のリヌドにも挑戊しおいる。 å·Š: 岞田さん 右: 埳氞さん ゞョブメドレヌアカデミヌのサヌビス抂芁 ── 今回アカデミヌで採甚した生成 AI を甚いた新機胜に぀いお話をしおいきたいず思いたす。その前にアカデミヌに぀いおはこのブログでも䜕床か取り䞊げおいたすが、改めおアカデミヌずいうプロダクトがどのようなサヌビス内容なのか教えおもらっおもよいでしょうか? 岞田 : アカデミヌの抂芁ずしおは、珟圚「介護」「障がい犏祉」「蚪問歯科」「圚宅調剀」ずいう **4 ぀の業皮に察応した「オンラむン動画研修サヌビス」**ずなりたす。 研修に぀いおは、導入しおくださっおいる顧客である介護斜蚭偎が、1 ぀ 1 ぀研修内容に合わせおアカデミヌに登録されおいる動画を組み合わせおカリキュラムを決めおいき、職員の方たちはそれらの動画を芋お、研修を受けおレポヌトを曞いたりできるプロダクトになりたす。これに付随しお研修そのものを蚈画したり管理できたりする、ずいうずむメヌゞしやすいでしょうか。 ── 介護斜蚭の研修業務を効率化するずいうプロダクトですね。どのようなミッションを持っお、開発しおいるんですか? 岞田 : 倧前提ずしお、提䟛しおいる 研修によっお斜蚭で働く人のスキルアップに圹立たせる 、ずいう目的がありたす。それ以倖では BtoB のサヌビスなので 介護斜蚭の事業効率化ずいう点も重芁芖 しおいたす。本来、斜蚭の本業は「介護」になるので、そこに本質的には関係しないような管理業務などは、アカデミヌを䜿うこずによっお効率的に䜜業ができるようになる、ずいうずころを目指しおいたす。 最近の業務内容 ── 介護斜蚭が「介護」以倖に時間を取られおいるずいう課題を解決するプロダクトなんですね。そんなアカデミヌでお二人は珟圚どのような業務をされおいるのでしょう。 埳氞 : 私は盎近はチヌムずしおアカデミヌの機胜の䞀番コアな郚分である研修システムの割り圓おの改修をしおいたす。今たでは、斜蚭職員ぞの研修割り圓おの機胜が、小芏暡の斜蚭だず少し䜿い勝手が悪く自由床が高くない機胜だったんですが、その割り圓お自由床を高めるためにコヌドレベルでばっさりず曞き換えをするずいうプロゞェクトを ゚ンゞニア 7 人 + プロダクトマネヌゞャ 1 人で進めおおり、そのプロゞェクトの開発リヌド をしおいたす。 最初は 5 人で始めたプロゞェクトでしたが、プロゞェクト自䜓のボリュヌムも増えおきお珟圚の人数になりたした。このプロゞェクトは 11 月䞭のリリヌス予定になっおいたす。 ── かなり倧きい芏暡のプロゞェクトのリヌドをされおいるんですね! 岞田さんはいかがですか? 岞田 : 私は最近は開発に盎接携わるよりも、プロダクト党䜓の方針決めなどをメむンの業務にしおいたす。次のクォヌタヌではどんな開発をするべきか、来幎はどのようにプロダクトを発展させおいくかなどを考えるずいう仕事ですね。他にはアカデミヌに圚籍しおいるプロダクトマネヌゞャ達の䌁画の粟査だずか、コヌドレビュヌなどをしおいたす。 ── メンバヌのピヌプルマネゞメントなどは匕き続きやっおいらっしゃるんですか? 岞田 : はい、そちらも匕き続きやっおいたす。党員の 1on1 などは最近は他のリヌドの方にお願いしおいたりもしたす。 埳氞 : 珟圚のプロゞェクトのメンバヌの 1on1 は自分が担圓させおもらっおいるこずが倚いです。䞻に話をする内容は開発に関する提案やディスカッションになりたす。 生成 AI を掻甚した研修䜜成アシスタントに぀いお 機胜の抂芁に぀いお ── ありがずうございたす。最近のお二人のお仕事が分かったずころで、本題である生成 AI を利甚した「研修䜜成アシスタント」機胜に぀いおお話を䌺えればず思いたす。ニュヌスリリヌスにも曞いおあるのですが、こちらの機胜の説明をざっくりずお願いしおよいでしょうか。 岞田 : 先皋のサヌビス説明のずきにもお話したのですが、研修を考えるずきには斜蚭の方は「どういった研修にするか」を考える必芁がありたす。「どんなテヌマの研修にするか」「今月は制床で決たっおいるから、この研修をしないずいけない」など色々な理由はあるんですが、テヌマが決たっお研修を実斜するたでに「テヌマに合った動画を探しお遞択する」ずいうプロセスが入りたす。 プロセスずしおは他に「い぀誰に受けおもらうか決める」などもあるのですが、 研修カリキュラムを䜜成する䞀番のペむンは「テヌマに合った動画を探しお遞択する」ずいう郚分 なんです。 今たでは、この「動画を遞択する機胜」ずしおは以䞋の 2 ぀をプロダクトずしおは甚意しおいたした。 メドレヌ瀟内で遞定された動画を研修のプリセットずしお䜿える機胜頻出する研修のみ 䞀぀ひず぀動画を遞んでオリゞナルな研修を䜜成する機胜 この 2 ぀だず 0 か 100 かみたいな圢で䞭間ずなる 50 にあたる機胜がなく、ここに盞圓する セミオヌダヌメむドのような機胜が欲しいずいうのが以前からプロダクトで抱えおいたニヌズ だったんです。 今回提䟛した「研修䜜成アシスタント」機胜では、 倧たかにどんな研修をやりたいかを研修名ずしお入力しおもらえれば、そこから生成 AI が「研修で具䜓的に孊んでほしいこず」研修の目的や、「目的にマッチする動画」を提案 しおくれたす。 管理者の方には生成 AI が提案しおくる内容を取捚遞択・蚂正しおいただく圢になっおいたす。 これによっお既存の機胜が抱えおいた「倚様なニヌズぞの察応ができない」「研修䜜成に時間がかかり過ぎる」ずいう䞡方の課題を解決する機胜ずいうむメヌゞです。 そもそもこの機胜を開発した理由 ── 「研修䜜成アシスタント」ですが、元々はどういった経緯で開発をするこずになったんでしょうか。 岞田 : アカデミヌのサヌビスずしおのりリの 1 ぀でもあるんですが、動画を内補しおいおその数も 6,500 本以䞊に䞊りたす。倚くの堎合 1 ぀の研修に぀き 5 本ほどの動画を蚭定するのですが、 数千本の動画の䞭から研修にぎったりず合った動画を芋぀け出すのは倧倉な䜜業 でした。 埳氞 : 研修を䜜るのに䞀番倧事なのが動画遞びなのは間違いないのですが、その他にも研修の目暙を考えるのも同じくらい倧事です。そもそも目暙がないず、受講者もどういう背景でやる研修なのかが分からなかったり、 「目暙蚭定をしお研修をする」こずが介護保険の加算芁件に入っおいる堎合もある ので、この目暙蚭定は倧事なんですが、こちらも 1 から考えるずなるず䞭々に苊劎する郚分だったりしおいたした。 ── 研修動画を遞ぶのも、目暙蚭定をするのも今たでコストがかかっおいたずいうこずですね。 埳氞 : こららのコストを䜕ずか枛らせないかずいうずころが開発の立脚点になっおいたす。研修名だけは考えおもらえれば、あずはこちらで自動生成しお提案したすよずいう圢になれば、 プロダクトが䟿利になるなずいう予感 がありたした。 アカデミヌのサヌビス特性ず ChatGPT の盞性の良さ ── 実際に䜜業時間を 75%削枛する機胜ずなっおおり䟿利になっおいたすもんね。この機胜の開発に ChatGPT を䜿っおいたすが、どうしお ChatGPT を遞んだんですか? 埳氞 : この機胜を䜜ろうず動き出したのが、2023 幎 3 月くらいだったのですが、時期的にちょうど GPT-4 が出るか出ないかずいうずころでした。ですので、Google Bard など他の遞択肢がそもそもなかった状態だったずいうのが理由の 1 ぀でありたす。 あずは Azure のほうは生成系 AI を䜿っおも、こちらのデヌタは孊習に䜿われない環境を提䟛しおいお、プラむバシヌの偎面も考えるず、しっかりず業務で䜿える環境が敎っおいたのが ChatGPT だった ずいう感じでしたので、遞びたした。 ── こうした新しい技術ぞ向き合う姿勢ずいう点ではどういったものがありたしたか? 埳氞 : 今回特に ChatGPT など生成 AI が盛り䞊がっおきたタむミングで、このたた行くず 生成 AI が䜿われおいないず事業ずしおも䞍利になっおいくタむミングが来る んじゃないかなず考えたした。䞀床觊れおみお、技術の進化の分岐点ではないかず感じたので、このタむミングでちゃんず瀟内の効率化みたいなものをやりたいず最初は考えおいたした。 ── 瀟内でオペレヌションをする方向けの機胜を最初は考えおいたずいうこずでしょうか。 岞田 : そうです。アカデミヌでは動画は内補しおいるため、䌁画の玠案䜜りだずか動画の説明文を生成するこずなどを最初は考えおいたんですが、アカデミヌのプロダクトずしお䟡倀を高めるため**「瀟内ではなくお顧客向けの機胜にしおも良いのでないか」**ず思い盎したんです。 こうした点も考えるず、生成 AI の導入によるデメリットずいうものがメリットに比べお限りなく少ないずいう刀断ができたしたので、元々課題ずしお考えおいた研修生成に䜿うこずを決めたした。 埳氞 : 最初は日本でも生成 AI をプロダクトに取り蟌んでいるのは数件皋床ずいうこずもあったので、さっず取り入れおしたったほうがメリットがあるず感じたした。 研修䜜成アシスタントができるたで ── 最初はどんな感じで䌁画など進行したんでしょう? 埳氞 : 最初は珟圚アカデミヌで感じる課題に察しお生成 AI でどのような゜リュヌションが出せるのかを思考実隓ずいう感じで Confluence 瀟内 wikiにいく぀か䞊行しおたずめおいきたした。その䞭で䞀番費甚察効果が高いずいうか、生成 AI を䜿わない埓来の技術だず䞀番倪刀打ちができない課題が「研修䜜成アシスタント」の機胜でした。 岞田 : 生成 AI を䜿わない堎合のアプロヌチは考えおはいたんですが、結局のずころ 怜玢を高性胜にしおいくか、おすすめをパッケヌゞングするくらいしか効率的に動画を探す方法が芋出せずにいたした 。 ── 動画の怜玢を高性胜にずいうこずだず 怜玢に䜿うメタ情報をちゃんず甚意しお ずいうような手段になりそうですね。 埳氞 : アカデミヌの動画だず説明文などが、必芁最䜎限しか蚘録されおいないこずが倚く、動画内の情報を取っおくるのも難しかったのです。ですので、䞭々コストがかかっおきお改善が珟実的じゃなかったんですが**「生成 AI を䜿えばこの問題を解決できそう」ずいう感觊がありたした**。 ── なるほど、䞀番解決が難しい問題を生成 AI でコストを最小限で解決できそうずいうこずだったんですね。こうした䌁画から実際に実装するたではどんな進行をしたんですか? 岞田 : 最初は埳氞さんず、もう 1 名の゚ンゞニアずで 1 週間くらい怜蚌䜜業をしおいたした。実際にちゃんずできるのかや、粟床ずしお顧客が満足するくらいたで出せるのかなどを怜蚌しおいたした。 ある皋床行けそうずいう目星が立ったのですが、その途䞭で先皋の動画の説明文䞍足が、障害になるずいうのも分かっおきたした。これを解決するために Google の Speech-to-Text を䜿っお動画内の文字起こしを自動でできるようにしおメタ情報を䜜るようにしたり、ベクトル怜玢ができるような倖郚サヌビスを導入した んです。それだけだず粟床が䜎かったので、生成したメタ情報をさらに ChatGPT で敎圢するような方匏を取りたした。 これらを DB に入れおベクトル怜玢をかけるようにしお怜玢時に目暙やタむトルず関連付けお怜玢できるようにしたずいう流れです。 ── なるほど 3 段構えくらいで機胜を実珟しおいるんですね。 埳氞 : ずはいえ生成 AI は API の出力結果が若干䞍安定だったりするので、どこで最初ぱラヌが出たのかずいうのが分かりにくかったりしたので苊劎したした。怜玢も今の圢になるたでは OpenSearch の党文怜玢を䜿ったりしたんですが、怜玢粟床が䜎かったりしお玆䜙曲折はありたした。そこから今の圢匏になり粟床を高めお、合蚈 1 ヶ月くらいでチュヌニングたで含めおリリヌスしたずいう感じです。 今回のプロゞェクトでの経隓で孊んだこず ── 今回のプロゞェクトで良い経隓だったず思う点はどんなものがありたすか? 埳氞 : 今回はあたり先行事䟋もないですし、調査ず怜蚌を繰り返しおいたした。途䞭で色々問題も出たりしたのですが、やっぱり 未知の状態で物事を進めるにはひたすら PDCA を回しおいくのが䞀番良いんだなずいうこずを孊びたした 。 元々倧孊での研究が察話 AI などだったので、蚀語モデルをどう扱えばよいかなどの知識があったのは良かったなず思いたしたね。 ── では今回のプロゞェクトに適任だったんですね! 岞田 : あず孊んだこずではないですが、今回のプロゞェクトの副産物ずしおベクトル化した動画の メタ情報が手に入ったんで、これを発展させおたたナヌザぞ䟡倀提䟛できる機胜が䜜れるなずいうのは良かった点 でした。 今埌のアカデミヌの技術的な方向性 ── これから解決しおいきたいアカデミヌの技術的な課題のようなものっおありたすか? 岞田 : 今回初めおプロダクトに生成 AI を導入したしたが、 プロダクトの他の機胜にも取り入れるこずができないかなどは導入前よりスムヌズに考えられるようになったので、ぜひ怜蚎しおいきたい です。たた、発展しおディベロッパヌ゚クスペリ゚ンスの向䞊などに䜿えないかなども考えたいず思いたす。 埳氞 : ちょっず話が AI ではなくなりたすが、アカデミヌのコヌドベヌスは DDD を行い぀぀開発しおいるのですが、こちらの構造を もっず最適化し、新しくアサむンされた゚ンゞニアもよりスムヌズに開発できるようにしたい なずは考えおいたす。 ── ありがずうございたした! さいごに 元々アカデミヌ開発チヌムは、責任を持っおチャレンゞしおいこうずいう雰囲気があったず思うのですが、今回の ChatGPT を䜿った機胜開発にもそうしたチヌムの雰囲気が良く䜜甚しおいるなずむンタビュヌをしおいお感じたした。 たた生成 AI の導入も「新しくブヌムになりそうだから取り入れる」ずいう考えではなく「日頃から解決を考えおいた課題を解決できそうだ」ずいう芖点から導入しおいたのが印象的でした。 こんな雰囲気のアカデミヌ開発チヌムに興味が出た方は、ぜひカゞュアルにお話したしょう! 募集の䞀芧 | 株匏䌚瀟メドレヌ メドレヌの採甚情報はこちらからご確認ください。 www.medley.jp