ConoHa VPSでWordPress+ツール系アプリを公開するまでの奮闘記1【申し込み~SSH接続編】

Wordpress備忘録

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

なぜConoHa VPS?

ConoHa VPS|高性能・低価格のVPS
ConoHa VPSは拡張性、信頼性、自由度を兼ね備えた高性能VPS。最新CPUと超高速SSDを搭載し、法人・個人を問わず幅広い用途に対応。ひと月296円から、簡単に高性能なVPSが利用できます。

ConoHaのレンタルサーバーでWordpress…となると、ConoHa WINGが定石と思われがちですが、敢えてVPSを選んだのは以下の背景があったからです。

  1. Dockerコンテナでアプリを動かす予定があった。
    WINGだと、Dockerのインストールや任意のポートでプロセスを立ち上げることができない。
  2. ツールアプリでNode.jsを使用する可能性があり、プロセスを常駐させたかった。
    そもそもWINGはApache/PHPが動く共用サーバーでSSH接続が制限されている。よって任意のプロセスをバックグラウンドで常駐させる仕組みがない。
  3. Nginxを自由に設定できるため、サブドメインごとにDockerコンテナへリバースプロキシで振り分けられる。
    WINGはNginxの設定変更ができない。
  4. 好きなOS・ミドルウェアを選んで自由に管理できる。
    これは過去の業務の復習のため。
  5. SSL証明書の取得・更新(Let’s Encrypt)を自分でやりたかった。
    これも過去の業務の復習のため。

と、自分にとってはインフラの勉強にもなるし都合がよかったわけです。値段はこの際無視…。

さっそく、VPS契約から初期セキュリティ設定まで、実際につまずいた部分もぜ~んぶ書き記していきます。

ConoHa VPS 申し込み方法

プラン選択

まずはConoHaの公式サイト(https://vps.conoha.jp/)にて「お申込み」ボタンを押下し、ConoHaアカウントを作成しましょう。
画面に従ってメールアドレス等入力するだけなので割愛。

管理画面にログインすると、サーバー追加のページに遷移します。

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

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

ネームタグはわかりやすければなんでもOK。

今回の申し込み内容

今回は下記のとおりオプションを選択しました。

OS・アプリケーションもまとめるとこんな感じ。

オプション内容理由
OSUbuntu 24.04 LTSLTSは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など)を許可するルールです。削除しなくてよし。

通信方向イーサタイププロトコル
OutIPv4All
OutIPv6All

インバウンドルールの追加

「default」を編集してもよいのですが、自分で「secgp-common」というセキュリティグループを新規作成しました。

通信方向イーサタイププロトコルポートIP/CIDR用途
InIPv4TCP22自宅IP/32SSH初回接続用(後で削除)
InIPv4TCP2222自宅IP/32SSH変更後の接続用
InIPv4TCP800.0.0.0/0HTTP
InIPv4TCP4430.0.0.0/0HTTPS

`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ポートでの接続編にて!

タイトルとURLをコピーしました