ソンブレロ鍋

鍋メモ

AWS EC2/AWS S3/goofys/Airsonic で音楽ストリーミングサーバーを作る

過去にも Subsonic や Supersonic で音楽ストリーミングサーバーを立てていたが、構成を変更したのでメモしておく.
構成を変更するに至った背景は, Raspberry Pi での運用でアプリケーションがたまに Raspberry Pi ごと止まることがあり面倒になったことである.
システム全体の構成で考えるべき要素は「ストレージ」「アプリケーション」「アプリケーションとストレージの接続」「インターネットからの到達性」であり,それぞれについて書いていく.

ストレージについて

構成変更前は,自宅にある USB 接続の HDD を使っていた.構成変更後は AWS S3 (1AZ) を使用する.
費用の関係でこの要素はできるだけオンプレミスでやりたかったが,試験的にパブリッククラウド環境に乗せることにした.

アプリケーション実行環境について

構成変更前は,自宅にある Raspberry Pi を使っていた.構成変更後は AWS EC2 (インスタンスタイプは t3.nano) を使用する.
費用の関係でこの要素もオンプレにしたかったが,今回は試験的に AWS EC2 を使う.

アプリケーション環境からストレージへの接続

構成変更前は, Raspberry Pi に USB HDD を接続するだけ,あるいは, LAN 内でファイル共有をマウントしたりしていた.構成変更後は goofys というソフトウェアを用いて AWS S3 をマウントしている.

インターネットからの到達性

構成変更前は, Dynamic DNS を使って自宅へ接続できるようにしていた.構成変更後は AWS EC2 インスタンスなのでインターネットからの到達は設定により可能にしている.
Dynamic DNS は無料で利用できるものがいくらかあるため,この要素だけが費用の関係なくどこでもいいものだと考えた.

構成の考慮点

[Storage] -- [Application] -- (internet) -- [Client] という環境で,どこからどこまでを自宅に置くか・どこからをパブリッククラウド等に置くかというところが費用に大きく関わってくるところだ.
構成変更前では [Storage] -- [Application] が自宅にあったため,費用は非常に安く抑えることができたと思う.
構成変更後では全てパブリッククラウド環境に乗っているため費用はかかると思っているが,どの程度になるか・使用感はどうなるかという点で試験的に採用した.
また、 [Storage] だけを自宅に置き,ファイル共有サービスか何かをインターネットから到達できるようにしてアプリケーションサーバーにマウントするという形もとれる.