に公開
バックエンドの処理が必要な Web アプリを開発したいと思い、念願の自宅サーバーを建てました!!! これで作れるものの幅が広がったので新しいアプリをじゃんじゃん作っていこうと思います!
どういう構成?
まず、ドメイン(cho-ice.xyz)にアクセスすると、 VPS 上で稼働しているリバースプロキシに接続されます。
リバースプロキシ
リクエストされた URL によって、自宅サーバー または 静的ファイルを公開しているレンタルサーバー(StarServer)からデータを取得して返しています。 なぜわざわざリバースプロキシを立てたのかというと、自宅 IP を晒したくなかったのと、すでに公開している Web ページを同じレンタルサーバーで公開し続けたかったからです。
サーバーは VPS です。WebARENA Indigo の 1GB プランを使っていて、月 350 円くらいで済みました...やすいな。 運用してみてスペックが足りなさそうだったら増強します。
自宅サーバー
Web アプリ毎に Docker コンテナを立てています。 コンテナは GitHub 上に置いているアプリのソースコードから作成しています。
コンテナ化することによって、デプロイするときにサーバーの環境設定をする必要がないのがめっちゃ楽でよかったです!
スペックは i3-7100, 16GB, システムに SSD256GB + ストレージに HDD1TB を載せています。
今後の課題
どこに置けばいいんだ?
ベッドの下にちょうどいいスペースがあったのでそこにサーバーを置いてみたのですが、普通にこんな変な場所に置いていいのかわからないです。 サーバーってもっとちゃんとした場所に置いたほうがいいんですかね?
バックアップはどうすれば良いか?
本格運用する前にストレージは RAID1 を組もうと思っているのですが、サーバーが物理的に壊れたときのことを考えると、 家とは離れた場所にもバックアップを作っておくべきな気がしました。どうしようか
これから
まず手始めにハードウェア音源を使って MIDI → MP3 変換を行ってくれる Web サービスを作ろうと思います。 物理的なハードを噛ませる Web アプリを作れるのは自宅サーバーならではですよね!?
バックエンドとかインフラ周りの知識はないので、詳しい方ぜひ色々教えてください... ><