Sora Cloud を Akamai Connected Cloud へ移行しました
2024 年 8 月に、時雨堂の自社サービスである Sora Cloud を DataPacket というベアメタルクラウドサービスから Akamai Connected Cloud (以降 Linode) へ移行しました。
なぜ移行したのか
自社製品である WebRTC SFU Sora でスケールアウトが実現できるようになったためです。
Sora Cloud は時雨堂が開発しているパッケージソフトウェアである WebRTC SFU Sora (以降 Sora) のクラウド版です。
この Sora が Raft ベースの分散システムに対応し、スケールアウトを実現できるようになりました。そのため、DataPacket のベアメタルサーバーで高スペックのマシンを利用する必要がなくなり、低スペックなサーバーをたくさん並べることで、好きなだけスケールできるようになりました。
移行先の選定
条件として、転送量が安いことが第一でした。
もともと Sora Cloud は転送量や利用時間による課金ではなく、転送量に制限がないサービスとして提供したいという思いがありました。DataPacket では「帯域課金」という仕組みがあったため、Sora Cloud との相性が良いサービスとして採用しました。
Linode は転送料金が 1 TB あたり月 5 ドルと格安です。GCP は 100 TB 以上の利用では 1 TB あたり月 85 ドルですので、それと比べるともう破格です。
さらに Linode はインスタンスに転送量が付いてきます。例えば一番安い Nanode と呼ばれる 1 C / 1 G の月 5 ドルのインスタンスには転送量が 1 TB 付いてきます。これらの付いてくる転送量は、時雨堂のアカウント全体で合計されてプールされます。
そのため、Sora Cloud 以外でも、利用するクラウドは全て Linode に集約することで転送量のプールを増やすことができ、ある程度の転送量を確保できます。もしオーバーしたとしても 1 TB あたり月 5 ドルということで、DataPacket で実現していたサービスプランを Linode でも問題なく継続できると判断しました。
Premium CPU
Linode の Premium CPU は EPYC 7003 シリーズを利用しており、 DataPacket と変わらないスペックが利用できるのもありがたいです。
Ansible
時雨堂ではサービスは全て Ansible を利用しているのですが、Linode ではAnsible Collection を提供してくれています。

Placement Groups
また、良いタイミングで Placement Groups がリリースされたのも大きかったです。
コンピューティング インスタンスをグループに割り当てると、それらは別々のホスト(物理マシン)に配置されますが、同じリージョンに保持されます。これにより、高可用性のための分散モデルがサポートされます。
簡単に言えば、インスタンスが同一の物理マシンに配置されなくなる仕組みです。Sora は分散システムなので、この仕組みを利用することでサービスの可用性が上がります。
移行後のコストダウン
結果として、全体でコストが 1/5 になりました。DataPacket の時よりスケールアウトが気軽にできるため、サービスを運用する際の安心感もあります。インスタンスを増やすだけでスケールできるようになるのは本当に楽です。
もともとは Sora Cloud はベアメタルサーバーを利用した高コストなサービスと割り切っていたのですが、Linode への移行によりコストを抑えてサービスが提供できるようになりました。
今後
現在 Postgres は SaaS を利用していますが、Linode での Postgres サービスがリリースされたら切り替えてさらにコストダウンを行う予定です。
Linode の S3 互換オブジェクトストレージも 1 TB の転送量がついて 250 GB で月 5 ドルと格安なのもあり、ログ保存先として利用していく予定です。
また、Sora Cloud では 2025 年に Inbound (クライアントから Sora への通信) の利用帯域は課金対象に含めないという変更を予定しています。これは DataPacket と異なり、Linode では Inbound の転送量が無料なためです。