これまで個人サイトのバックエンドはRailwayで運用していました。デプロイが非常に簡単で、小規模な個人開発にはぴったりのサービスだったのですが、運用を続ける中でコスト面が気になるようになりました。
ちょうどAWSの学習を進めていたこともあり、「せっかくなら自分でサーバーを構築してみよう」と考え、個人サイトのインフラを見直すことにしました。
最終的にはAWS Lightsailを採用し、以前よりもコストを抑えつつ、インフラの知識も身につけることができました。
今回は、その経緯や構成について紹介します。
個人サイトのインフラ構成
現在の個人サイトは以下のような構成になっています。
- フロントエンド:Next.js(Vercel)
- バックエンド:FastAPI(AWS Lightsail)
- データベース:PostgreSQL
- DNS:Cloudflare
- SSL証明書:Cloudflare
- CI/CD:GitHub Actions

フロントエンドは引き続きVercelを利用しています。
VercelはNext.jsとの相性が非常によく、デプロイも高速なので特に変更する理由はありませんでした。
今回見直したのはバックエンド側のみです。
初期のインフラ構成
バックエンドは当初Railwayへデプロイしていました。
RailwayはGitHubと連携するだけで簡単にデプロイでき、Dockerにも対応しているため、個人開発では非常に使いやすいサービスです。
実際、ほとんど設定することなくアプリケーションを公開できたため、「まず動くものを作る」という段階では非常に満足していました。
一方で、継続して運用していく中で気になってきたのがコストです。
私の環境では月額20ドル程度かかっており、個人開発としては少し高く感じるようになりました。
「もっと安く運用できないだろうか」というのが、インフラを見直すきっかけでした。
実は一度AWS Lambdaへの移行も試しました。
Lambdaはほとんどコストがかからず非常に魅力的だったのですが、常時起動ではないため、一定時間アクセスがない状態から最初のリクエストを受けるとコールドスタートが発生します。
APIの応答が数秒遅くなることがあり、ブログやポートフォリオ用途とはいえ、ユーザー体験としてはあまり良いものではありませんでした。
インフラ見直しポイントと候補
ちょうどこの頃、AWS認定資格の勉強を始めていた時期でもあり、AWSの各サービスについて理解が深まってきました。
せっかくなら学習も兼ねて、自分でAWS上にサーバーを構築してみたいと考えるようになりました。
候補として検討したのは以下のサービスです。
- EC2
- ECS(Fargate)
- App Runner
- Lightsail
EC2は自由度が高い反面、ネットワークやセキュリティの設定項目が多く、個人サイトとしては少しオーバースペックに感じました。
ECSはDockerとの相性も良く魅力的でしたが、ロードバランサーやVPCなど周辺サービスも必要になり、構成が複雑になります。
App Runnerはかなり手軽ですが、「サーバーを構築して学ぶ」という目的とは少し違いました。
そこで最終的に選んだのがLightsailです。
LightsailはEC2をベースにしたシンプルなVPSサービスで、必要最低限の構成でサーバーを構築できます。
サーバーの管理を体験しながらも、複雑すぎないという点が非常に魅力的でした。
Lightsailを用いたインフラ基盤とCI/CDについて
最終的にバックエンドはAWS Lightsailへ移行しました。
現在は月額約7ドル程度で運用できており、Railwayと比較するとかなりコストを抑えられています。
もちろんLightsailはマネージドサービスほど簡単ではありません。
自分でLinuxサーバーを管理する必要があります。
今回の構築では以下のような作業を行いました。
- SSHでサーバーへ接続
- Dockerのインストール
- Docker Composeによるアプリケーション起動
- Caddyを利用したWebサーバー構築
- Cloudflareで独自ドメインとTLS証明書を管理
- GitHub ActionsによるCI/CD
今回はWebサーバーとしてCaddyを採用しました。
Nginxと比べると設定ファイルが非常にシンプルで、個人開発では十分な機能を備えています。
また、LightsailではEC2のようにIAMロールをアタッチできないため、そのあたりの設計についても考える良い機会になりました。
実際にLinuxサーバーを触ることで、
- Linuxの基本操作
- SSH接続
- リバースプロキシ
- DNS設定
- HTTPS化
- デプロイ方法
など、多くのインフラ知識を実践的に学ぶことができました。
AWSの資格勉強だけでは得られない経験だったと感じています。
まとめ
今回、個人サイトのバックエンドをRailwayからAWS Lightsailへ移行しました。
移行のきっかけはコスト削減でしたが、それ以上にAWSやLinuxサーバーについて実践的に学べたことが大きな収穫でした。
もちろん、構築の手間だけを考えればRailwayやApp Runnerの方が圧倒的に楽です。
しかし、自分でサーバーを管理する経験は非常に勉強になり、「インフラがどのように動いているのか」を以前より深く理解できるようになりました。
個人開発だからこそ、多少遠回りでも学びを優先した選択ができるのは大きなメリットだと思います。
最後までご愛読ありがとうございました。何かのご参考になれば幸いです。

