DELISH KITCHENのシステムアーキテクチャ
アーキテクチャの工夫ポイント
アーキテクチャ選択の背景や意図
DELISH KITCHENには、ユーザーデータよりマスターデータへのアクセスが多い(特に取得系)、 お昼や⼣⽅など料理を⾏う時間のアクセスが多い、画像や動画などのメディアを多く扱っているなどのサービスとしての特徴があります。
DELISH KITCHENではこの特徴に沿ってアーキテクチャを選択しており、例えば、マスターデータへのアクセスに関してはキャッシュを⾏うことでDBへの負荷を軽減しています。 その他には、時間帯によるアクセスの増減に関してはオートスケーリングで対応していたり、メディアへのアクセスに関してはCloud Front経由でアクセスを⾏うことでコンテンツをユーザー様に⾼速に届けるような⼯夫をしています。 また、api serverの責務が⼤きくなってきたため、ライブ配信サービスや課⾦システムといったものは本体から切り出して別サービスとして稼働させています。
現在のアーキテクチャの課題と今後の改善予定
Elasticache for Redisを使⽤したリモートキャッシュで表されていますが、キャッシュはElasticacheだけでなくfargateのメモリにも載せています。 fargate上のメモリにキャッシュを載せていることが原因でパフォーマンスに影響があるため、Elasticacheへの移⾏を実施中です。
その他にも、プッシュ通知などは運⽤が安定してからほとんど改修されていないのですが、年々キューに積んでから実際に通知されるまでの時間がかかるようになっているため、今後の改善が必要になってきています。
◆執筆:DELISH KITCHEN開発部 ヘルスケアグループ リーダー / 本丸真人
【サービス公式サイト】
https://delishkitchen.tv/
アーキテクチャを構成するツール
会社情報
株式会社エブリー
エブリーは「前向きなきっかけを、ひとりひとりの日常にとどける。」をミッションに、ライフスタイルに根ざした事業を展開しています。3,000万人以上が利用しているレシピ動画サービス「 DELISH KITCHEN」をはじめ「トモニテ」「TIMELINE」を運営。オンライン・オフライン関係なくパーソナライズ化された最適な情報を届け、日々の生活における不安や悩みを解消することを目指しています。