WordPressで技術ブログを運営しつつ、練習がてら作ったツール系アプリも同じサーバーで公開したい!
そんなケチな目標を掲げ、ConoHa VPSを契約して本番環境を構築した記録です。
なぜConoHa VPS?

ConoHaのレンタルサーバーでWordpress…となると、ConoHa WINGが定石と思われがちですが、敢えてVPSを選んだのは以下の背景があったからです。
と、自分にとってはインフラの勉強にもなるし都合がよかったわけです。値段はこの際無視…。
さっそく、VPS契約から初期セキュリティ設定まで、実際につまずいた部分もぜ~んぶ書き記していきます。
ConoHa VPS 申し込み方法
プラン選択
まずはConoHaの公式サイト(https://vps.conoha.jp/)にて「お申込み」ボタンを押下し、ConoHaアカウントを作成しましょう。
画面に従ってメールアドレス等入力するだけなので割愛。
管理画面にログインすると、サーバー追加のページに遷移します。

こんな感じで、OSやアプリケーションを選択していけます。


また、ここでrootパスワードを設定できるので、漏洩の危険がない安全な場所にメモっておきましょう。

ネームタグはわかりやすければなんでもOK。
今回の申し込み内容
今回は下記のとおりオプションを選択しました。

OS・アプリケーションもまとめるとこんな感じ。
| オプション | 内容 | 理由 |
|---|---|---|
| OS | Ubuntu 24.04 LTS | LTSは2029年までサポート。一番使い慣れてる。 |
| アプリケーション | Docker | 後からインストールしてもOK。 |
| 自動バックアップ | 有効 | トラブル時にサーバーごと復元できる保険として課金。 |
| 追加ストレージ | なし | 100GBで当面は十分。 |
| セキュリティグループ | デフォルト | 後から設定するので今はdefault。 |
| SSHキー | 使用しない | 公開鍵を事前登録しておくとスムーズ。今回はコマンドラインから、契約後にやった。 |
| スタートアップスクリプト | なし | 手動で設定する予定。 |
メモリ2GBにした理由
プランはメモリ2GB / SSD 100GBを選択しました。
AIに相談したところ、WordPress+Dockerコンテナ複数本を想定するなら十分とのことです。
Ubuntu + Nginx + 基本プロセス:約200MB
WordPress + PHP-FPM + MySQL:約400〜600MB
Dockerコンテナ複数本:約200〜400MB
情報入力
1のプラン選択が済んだら、次にお客様情報の入力です。

SMS/電話認証で本人確認がとれたら、決済まで済ませましょう。

お支払い方法

ちなみに今回の申込内容はこんな感じ。料金タイプは思い切って36ヶ月を選択しました。
「お申し込みを確定」ボタンを押下で完了です。

2万5千円の買い物…安くないですね……。
セキュリティグループ作成
契約直後のセキュリティグループ
契約後、初めて管理画面にアクセスするとこんなお知らせが掲載されていました。

defaultでは同一アカウントで作成されたVPS以外の通信はすべて遮断しております。
要は、「外部からの通信はデフォルトで全部止めてるよ」ってことですね。
SSH接続する前に、まずConoHa管理画面でインバウンドルールを追加する必要がありそうです。
実際、ConoHaの管理画面でセキュリティグループを確認したところ、初期状態ではこちらのアウトバウンドルールのみ存在していました。
これはサーバーからの送信(apt updateやgit pullなど)を許可するルールです。削除しなくてよし。
| 通信方向 | イーサタイプ | プロトコル |
|---|---|---|
| Out | IPv4 | All |
| Out | IPv6 | All |
インバウンドルールの追加
「default」を編集してもよいのですが、自分で「secgp-common」というセキュリティグループを新規作成しました。

| 通信方向 | イーサタイプ | プロトコル | ポート | IP/CIDR | 用途 |
|---|---|---|---|---|---|
| In | IPv4 | TCP | 22 | 自宅IP/32 | SSH初回接続用(後で削除) |
| In | IPv4 | TCP | 2222 | 自宅IP/32 | SSH変更後の接続用 |
| In | IPv4 | TCP | 80 | 0.0.0.0/0 | HTTP |
| In | IPv4 | TCP | 443 | 0.0.0.0/0 | HTTPS |
`0.0.0.0/0` は全てのIPからのアクセスを許可する設定です。
HTTPとHTTPSは一般公開するため全開放でよいのですが、SSHは自分しか使わないため自宅IPからの接続に絞ることでセキュリティを高めています。
自宅以外でわざわざSSHする機会ないだろうな~と…。
SSH接続
root権限での初回接続
$ ssh root@IPアドレス
コマンドを叩いたところ、なぜかSSH接続できない問題が発生。
セキュリティグループを作成して満足しており、サーバー詳細から「secgp-common」を割り当てていなかったことが原因でした。
ConoHaの管理画面→サーバーから先ほど契約したサーバーを選択し、セキュリティグループをdefaultからsecgp-commonに変更しておきました。

無事、SSH接続にroot権限で成功すると、初回接続時に以下のメッセージが表示されます。
ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
これは「このサーバーの身元をまだ確認していないけど、接続を続けますか?」という確認です。
初回接続では必ず表示される正常な動作なので、「yes」 と入力してEnterを押しましょう。
こういうの不安になる気持ち、わかります。
一般ユーザーの作成
rootで作業し続けると、万が一操作ミスをした場合にサーバー全体に影響が及ぶリスクがあります。
てことで、作業用の一般ユーザーを作成し、必要な時だけsudoでroot権限を使う運用にします。
$ adduser user(これがユーザー名になる)
コマンドを実行すると、途中でFull NameやRoom Numberなどを聞かれます。
が、全てEnterでスキップしてOKです。最後に「Y」 を入力して完了します。
コマンドラインはこんな感じ。
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
info: Adding new user user' to supplemental / extra groups users' ...
info: Adding user user' to group users' ...
作成したデプロイ用ユーザーにsudo権限を付与しましょう。
$ usermod -aG sudo user
-aG は「既存のグループを維持したまま、指定したグループに追加する」オプションです。
sudo グループに追加することで、このユーザーがsudoコマンドを使えるようになります。
その後、exitで一度ログアウトしましょう。
以降は一般ユーザー(ここでいうuser)で再ログインして作業していきます。
ではまた次回、SSH公開鍵の登録から2222ポートでの接続編にて!


