読者です 読者をやめる 読者になる 読者になる

ガルトラで遊ぼう

ガルトラ、プログラミングについてのブログです。月に4投稿ぐらいのペースでやっていきたいと思います。

beegoにてローカル確認用のファイル配信サーバーを書いてみた

開発中にいつも気にしてしまうことがある。それは開発費である。AWSでEC2のインスタンスを立ち上げればその時から時間ごとに料金が発生するし、ETSを使えば分毎にエンコード料金が発生する。静的ファイルをS3、Cloudfrontにおいているならページアクセスごとに通信料が発生する。これはごく僅かなコストだが費用がかかることには間違いなく、もし動画に修正が入れば前回エンコードした動画は破棄しなければならなくなる。はっきり言って無駄でありできればなくしたいと考えた。

ちりも積もれば・・・

正直いって私はもともとお金に関して気にしすぎる性格である。特にランニングコストに関しては人並み以上に気にしてしまう自覚はある。
ある時、AWSの請求書を見たときのことである。そこではCloudfrontの使用料金が月7ドルとなっていた。正直いって絶望するほど高くはない。しかし、まだ開発中の段階で発生した料金である。仮に1年間毎月の開発費としたら年間8400円。10年続ければ8万4千円だ。これを高いとするか、安いとするかは個人的な感覚ではあるが(おそらく安い方だとおもわれる)私は仮に10年後に8万4千円もらえるのであれば今から対策を考えるのもありだと思う。

自分でローカル確認用のサーバーをたてようと考えた

通信費を軽減するためにローカルで確認するためのファイル配信サーバーを作ることにした。仕様はごく簡単で、S3やCloudfrontのようにURLのパラメータを用いてファイルを返却するだけである。ソースコードは以下のリンクより見ることができる。

Githubのリンク(scrpgil/localfront)

フレームワークにはbeegoを使用した。これは気にって使っているGo言語製のフルスタックなフレームワークであり、簡単なWEB APIをかくのに適している。また静的にファイルを返却するだけならnginxなどでも可能だと思うが、勉強も兼ねて、また今後なにか機能を追加したりすることも考えてbeegoを使用した。

結果的に・・・

思い立って作成してみたがあるとなかなか便利ではある。ファイルをアップロードする手間が省けたし、HLS形式の動画配信もローカルでできる。何より自分で作ったことで動作が把握できてるのがよい。何か追加の機能が欲しくなったときにも追加実装が簡単に行えそうである。正直いって実装にかけた時間はほんのわずかだが思い立って行動してよかったと思っている。