Rubellum fly light

ほぼPHP日記

PHPで個人開発するときのインフラ周辺の備忘録(2024年8月ver)

PHPでWeb個人開発するときの構成。20xx年...?と言われても致し方ないやつ。

開発環境

MacBook Air(M2 2022) : Mac大好き人間なので。最近はWindowsに回帰する人もいるのでここはお好みで。

PhpStorm : MacとJebBrainsのIDEがあれば大抵のものは開発できる。PhpStorm単体よりもAll Products Packがいい。1年目は4万強/年とお高いが継続すると3年目で25000円/年とお安くなるので。多趣味な人ほどおすすめ。直近1年でちょっとでも起動したもので言えばPhpStorm, RubyMine, Rider(C#), goland, DataGrip(DB) がある。他 RustRoverなどなど買わない手はない。Gitクライアントも昔はSourceTree使っていたけどIDEのに変えた。

アプリケーション

PHP : PHP大好き人間なので。サーバーサイドだけならGoもいい。 PHPで業務開発すると他人のコードを信用できなくなりGoを信奉したくなるものの、個人開発はカジュアルなPHPが好き。 昨今のWebアプリケーションのフロントエンドはTypeScriptでクライアントとサーバーを両方書くスタイルが気になり少し心が揺れている。

Symfony : 手慣れているのでLaravelよりもSymfony派。ORMは人間には早い技術なのでDoctrine ORMでなくDBAL Connectionを多用したい派。

ミドルウェア

nginx : とりあえずのnginx。

DB

MySQL : MySQL以外よくわからないマン。PostgresQLと2大勢力だが、最初に見た方を親と認識してMySQL派。個人開発ではDBが高いので、今のところ安VPSで1000円で

ストレージ

Cloudflare R2 : S3互換のオブジェクトストレージ。エグレス料金がゼロでS3よりも安い?

インフラ

さくらのVPS : 古き良きVPS大好き人間なので(従量課金が落ち着かない..)。Vultrの方が使い勝手がいいけど円高と応援目的でさくらインターネットをチョイス。最低使用期間2ヶ月が作っては捨て..のマイスタイルと相性がよくないのでそこだけ悩ましい。

Ubuntu : 少し前までは何も考えずCent OS派だったが、8サポート終了後のAlmaとRockyの選択を迫られてUbuntu派となった。macだとmultipassを使うと簡単に環境を用意できる。コンテナよりvmが好き。

Tailscale : マシンとVPSをtailscaleでVPN接続しておくと開発時にネットワークについてほとんど考えずに済むので非常に楽。スマホも繋げられる。個人だと100デバイスまで無料で本当に太っ腹。

監視

Grafana : グラフを眺めるマン

Grafana Loki / Promtail : ログを蓄えるマン。Elasticsearch+kibanaの方が好きだけど動作要件がVPSマンからするとリッチなのでひとまずLokiを使ってみている。あとでELKスタックにするかも。

Prometheus : VMにNode Exporterを入れてGrafanaで見るところまで一旦。MySQL、Redisなど外部のストレージ系は専用のexporterを入れて眺めている。

Sentry : PHPのエラートラッキングで利用。今のところ無料枠。

構成管理

Ansible : Dockerがあればいらないけどvmが好きだから使っちゃう...。

選ばなかったリスト

アプリケーション

go : golangで書き始めて諦めてPHPで移行することが多い。まだgo力が足りておらずWebアプリケーションで使っていないだけで内部的なAPIを作るときは普通に使う。例えばgrpcを使いたいときはgo+Connnect。

Ruby : Ruby+Sinatraは本当に手っ取り早くWebアプリケーションが作れる。DBのライブラリにいつも悩む。Railsは好みの問題で避けがち。

DB

Cloud SQL / PlanetScale: 利益目的のサービスを立ち上げるなら最初はCloudSQLかPlanetScaleにするかも。個人開発のコストではDBが大きく占める。。

インフラ

k8s : マニフェストを書いて楽しくなって1日が終わってしまうので今は使っていない。Vultrでk8sクラスタが簡単に作れるのでk8sの練習はvultrがよき。

Cloud Run : おそらくアプリケーションを一番手取り早く動作させられるので副業的にやるならCloud Runが良さそう。

監視

ELK Stack(elasticsearch+logstash+kibana) : VPSでメモリ4G積むほどリッチではなかった。Lokiを試してるけどそのうちこちらに移行するかも。