音楽サービスエンジニアmeetup Vol.3 開催レポート

![UNADJUSTEDNONRAW_thumb_8b.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321850/19aa85da-61e5-c768-aeff-e7eaa72e9249.jpeg)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321850/4263c9c9-306d-3760-2044-abc761182a6c.png)

## はじめに
こんにちは、[Wano株式会社](https://wano.co.jp/)のエンジニアの[成川](https://twitter.com/fukubaka0825)と申します。
弊社では、大好評だった前回前々回のイベントに引き続き、今回は弊社オフィスにて、**第3回の音楽エンジニアmeetup**を主催いたしました。

このイベントレポートは、**あくまで僕個人やいちWanoのエンジニア視点でのレポートとなります。**ご了承ください。

今回は、会場からの質問を匿名で集め、発表スクリーンにコメントが流せるサービス**[commentscreen](https://commentscreen.com/)**を使ってみたのでので、その使用した感想もまとめていければと思います。
⬇︎このサービスを利用した実際の発表の様子。(ニコニコ動画世代にはめちゃくちゃ刺さるサービスや。。。)
![UNADJUSTEDNONRAW_thumb_75.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321850/358254bf-50e0-9686-c0a4-ef082ef989bb.jpeg)

~~前回使用した[sli.do](https://www.sli.do/)は一旦クビになりました。~~

[前々回のイベントレポはこちら](https://www.wantedly.com/companies/wano/post_articles/162125)
[前回のイベントレポはこちら](https://qiita.com/fukubaka0825/items/c12a6953f393cf17c886)
[第3回のイベント詳細はこちら](https://wano.connpass.com/event/156022/)


## 誰向けのイベントなのか
- **音楽やそれに付随するカルチャーが好きな方**
- **音楽サービスの裏側のシステムってどうなってるんだろうという方**
- **今まで音楽などの趣味を仕事と別で考えていたけど、カルチャーに関わる仕事がしてみたい方**

エンジニアだけではなく、**音楽やカルチャー好き全ての方**にオススメのイベントです。

## イベントの流れ
- **まずWanoの簡単な紹介**
- **Wanoグループ社員によるセッション×3**   
- **懇親会**

## まずWanoグループの簡単な紹介
![UNADJUSTEDNONRAW_thumb_6a.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321850/8d5582ce-ca5d-f9cb-aae9-3316ad4108ee.jpeg)


## Wanoグループ社員によるセッション
### 一人目　Yuya Yamamoto  from [TuneCore Japan](https://www.tunecore.co.jp/)　「アーティスト同士でお金を配分できる機能を作った話」
![UNADJUSTEDNONRAW_thumb_6e.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321850/6ea1082d-5d00-d67f-8878-14cf2328bde5.jpeg)

発表資料: [アーティスト同士でお金を配分できる機能を作った話](https://speakerdeck.com/yuyayamamoto/wano-developer-meetup-vol-dot-3)
彼はTuneCore Japanで、主にプロダクトマネージメント・マーケティングを担当しています。
#### 発表概要
- 今年リリースされた「Split機能」という、アーティスト間で収益分配を設定できる機能の開発裏話について
- なぜこの機能を作ったのか
   - ユーザーとの会話の中でニーズがあった
   - 共作やチームで活動することが増えてきており、音楽活動の方法に選択肢が増えるのは、作品作りやカルチャーにおいて重要
- 発生した問題とその解決策
    - ユーザビリティ
      - シェアの設定を楽曲ごとの設定面倒 -> 設定コピペを可能に
      - スプリットの承認フローが煩雑になりそう -> メアドのみに限定
    - バックエンド
      - 1楽曲１アカウントが結びつく構造の変更 -> メタコピーは更新が大変になるのでデータの参照をアカウントをまたいで行えるように変更
- ユーザーの反応
  - コラボ、チームでやる時代にマッチしていて良いという声多数
  - 編曲者、トラックメーカーにはかなり朗報な機能
<img width="931" alt="スクリーンショット 2019-12-06 08.00.59.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321850/0d33d877-8153-b9b3-de70-762f8e360f9a.png">

#### 感想

- 弊グループ内でも、この機能の話は是非聞きたいという声が多く、弊社内での知見の共有という意味でも有益だったと思います 
- マネージャー・マーケッターならではの視点も多く、これからもエンジニアだけでなく彼のようなロールの方の話も聞ける場であると良いと思います
   - ユーザーの根本的な課題を認識する姿勢(ユーザーとの会話の中での発見し落とし込む)
   - きちんとユーザーの反応がSNSから拾えているのも良い
- デフォルトの配分レートの設定とかこれからできると良さそうだなと思いました(コピペも５０曲とかになったらしんどそう)

### 二人目　[宿本 真吾](https://connpass.com/user/shingo_yadomoto/) from [TuneCore Japan](https://www.tunecore.co.jp/)　「楽曲シェア機能のパフォーマンス改善」
![UNADJUSTEDNONRAW_thumb_7c.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321850/0d99a7a7-9e30-33f4-19a3-1604c8207f09.jpeg)

発表資料: [楽曲シェア機能のパフォーマンス改善](https://speakerdeck.com/shingoyadomoto/wano-developer-meetup-vol-dot-3)
彼はTuneCore Japanのシステムを担当しているエンジニアです。

#### 発表概要
- LinkCoreという楽曲シェア機能でのパフォーマンスを改善したという話
- LinkCoreとは
   - 各配信ストアのURLが一括シェア可能
   - 誰がどのストアで等の統計データを閲覧可能
- どんな問題が起きたのか
  - 配信開始し、アーティストがSNSでリンクを拡散した瞬間に、AppサーバーのCPU利用率がMAX
  - 現状のCDN/AMP/DBキャッシュでは対応できなかった
- どう解決したか
   - 一時的にページ表示に関してはHTMLをファイルへキャッシュ（GET)、統計データの一時保存先をDBからファイルへ（POST)
   - 言語をPerlからGoへ
   - 結果、実装変更でGET4倍、POST１〜２倍/言語変更でGET１９倍、POST7~9倍 ->最終的にGET78倍、POST１１倍の改善！！
   
<img width="710" alt="スクリーンショット 2019-12-06 08.58.32.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321850/6a31aea3-959e-f8eb-7977-943ebf3403c4.png">
<img width="713" alt="スクリーンショット 2019-12-06 08.58.38.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321850/a285bed2-3117-504a-e6f6-d661dd1f6757.png">


#### 感想
- LinkCoreという機能に関しても、社内で知りたい人が多かった機能なので皆興味深く聞いている様子でした
- 処理速度に関してはやっぱりGoはすごい
- きちんとベンチマークを出して比較していて良い
- DBとファイルGET/POST比較は、Redisなどのオンメモリキャッシュも加えて検討すると良いかもしれないですね
- サーバーのオートスケールも検証すると良いかもしれない
- Goはいい言語だが、正規表現など弱い部分もあるので、適材適所で使っていければ良いと思いました
- VideoKicks（動画納品サービス)でも同様の機能要望が出ているので、その際の知見として有益でよかったです

### 三人目 [Kryslov Leonid](https://connpass.com/user/leo_wano/) from Wano株式会社 「AWS S3のコスト最適化」
![UNADJUSTEDNONRAW_thumb_8a.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321850/0b9dd021-bf36-4026-b2a8-a57f8c086347.jpeg)

発表資料:[AWS S3のコスト最適化](https://www.slideshare.net/LeonidKryslov/aws-s3-201693883?ref=https://wano.connpass.com/event/156022/presentation/)
彼はVideoKicksのシステムを担当しているエンジニアです。
#### 発表概要
- VideoKicksで取り扱っている動画のストレージコストを下げる施策について
- AWS S3 Deep Archiveを使用
  - ファイルの取り出しは手動なら12h以内、自動なら48h以内
  - Standard Classは`$24/Tb`に対して、Deep Archiveは`$1/Tb`
- 全体フローのステップ/システム構成
  - 1.ファイルのアーカイブ -> 2.納品側から取り出し依頼(配信ストアの追加が多い) -> 48h後 -> 3.納品側へ取り出し完了通知 -> 4.納品プロセス開始
  
<img width="602" alt="スクリーンショット 2019-12-06 10.03.51.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321850/ef8c24a5-2fa3-a9aa-5f3a-437055698374.png">
<img width="543" alt="スクリーンショット 2019-12-06 10.04.00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321850/2bf3d06e-6672-5381-6a02-42c281bca661.png">
<img width="557" alt="スクリーンショット 2019-12-06 10.04.09.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321850/aa74ca35-1557-0fc2-93d4-0ba274271e1d.png">

- 結果どれくらいコストを削減できたか
  - 対象ファイルは全体の55%、コスト４割削減に成功！！
- 将来的にどうしていきたいか
  - [S3 Intelligent-Tiering](https://aws.amazon.com/jp/blogs/news/new-automatic-cost-optimization-for-amazon-s3-via-intelligent-tiering/)などを検討し、より最適化していく
 
#### 感想
- 私のチームの涙ぐましい動画ストレージコスト削減のお話
- 彼はロシア出身。ネイティブ並みに日本語が上手い。かつ英語もペラペラ(あるUSプロジェクトで非常にお世話になっている。。)
- 2日がかりの、壮大なピタゴラは圧巻です  
- また、大きいサイズのファイルを転送する際は、[マルチパートアップロード](https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/mpuoverview.html)が必須だったりで、ファイルの正常性担保が非常に大変そうでした(E-tag、md5周り)


## 懇親会
![UNADJUSTEDNONRAW_thumb_9f.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321850/9ffa5a65-502d-0788-e647-57d9bcf4d3ae.jpeg)

僕は参加できなかったのですが、前回前々回同様**好きな音楽や音楽系サービスの話で盛り上がった**ようです！
また、遠方の方でvol.1から気になってたけどなかなか遠くて行けなかったと言う方が、仕事でこちらに来ている都合で今回参加できたようで、**社員一同vol.3まで続けていてよかったな**と思いました。
また、ストレージや言語の話(Perl,Go)の話でセッション以上の内容を共有できたようで、非常に有意義な時間を過ごせたようです。

## commentscreenを使用してみての所感
### 良かった点
- sli.doと比べて、別にスクリーンを用意しなくていいので手軽
- 発表者が自分で質問を途中で拾えたりもする

### 悪かった点
- 意外と発表者から、質問が見えづらくて拾いづらい
- 後から質問の時間を設けても、質問がプールされていないのでまた質問させることになってしまう
  - ファシリテーターが質問を拾っておくことで、ここは次回以降解決できそう

## 終わりに
第三回ということもあって、前回の課題であった簡単な弊社サービス紹介動画によるイベント開始前の手持ち無沙汰の解消や、アンケートの収集なども解決できてイベントとして洗練されてきた感じを受けました。また、前回も前々回も参加してくださった方なども見受けられ、リピーターが獲得できているのはとてもいい傾向だと思います。参加者の皆さん本当にこの師走で忙しい中参加していただきありがとうございました！

また、非エンジニアの方の登壇＋commentscreenの投入という新しい挑戦もでき、どんどんといいイベントになっているのは間違い無いと思います。

しかし、このまま同じトピックで続けていても、開催側も参加側もマンネリ化してしまうのでは無いか、という意見が振り返りの場で出たということもあり、**次回は少しトピックを限定したり（クラウド特集、Go特集etc)でテーマ自体をガラリと変化させる必要があると感じたので、次回以降はそういった試みに挑戦するやもしれません！**

また次回以降も開催していきますので、**ご興味のある方は是非、connpassで
[Wanoグループのメンバー](https://wano.connpass.com/)になって告知を待っていただければと思います。**


ではまた次回、**あなたとお会いできるのを楽しみにしております！**