Sora Cloud を Akamai Connected Cloud へ移行しました

V
shiguredo
Published in
4 min read1 day ago

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 年に Ingress (クライアントから Sora への通信) の利用帯域は課金対象に含めないという変更を予定しています。これは DataPacket と異なり、Linode では Ingress の転送量が無料なためです。

--

--