Q1
ローカル開発環境でアプリを作成してVPSにデプロイする場合ローカル側にも本番環境と全く同じくWEBサーバー(nginx)もインストールしておくものですか?
場合によります。 Docker を使っているなどで、ローカル環境と本番環境に同じ構成の環境を作りやすいのであれば、同じようにセットアップすることがあります。そうでなければ、簡単のためにローカルには nginx を置かないこともあります。以下、 Docker を使わない構成で回答します。
それともVPSには予めnode.js express nginx mongo dbをインストールした後作成したアプリのみデプロイするのでしょうか?
nginx や Node.js や MongoDB はあらかじめインストールしておきます。 Express など package.json に書かれている依存関係は、アプリのデプロイ時に都度インストールします。
Q2
ここでターミナルを開いて各環境をインストールしていっていいのでしょうか?
大丈夫です。そのターミナルでも SSH 接続でもできることは同じです。使いやすいほうを使ってください。
Q3
開発時のディレクトリ構成は好みの問題なのでどこでも大丈夫です。ホームディレクトリ以下に apps/
とか projects/
とかcode/
を作ってその中に置くことが多いような気はします。
ここにnode.js express nginx mongo dbを入れていったら良いのでしょうか?
Node.js と nginx と MongoDB はシステムにインストールします。アプリのコードはそこに置いてください。 Express はアプリの package.json に依存を書いて npm install
すればそこにインストールされます。
Q4
自動化するなら GitHub Actions が楽です。自動化にもノウハウがあるので、まずは手動でデプロイするのもいいと思います。
AWS (中でも Amazon EC2)を利用する手順は VPS の場合にも流用できます。