開発チームでインターンをしています、大平 紘基 (@kokitecture) です。
8月25日に2回目となる、スペースマーケットさんとランサーズのコラボイベントを開催しましたので、今回その内容を紹介させて頂きます。ちなみに第1回目はこちら!
今回のテーマは「シェアリングエコノミーを支えるインフラ/SRE」です!
両社ともにシェアリングエコノミーのプラットフォームを提供していますが、それらを支えるインフラ/サーバーは大きく異なっています。 それぞれどのような課題と向き合い、取り組みを進めているのかをご紹介する内容になっています。
それでは、よろしくお願いします!
タイムスケジュール
https://lancersrecruit.connpass.com/event/219434/
今回のイベントは、以下のようなタイムスケジュールで実施しました。
企業紹介(15分)
- 株式会社スペースマーケット
- ランサーズ株式会社
勉強会(60分)
- メインAPIのRailsバージョンを4.2から6.0に上げた話 / スペースマーケット社 鈴木さん
- Go + SQS + Fargateで速度、品質、低コストを実現する / スペースマーケット社 土屋さん
- MENTAをAWSに移行して振り返る(ECS/Fargate + Laravel編) / ランサーズ社 安達さん
- SendGrid用のメールモックコンテナを作った話 / ランサーズ社 金澤さん
Q&A, 雑談(15分)
今回は第2回ということで、SREや技術基盤の内容が中心となっており、最後の雑談の部分でも技術的な話題について盛り上がりました。
それではそれぞれについて、以下で紹介させて頂きます!
企業紹介
はじめにスペースマーケットさんとランサーズの両社の会社説明をしていただきました。
スペースマーケットとは?
まずはスペースマーケットさんはCTOの斉藤さん (@araki3106) より、サービスと会社の概要を説明して頂きました。
スペースマーケットさんは、スペースを貸したい方と借りたい方を結びつける、プラットフォームを運営されています。
スペースマーケットさんの技術スタックは以下の通りです。サービス品質と開発効率の最大化を目指し、事業の成長に合わせて、アーキテクチャをどんどん作り変えていく文化について紹介されていました!スペースマーケットさんのより詳しい情報はこちら!
ランサーズとは?
次にランサーズはVPoEの倉林さん (@terukura) より、サービスと会社の概要を説明して頂きました。
ランサーズは、仕事をお願いしたい企業さんとフリーランスの方々をマッチングする、安心して取引して頂く為の機能群を提供するプラットフォームを中心に運営しています!
ランサーズの技術スタックは以下の通りです。ランサーズは、” 個のエンパワーメント ” をミッションとしており、現在は「働く」というキーワードを軸にしていますが、ミッションの実現の為にはどんどんビジョンもアップデートしていく想定です!
勉強会
いよいよメインテーマである、それぞれの発表のスタートです
メインAPIのRailsのバージョンを4.2 → 6.0に上げた話
まずはスペースマーケットさんの技術部 SREチームから、鈴木 景介さんに登壇して頂きました。
登壇内容としましては、スペースマーケットさんのMain APIのRailsのバージョンを、4.2から6.0に一気にバージョンアップした際のお話をして頂きました。
他社の実績があることや効率的なバージョンアップを目指し、メジャーバージョンを2つ一気に挙げられたそうです。
バージョンアップに伴い500件以上のRSpecを改善したお話や、リリースの際にAWSのALBを用いたBlue/Greenデプロイを行ったというお話がとても勉強になりました。
SendGrid用の メールモックコンテナを作った話
次にランサーズのSREチームから、金澤さん (@yakitori009) に登壇して頂きました。
登壇内容としましては、ランサーズのメールサーバーのSendGridへの移行に伴い、検証環境で用いるメールモックコンテナ用のOSSを自作した際のお話です。
メールモックとは、ダミーのメール送信サーバーで、実際に送信はせず表示だけ行うコンテナであり、開発環境からお客様にメールを送信するなどの、メールの誤送信問題を解決する目的で利用します。しかし、現在提供されているメールモックコンテナの多くは、SMTP通信に対応しているが、SendGridに対応しているものは少ない状況でした。またこれまで利用していたSendGrid用のメールモックコンテナに関しても、利用を進める上で追加の要望が増えてきたことから、金澤さんが自前でSendGrid対応メールモックコンテナを作ることにしました。(すごい…!
メールモックにはコンテナの軽量化を目的に、MailDevを採用しています。SendGridのAPI部分はGolang × echoで自作しています。
既存のメールモックコンテナに課題を感じ、マルチアーキテクチャへ対応したOSSを自作したという、とてもチャレンジングな取り組みに感銘を受けました。
Go + SQS + Fargateで速度、品質、低コストを実現する
3人目は、スペースマーケットさんの 技術部 BEチームから、土屋 陽介さんに登壇して頂きました。
登壇内容としましては、Go + SQS + Fargateのシステム構成に移行することで、サービスの新たな予約機能への対応と運用コストを最適化した、というお話をして頂きました。
サービスへの新たな予約導線の追加に伴い、サーバーへ既存の数十倍のリクエストが生じてしまい、それに伴うUXへの影響の解消の為に、アーキテクチャの変更に至ったそうです。
GoやSQS、Fargateは上記の課題解消に向け、適材適所の対応する為に技術選定されていました。
MENTAをAWSに移行して振り返る(ECS/Fargate + Laravel編)
https://speakerdeck.com/rvirus0817/mentawoawsniyi-xing-sitezhen-rifan-ru-laravelbian
最後にランサーズのSREチームから、あだちんさん(@adachin0817) に登壇して頂きました。
登壇内容としましては、さくらのクラウドで運用していたMENTAのサーバーの苦労話や、全てAWSに移行してECS/Fargateでのコンテナ運用に変わり、今回初となるコンテナでのオートスケールなどにもチャレンジしたについてお話頂きました。ちなみに自分はMENTAを利用して、あだちんさんにインフラ/サーバー周りをフォローしてもらいましたが、MENTAのバックグラウンドも知ることができたので感慨深いです!
個人的には、ECS Scheduled Tasksの毎分バッチで、NAT Gatewayの通信費が肥大化していた苦労話が印象的でした。その時の改善としては、ECRのpullをNat Gateway経由ではなく、VPCエンドポイント経由に変更することで、大幅なコストダウンを実現できたそうです。
登壇最後には、弊社の社内ツールや会計システムのインフラはECS/Fargateに移行済みなので、今後はランサーズ本家のコンテナ移行にチャレンジしたい、と仰っていました。(頑張ってください!
Q&A, 雑談
最後はそれぞれの登壇内容を踏まえて、各社の開発環境やインフラに対して、それぞれ質問を行っていました。
ここでは視聴者の方から頂いた具体的な技術的質問への回答や、両社の技術スタックに関してカジュアルに雑談をされていました。
各サービスを支えるインフラやその選定に至った背景など、各社の実例を交えた貴重なお話を聞くことができました!
さいごに
今回のイベントでは、各社のインフラに対する課題やその解決から得た学びの共有ができました。
スペースマーケットさんとランサーズ、両社それぞれの技術事業やその解決など、日々新しいチャレンジを積極的に行っています。
両社ともに、一緒にそれらを解決してくれるエンジニアを募集しておりますので、興味がある方は、是非お声がけください!!
また9月8日(水)には、SUPER STUDIOさんとのエンジニアコラボ企画としまして、各社の技術的取り組みについてご紹介するイベントもございます。 新卒エンジニアや未経験エンジニアの方にも参考になる内容となりますので、こちらも是非ご参加ください!
https://lancersrecruit.connpass.com/event/221994/
最後まで読んでいただき、ありがとうございました!