WordPressで技術ブログを運営しつつ、練習がてら作ったツール系アプリも同じサーバーで公開したい!
そんなケチな目標を掲げ、ConoHa VPSを契約して本番環境を構築した記録です。
前回はSSHキーの登録から、セキュリティを強固にした2222ポートでの接続まで実施しました。
今回はVPS環境で必須になるパッケージ・アプリケーションのインストールまでを追っていきます。
前回の記事はこちら。

パッケージの更新
このVPS環境に必要なソフトウェアをインストールしたいのですが、まずはどんなソフトがあるか「最新の商品ラインナップ」を取得する必要があります。
以下のコマンドを実行しましょう。
$ sudo apt update && sudo apt upgrade -y
Dockerの確認
ConoHa契約時にアプリケーションとしてDockerを選択したためインストール済みですが、一応確認しておきます。
$ docker --version
$ docker compose version
こんな感じに表示されればOK。
表示されなくても、今インストールしちゃえば大丈夫です。
Docker version 27.x.x, build xxxxxxx
Docker Compose version v2.x.x
一般ユーザー(user)でDockerを操作できるよう設定します。
$ sudo usermod -aG docker user
ちなみに、Dockerグループへの追加は一度ログアウト→再ログインしないと反映されません。
再ログイン後、docker ps でヘッダーが表示されれば完了です。
参考記事

自動セキュリティアップデートの設定
VPSは24時間インターネットに接続されているため、脆弱性を放置すると攻撃対象になります。
そこで、セキュリティパッチ ”だけ” を自動で適用する仕組みを設定しましょう。
コピペで大丈夫です。
$ sudo apt install -y unattended-upgrades
$ sudo dpkg-reconfigure --priority=low unattended-upgrades
コマンドを実行すると、以下のような画面になります(すごくびっくりした)。

Automatically download and install stable updates? [yes/no]
YESで問題ありません。
ここでは、「安定版のアップデートを自動的にダウンロード・インストールしますか?」と聞いてくれてます。YESにすると、
- apt update → 最新のパッケージ情報を取得
- セキュリティパッチが存在するか確認
- 存在すれば自動でダウンロード・インストール
ここまでやってくれるんです。
自動適用されるのはセキュリティパッチのみです。
メジャーバージョンアップや通常のパッケージ更新は apt upgrade(手動)や do-release-upgrade など別のツール・コマンドの話になるので、このツールの対象外です。
パッケージ等が勝手に更新されたりはしないので安心ですね。
Nginxのインストール
なぜNginxが必要か?
今回はサブドメインを利用して複数のサービスを立ち上げようとしています。
たとえ複数のDockerコンテナが異なるポートで動いていても、ブラウザからのアクセスは全て80番か443番に来てしまうんですよね。
そこで、Nginxがリバースプロキシとして、どのドメインのリクエストをどのコンテナに転送するかを振り分ける役割を担ってくれるわけです。
頭が上がらないです。
インストールと再起動
$ sudo apt install -y nginx
$ sudo systemctl enable nginx # サーバー起動時に自動起動するよう登録
$ sudo systemctl start nginx # 今すぐ起動
enable と start は役割が異なるため、両方実行する必要があります。
ブラウザ → https://your-site.com(443番)
↓
Nginx
├── your-site.com → localhost:8080(WordPress)
├── tool-a.your-site.com → localhost:3001(ツールA)
└── tool-b.your-site.com → localhost:3002(ツールB)
動作確認
$ sudo systemctl status nginx
Active: active (running) と表示されればOKです。
ここらへんはスムーズに導入できましたかね?
certbotのインストール
HTTPSでサイトを公開するにはSSL証明書が必要です。
Let’s Encryptという認証局が無料で発行しており、certbotはその取得・更新・Nginxへの設定反映を自動化してくれます。
今はインストールのみ行い、実際のSSL証明書取得はドメインのDNS設定完了後に実施します。
というのも、DNS設定が完了していないと、Let’s EncryptがドメインのIPアドレスを確認できないんですよね。
$ sudo apt install -y certbot python3-certbot-nginx
この2つをセットでインストールすることで、証明書取得からNginx設定まで一括で行えます。
ではまた次回、ドメイン・DNS設定からSSL証明書取得編にて!


