メインコンテンツへスキップ
見出し画像

個人開発はこの構成で十分回る:Express×SQLite×EC2×pm2

    個人開発で一番時間を食うのは、実は「何で作るか」を迷う時間でした。今は構成をほぼ固定していて、新しいものを作るときも迷いません。

    この記事では、その構成と各部品の役割、そして「いつ構成を変えるか」を書きます。

    画像

    使っている構成

    • 言語:TypeScript(画面もAPIも)

    • 画面:Next.js

    • API:Node.js + Express

    • データベース:SQLite(better-sqlite3)

    • サーバー:AWS EC2(小さめのインスタンス1台)

    • 入口:Nginx

    • プロセス管理:pm2

    SQLiteで足りる理由

    データベースはファイル1つです。別のサーバーも設定もいりません。バックアップもファイルをコピーするだけなので、一人で管理するにはかなり楽です。

    読み込みが中心で、書き込みがそこまで多くないサービスなら、小さなうちはこれで十分です。WALモードにしておくと、書き込み中でも読み込みが止まりません。

    Nginxは「入口係」

    外からのアクセスは全部Nginxが受けて、中のアプリに振り分けます。HTTPS対応もここでまとめてやります。

    こうしておくと、1台のサーバーで複数のサービスを動かしても、ドメインごとに振り分けるだけで済みます。

    pm2は「落ちても起こしてくれる係」

    Node.jsのアプリは、エラーで止まるとそのままです。pm2で動かしておくと、止まっても自動で再起動してくれます。

    pm2 start app.js --name my-app
    pm2 save
    pm2 startup

    最後の2行で、サーバーが再起動してもアプリが自動で立ち上がるようになります(startupが表示するコマンドを実行するのを忘れずに)。ログも pm2 logs で見られます。

    構成を固定するとAI開発も安定する

    いつも同じ構成だと、AIへの指示も使い回せます。「いつもの構成で」で通じるので、毎回の説明がいりません。トラブルの対処も一度覚えれば使い回せます。

    構成を変えるタイミング

    • 同時の書き込みが増えてきた → PostgreSQLなどに移る

    • 画像や音声の配信が増えた → ストレージと配信を分ける

    • レンタルサーバーしか使えない → PHPで作る

    • サーバー管理を減らしたい → Cloudflareなどのサーバーレスを検討する

    最初から大きな構成にする必要はありません。小さく作って、困ってから大きくするで十分間に合います。

    公開先の選び方は、後日まとめて書く予定です。

    開発のご相談は、XのDMからどうぞ。

     
     
    ツクルです。開発初心者からAIと一緒にWebサービスを作ってきた個人開発者です。AI開発の進め方、つまずきやすいポイント、実際に使っている要件定義・指示テンプレを公開しています。

    あなたへのおすすめ