※この記事はnoteで公開した記事を転載したものです。
趣味のWebアプリ開発にVPSとDockerで叶える堅実な開発環境
個人的なポートフォリオサイトや、ちょっとしたWebアプリケーションを開発し、公開してみたいという思いから、僕は現在、VPS(仮想専用サーバー)を契約し、開発環境を整えようとしています。
多くの方が最初に検討するレンタルサーバーではなく、なぜ手間のかかるVPSを選ぶのかというと、趣味とはいえ「作りたいものを制約を受けずに作る」ために地道に環境を整える必要があると感じたからです。
レンタルサーバーではフレームワークが扱いにくい
Webアプリ開発を進める上で、PHPのLaravelやPythonのDjangoといった高機能なフレームワークを使いたいと考えています。しかし、手軽さが売りのレンタルサーバー(共用サーバー)には、いくつか大きな壁があります。
- 環境の制約: レンタルサーバーは提供されるPHPやPythonのバージョンが固定されており、使いたいフレームワークの最新バージョンに対応していないということが頻繁に起こります。
- 管理権限の欠如: サーバーの設定ファイルを細かく変更したり、特定のミドルウェアをインストールしたりする自由度がほとんどありません。LaravelやDjangoが要求する複雑な環境構築は、現実的に困難な場合が多いです。
趣味でやるからこそツールの制約に悩まされたくありません。作りたいアプリを確実に動かすため、開発環境を自分の手でコントロールする必要がある。これがVPSを選んだ最大の理由です。
堅実に進めるためのVPSとDockerの組み合わせ
VPSは、レンタルサーバーよりも管理者権限が広く、OSの選定やアプリケーションのインストールを自由に行えます。つまり、LaravelやDjangoが求める特定の環境を、一つ一つ自分の手で確実に作り上げることができます。
さらに重要なのが、Dockerの活用です。
Dockerは、アプリとその実行に必要な環境を「コンテナ」という形でパッケージ化する技術です。VPS上でDockerを使うことには、趣味開発における大きなメリットがあります。
- 本番環境の再現性: 自宅の開発環境で動いたものが、VPS上でもほぼ確実に動きます。環境のちょっとした違いでアプリが動かないという地味で時間のロスになるトラブルを回避できます。
- 環境の分離: 複数のポートフォリオアプリを立ち上げたい場合でも、それぞれのアプリを別のコンテナで動かせます。例えば、AアプリはPHP、BアプリはPythonといった異なる要件を持つ場合もサーバー全体を汚さずに済みます。
VPSでサーバーOSレベルの設定を地道に行いつつ、Dockerでアプリ実行環境を細かくコントロールする。この組み合わせが、堅実な開発の土台となります。
失敗を避けるための「自宅サーバーでの予行演習」
いきなり本番環境であるVPSで複雑な環境構築を始めるのは、トラブルの元です。
そこで、まずは手元のPCや自宅サーバー上で、Dockerを使った開発環境をテスト的に構築します。
- 自宅でのDocker環境構築: Docker Composeファイルを作成し、Webサーバー、DB、アプリ実行環境を立ち上げます。
- 自宅で開発と動作検証: アプリを開発し、すべての機能が問題なく動くことを確認します。
- VPSへの実装: 自宅で完成したDockerの設定ファイルとアプリのコードをそのままVPSに移行し、公開します。
この「自宅サーバーでの予行演習」を挟むことで、VPSでの作業をデプロイ(実装)と公開設定のみに絞り、大きな失敗や無駄な時間を避けられます。
遠回りに見えるかもしれませんが、この地道な準備とVPS、そしてDockerの組み合わせこそが、趣味開発を長期的に、そして堅実に続けるための「最適解」だと考えています。このロードマップで、ポートフォリオサイトの公開を目指します。
