2022.11.15
#クリエイターズインタビュー No.71カヤックのSRE伴走支援が『北欧、暮らしの道具店』にもたらしたもの
「サービス運用におけるSREの必要性を感じながらも、なかなか手が回らない。」多くの企業が抱える悩みに対して、カヤックはどのような協業や技術的支援を行っているかをレポート。本記事では、カヤックSREチームの藤原、株式会社クラシコムのエンジニア佐々木さまと一緒に、『北欧、暮らしの道具店』へのSRE伴走支援で得られた成果や変化を振り返ります。
◆インフラの不安を解消し、オリジナルの体験を届けるシステムを目指したい
ークラシコムさんが運営する『北欧、暮らしの道具店』ですが、2007年のスタート時はASPのECサービス(カラーミーショップ)から始まり、その後、AWSで自社開発システムを構築していったのだとか。
佐々木
私が2017年にクラシコムに入社した際には、すでに自社開発システムに移行していました。データベースを見ると、カラーミーショップから自社開発システムに移行した時の名残も少し感じられますね。
ーあえて、システムを内製したのにはどういった背景があるのでしょうか。
佐々木
色々な背景はありますが、やはり、ゼロからシステムを内製した方が自由度が高いということがあると思います。
ー御社社長の青木さんのブログには、“既存のEC・メディア事業が抱える不便さを解決し、もっと自由に『北欧、暮らしの道具店』らしいオリジナルの体験をお客さまに提供していきたいから”と、書かれていましたね。
佐々木
入社当時に聞いた、「カートボタンが付いている雑誌をつくりたい」という青木の言葉が印象的でしたね。当時は雑誌のようなメディアと物販をかけ合わせたWEBサービスは少なかったので、すごく面白いなと思いました。
『北欧、暮らしの道具店』は物販からスタートしましたが、年を重ねるごとに、読みもの、ラジオ番組、映画やドラマなど、どんどん新しいコンテンツが増えています。今後も新しい領域にチャレンジしていくと思うので、その変化にしっかり対応できるシステムをつくりたいと思っているんです。
ー2019年からカヤックのSREチームと協業されていますが、そもそもなぜSREをやりたいと思ったのですか。
佐々木
実はインフラに対して、大きな不安がありました。というのも、3人いたエンジニアの内、インフラの担当者が抜けてブラックボックスな部分があったんです。うかつに触れずそのままにしていれば、OSのサポート期限が切れて突然動かなくなったり、セキュリティリスクが高まる可能性がありました。
その頃はSREに専念したくてもエンジニアのリソースが限られていましたし、システムをつくり変えるにしても最適解が分かりませんでした。そんな時、ちょうど弊社に社会人インターンで来ていたカヤックさんから提案をいただいて、カヤックさんのSREチームとの協業が始まったんです。
◆オペレーションコストを下げ、サービスの安全性を強化
ーSREの取り組みのひとつとして、既存システムを見直し、1年ほどかけてAmazon ECSへ移行されたのですよね。
藤原
クラシコムさんのシステムはある程度マネージドな状態ではあったのですが、再現性に関してちょっと怪しいところがあったんです。設定を書き換えてもうまく動くか分からなかったり、変更すると違うところが壊れるかもしれなかったりという怖さがありました。
そこで、上で動いている内製したWEBアプリケーションはそのままにして、下の構成管理の部分を新しいコンテナベースの仕組みに載せ替えていきました。
ー今やコンテナベースの時代で、カヤックが運用や開発している自社プロダクトはほぼECSだと聞きました。
藤原
そうですね、2017年頃からプロダクトの新規開発はECSで始めていて、既存のシステムから新技術への置き換えも行っていました。溜まっていたノウハウを、クラシコムさんとの協業にうまく活かすことができたと思います。
佐々木
ECSに移行する前は、サーバーを入れ替える度に1台ずつ手動でサーバーを立てたり外したりしていて、本当に面倒くさかったんです。ECS移行による自動化で、オペレーションコストがかなり下がりました。
藤原
サーバーを入れ替えるのに手動で1台ずつやっていたら、それだけで1日かかりきりになってしまいますもんね。
佐々木
運用の自動化が進むと楽になるし、空いた時間で他にできることが増える。スケールしていく楽しさがありますよね。
さらに、プッシュ通知後の負荷テストや監視部分の見直しもできて、ものすごく安心感が出ました。
藤原
監視のシステムは入っているけれど、アラートが放置されている状況というのは、結構あるあるの話なんです。設定をちゃんと詰めていかないと、アラートが必要ない時に出たり、必要な時に出なかったり、いわゆる「オオカミ少年アラート」になってしまいます。
ひとつひとつのアラートの必要性を確認し、障害が起きた時に気づけなかった場合には新しく追加していきました。どのように数字を見ると異常が見つかるかを話しながら、監視の見直しを2年くらい一緒にやってきて、ある週のミーティングでひとつもアラートの報告がなかったんですよね。うまく回るようになったな、と印象深かったです。
◆カヤックSREチームとの協業で得られたものとは
ー約3年間の協業では、どのような体制でSREに取り組んだのでしょうか。
藤原
まず最初に、インフラ整備などの課題に対して、カヤックのエンジニアが何人か入って実際にコードを書いたり、技術採用の提案を行いました。ただ、カヤックのエンジニアが積極的に手を動かしたのは最初の1年半くらいで、3年経った今はアドバイスを中心に行っています。
佐々木
藤原さんとは週1回ほどのペースでミーティングをして、現状報告や課題の相談をしています。Slackでやり取りしたり、必要であればインフラ構成管理ツールのTerraformに対してレビューをしてもらったりしています。
ー藤原さんがクラシコムさんとの協業の中で意識していることはありますか。
藤原
以前のように、ブラックボックスにならないようにすることです。「最初につくった人がいなくなって、もう触れません」という状況を避けるため、オープンな技術を使いつつ、重要な部分はクラシコムさんが自走できるように意識しました。カヤック側はAWSなどの権限を持たず、必要ならばレビューをして、クラシコムさんに実際に手を動かしてもらっています。
また、『北欧、暮らしの道具店』の土台には安定性を持たせながら、開発者が柔軟に動けるように意識しています。安定性のために決まりをいっぱいつくってガチガチにしてしまうと、アプリケーションを書く人の手が動かなくなってしまいますから。クラシコムさんが目指したい自由度の高い環境を保ち、ビジネスの成長を止めないようにしながらサービスを安定させるバランスを大切にしているんです。その塩梅を考えるのも、SREの面白さですね。
ーあらためて、カヤックとの協業を振り返ってみてどう感じますか。
佐々木
ひとことで言うと「すごい」。知見があってとても頼りになります。昔、Perlで開発していた時期にカヤックさんのテックブログを読んで学びを得ていたので、社長の青木から協業の話を聞いた時は嬉しかったです。
エンジニアリングリソースが少なかったというのもありますが、底上げしてもらえるという期待がありました。実際に、色々アドバイスをもらい、クラシコムのエンジニアにもいい影響が出ています。
ーいい影響というと......?
佐々木
例えば、監視システムのCPUの動きやメモリの動きをミーティングで一緒に見るのですが、藤原さんの観点は全然違い、私たちが気づかないところをズバズバ当てていくんです。すごく勉強になりますね。今度、クラシコムとカヤックさんでトークイベントを開催して、藤原さんにも登壇してもらいたいと思っているんですよ。
藤原
サービスの運用には、モニタリングが重要なんです。現状を確実に把握することで異常にもすぐ気づけるし、次に新しいシステムを入れた時も適切な監視ができるようになります。
そういえば、新しくクラシコムさんに入ったエンジニアたちが、すぐ戦力になってくれるのがすごいですよね。
佐々木
以前だったら、お酒を飲んでも「もし、自分が酔っている時に障害が起きたら......」なんて気を張っていました。少しずつ体制も整ってきて、今はいつ休んでもチームメンバーに任せられる状態になったことが嬉しいです。
実は、ちょうど育児休暇から復帰したところなんです。2ヶ月休めたということは、もう自分はいなくてもいいような......笑。
藤原
まさに、「自分がいなくても大丈夫なシステム」をつくることが最高なんです。
佐々木
なるほど!
ー去年・今年とクラシコムさんでは約20%の社員が育休・産休を取得されたとか。2年連続で、8割の社員で回している状態で売上も上がり、上場しているのはすごいですね! しかも、基本的には残業しない文化なんですよね。
佐々木
はい、時間を有効に使うためにも、SREはやはり重要だと実感しています。次は、セキュリティ周りなど、脆弱性があるかどうかのチェックにもさらに力を入れていきたいと思っています。
不安点を解消し辛い部分を無くしたり、トイルの撲滅ができると、やっぱりすごく気持ちいいです。本当にやりたいことに集中できるようになりました。
現在は動画やドラマに関してはYouTubeにアップしているものを見せていますが、今後はよりコンテンツに没入できるようにしていきたいです。例えば、動画をYouTubeではなく自前で配信してみようかなど、さまざま可能性を探ったり、一歩踏み出す面白さを味わっています。
(取材・文 二木薫)
【ウェビナー】SRE MEET UP!
カヤック×クラシコム 〜15年続くサービスのインフラ強化と個人に頼らないチームづくりのプロセスを振り返る〜12月6日(火)19時から開催