Zenn
🚅

フロントエンドエンジニアが、激重だったレンタルサーバーで運用中のワードプレスをVPSに移行してみた

2025/03/14に公開
1

はじめに

2歳の娘を育てながら、ゆるりとフリーランスで活動中のフロントエンドエンジニアです🤱💻

基本的にはフロントエンド(Reactが好き。Canvasとか複雑なCSSアニメーション作るのも好き)
なんですが、元々デザインもやっていたり、なんやかんやでバックエンドとかも触ったりとなんか最近は何屋かわからなくなってます。(でもフルスタックはまだ名乗れないかな・・・)

今回、私が管理しているお客様のウェブサイト(レンタルサーバーで運用中のワードプレス)が、かなり重いということで、、
色々とやってみたのですが、やっぱりレンタルサーバーは重くなっちゃうのでサーバーを変えちゃうのが一番早いか・・・
ということで、今まで避けてきたサーバー周りを勉強がてら調べながら、そして先輩エンジニアに聞きながら触ってみることにしました。

ほんでめっっっちゃ早くなったので、まだサーバー触ったことない方にも頑張ってわかりやすく、ちょっとまとめてみようと思います。

レンタルサーバーとVPS

元々使っていたレンタルサーバーはconoha wing。速さで選んだのですがやっぱり限界があるのかな?
接続してから表示までかなり遅くて困っていました。

今回はweb arena indigoというNTT Docomoが運営するVPSに決めました。
決めては値段ですね!とにかく他に比べたら安い!

今回契約したプランや費用などは、 ###インスタンスを立てる で詳しくお話しています。

まずやること

最新のコードとデータベースをローカルにダウンロードする

Wordpressはサーバーにアップされているファイルたちとデータベースで構成されています。

Wordpressがインストールされているディレクトリにいくと、このような構成になっていると思います

wp-config.php
wp-content

サイト固有のファイルはwp-config.phpと、wp-contentに全て入っていて、それ以外はWPの構成ファイルになるので、こちらで触ることはありません。

今回は、サーバーのお引越しなので、必要なファイルをダウンロードし、データベースをエクスポートします。

wp-contentは全ての画像などのデータや、プラグインの構成ファイルなどが含まれるため、結構な容量が必要です。
直接移す方法もありますが、今回はバックアップも取っておきたいので一度ローカルにダウンロードします。
PCに容量がない場合は、一時的にクラウドなどのサービスの契約や外付けHDなどを使うことを検討してください。

1. 必要なファイルをダウンロード

/wp-config.php
/wp-content

2. データベースにアクセス

conoha wingの場合は、左メニュー: サイト管理 > データベース
から、phpmyadminにログインができます。

使っているDB名がわからない場合は、さっきDLしたwp-config.phpを見ると、DB名やパスワードなどの情報が全て載っているので、それを見てphpmyadminにログインしてください。

3. データベースをエクスポート

phpmyadminにアクセスしたら、「エクスポート」というタブがあるので、タブを開いて「エクスポート」ボタンを押して実行します。
localhost.sqlというファイルがローカルの保存されます。

以上でバックアップのダウンロードが完了です。

サーバーを契約

次にwenarenaのサイトから契約に進みます。

SSH鍵を追加

契約が完了し、コントロールパネルにアクセスできたら、SSH接続するためのSSH鍵を追加します。

まず、左メニュー: インスタンス管理 > SSH鍵 > ボタン[SSH鍵のインポート]をクリックして登録画面を開きます。

もしSSH鍵がまだない場合は、PCのターミナルを開き、以下のコマンドで発行します

コマンドを実行すると、鍵の保存場所を求められます。デフォルトの場所(~/.ssh/id_rsa)で問題なければ、そのままEnter。

生成したSSH公開鍵(id_rsa.pub)の内容を確認します。
cat ~/.ssh/id_rsa.pub

表示された公開鍵(ssh-rsa ...)を、先ほどのSSH鍵のインポート画面から登録します。

SSH鍵名: なんでも大丈夫です(例: myMacbookProなど)
SSH鍵: 公開鍵id_rsa.pubの内容(ssh-rsa ...)

インスタンスを立てる

イメージの選択: Ubuntu(最新で良いかと)

サイズの選択: 2GB or 4GB
今回は4つのワードプレスサイトを移行したのですが、
重要なサイトを4GBのプラン、他の3サイトはほぼ更新もないのでとりあえず2GBにしました。

4GBのプランは月xxxえん
2GBのプランは月xxxえん

正直2GBでも充分サクサク動いたので、様子見て上げていく感じでもいいかも?

インスタンスを分けるかも迷ったのですが、何かあった時に全部死ぬのは怖いので今回はサイトごとにインスタンスを分けることにしました。

なので4つそれぞれまず追加
※動かすまでは費用はかからないので、先にインスタンスを立てちゃいました
※たまに売り切れてインスタンス立てれないことがあります><

SSH鍵の選択: 先ほどインポートしたSSH鍵を選択
リージョンの選択: 日本
インスタンス名: なんでもOKです(今回は各サイト名にしました)

インスタンスを起動

さて、ここまできたらついに起動します。(ここから費用が発生します)
インスタンス一覧から、起動するインスタンスの右端にある「操作」から「インスタンスの起動」を選択します。
※インスタンスを起動しないと、SSH接続をしてサーバーに入ることはできません。

SSH接続してサーバーに入る

準備ができたら、まずはssh接続できるか試してみましょう。
デフォルトの場所に保存したSSH鍵を使用している場合は、以下コマンドで確認ができます。
ssh -v ubuntu@{IPアドレス}
※IPアドレスは、123.123.123.123のような番号とドットの文字列で、インスタンス一覧から確認できます

エラーが特になければOKです。

VSCodeで接続する

これは必須ではないのですが、繋いだ方がファイルなど確認しやすいので繋いでおきましょう。

  1. VSCodeがない場合はここからインストール
  2. 拡張機能をインストール(Remote SSH)
  3. アイコンが追加されるのでそのアイコンをクリック
  4. SSHの設定アイコンをクリック
  5. Users/{name}/.ssh/configを選択する

以下のような内容をconfigに追加して保存する

Host your_site
  HostName 123.123.123.123
  Port 22
  User ubuntu
  IdentityFile ~/.ssh/id_rsa

これで接続できれば、準備完了!

サーバー設定

1. セットアップ

何をしたかわからなくなるのが嫌だったのと、4サイトもあるので、サーバーの初期設定で必要なコマンドはsetup.shに保存することにしました。

  1. VSCodeでSSH接続し、サーバーに入る
  2. ターミナルを開く
  3. setup.shファイルを作成
    nano /home/ubuntu/setup.sh
  4. 以下内容を入力して保存(control[^]+[X])
#!/bin/bash

# 必要なパッケージをアップデート
echo "Updating packages..."
sudo apt update && sudo apt upgrade -y

# Apache、MySQL、PHPのインストール
echo "Installing LAMP stack..."
sudo apt install -y apache2 mysql-server php libapache2-mod-php php-mysql php-xml php-mbstring unzip git

# Apacheモジュールの有効化
echo "Enabling Apache modules..."
sudo a2enmod rewrite auth_basic
sudo systemctl restart apache2

# MySQLセキュア設定(対話型)
echo "Running MySQL secure installation..."
sudo mysql_secure_installation

# 権限の設定
echo "Setting permissions..."
sudo chown -R ubuntu:www-data /var/www/html
sudo chmod -R 755 /var/www/html

# Certbotのインストール
sudo apt update
sudo apt install -y certbot python3-certbot-apache

echo "Setup complete!"

ここで何をやってるかは説明長くなるので端折ります・・・
Wordpressを動かすのに必要なパッケージなどをインストールしたり、色々設定したりしています。

  1. 実行権限を付与
    chmod +x setup.sh

  2. セットアップを実行

cd /home/ubuntu/
./setup.sh

途中で回答を求められますが、私はこのようにしました

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: yes

A: y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2

A: 2

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) 

A: y

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) :

A: y

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) :

A: y

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) :

A: y

スワップ領域を設定

ここで、私は結構ハマったんですが、スワップ領域を追加しておかないと、メモリ不足でサーバーが停止し、接続が切れることが多発します。

  1. スワップ領域を追加
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
  1. 永続化するには、/etc/fstabに以下を追加:
    まず、/etc/fstabのバックアップを取る
sudo cp /etc/fstab /etc/fstab.bak

/etc/fstabを編集

sudo nano /etc/fstab

ファイルの最後に以下の行を追加します。

/swapfile none swap sw 0 0

※スワップ領域を削除する場合は、以下を実行:

sudo swapoff /swapfile
sudo rm /swapfile

注意

  • スワップファイルが存在しないとエラーになる:
    /swapfileを削除した場合は、必ず/etc/fstabから追加した記述を削除
  • スワップはディスクを使用するため、物理メモリよりも遅い。過剰なスワップの使用はパフォーマンス低下を招く可能性がある
  • SSDを使用している場合は、頻繁なスワップ利用がディスク寿命を縮める可能性がある。必要に応じてスワップ利用を最小限に抑える調整を検討する。
  1. スワップ領域の確認
    スワップが有効になっていることを確認します。
    sudo swapon --show

このように出ればOKです

NAME      TYPE SIZE USED PRIO
/swapfile file   2G   0B   -2

WordPress ダウンロード

スワップ領域を追加したら、Wordpressをダウンロードします。

  1. WordPress を公式サイトからダウンロード
cd /var/www/html
sudo wget https://wordpress.org/latest.tar.gz
  1. ダウンロードしたファイルを解凍
sudo tar -xvzf latest.tar.gz
  1. WordPress ディレクトリを適切な名前に変更
sudo mv wordpress your_site
  1. ファイルの所有者と権限を設定
// ubuntu ユーザーを www-data グループに追加
sudo usermod -aG www-data ubuntu

// 所有者をwww-dataグループに変更
sudo chown -R www-data:www-data /var/www/html/your_site

// パーミッションを調整
sudo chmod -R 755 /var/www/html/your_site

仮想ホスト設定

ファイルを作成
sudo nano /etc/apache2/sites-available/your_site.conf

内容

<VirtualHost *:80>
    ServerAdmin your_address@example.com
    DocumentRoot /var/www/html/your_site
    ServerName your-domain-or-ip
    <Directory /var/www/html/your_site>
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

デフォルトの設定を無効化
sudo a2dissite 000-default.conf

新しい仮想ホスト設定を有効化 & リロード

sudo a2ensite your_site.conf
sudo systemctl reload apache2

Apache の動作確認

sudo apachectl -S

出力に *:80 に紐づく your_site.conf が表示されているか確認します。

http://{IPアドレス}にアクセスして、WPの設定画面が出れば一旦OKです。

ファイルをアップロード

これはサーバー内ではなく、ローカルでターミナルを開いて実行してください。

rsync -avz --progress --no-t --no-perms --ignore-existing --rsync-path="sudo rsync" /your_site/wp-content/ ubuntu@123.123.123.123:/var/www/html/your_site/wp-content

/Users/your_name/localhost.sqlはwp-contentがある正しいパスに変更してください。
123.123.123.123は正しいIPアドレスに変更してください。

データベース移行

次にデータベースを移行します。

まずは、tmpなどに先ほどエクスポートしたsqlファイルをサーバーへアップロードします。

rsync -avz --progress --no-t --no-perms --rsync-path="sudo rsync" localhost.sql ubuntu@123.123.123.123:/temp

mysqlの設定

  1. インポートする
sudo mysql -u root < /tmp/localhost.sql

※localhostをエクスポートしている場合のインポート方法です。データベースを指定してエクスポートしている場合はインポート方法が異なります。(その場合は、データベースを作成してからそのデータベースにインポートする必要がある)

MySQLのクライアントにログイン

sudo mysql -u root
  1. データベースを確認
SHOW DATABASES;

先ほどインポートしたデータベースがあるか確認します
※もしDB名がわからない場合は、最初にダウンロードしたwp-config.phpにDB名があります
define( 'DB_NAME', 'your_db_name' );
3. 新しいユーザーを作成

CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'your_password';

CREATE USER 'wp_haku'@'localhost' IDENTIFIED BY 'MQvAsldaEWG$6Dz5';
  1. ユーザーに権限を付与
GRANT ALL PRIVILEGES ON your_db_name.* TO 'wp_user'@'localhost';

GRANT ALL PRIVILEGES ON ud8tg_haku.* TO 'wp_haku'@'localhost';

  1. 権限のリロード
FLUSH PRIVILEGES;
  1. データベース接続のテスト
exit; // 一旦退出する
mysql -u wp_user -p your_db_name
  1. データの書き換え
    URLなどが古いままなので、一旦IPアドレスに変更します。
UPDATE wp_options SET option_value = 'http://123.123.123.123' WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = 'http://123.123.123.123' WHERE option_name = 'home';
exit; // 再度退出します。
  1. wp-config.phpを編集
sudo nano '/var/www/html/your_site/wp-config.php'

以下の内容を設定した情報に変更します

// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'ud8tg_cultive_v2' );

/** Database username */
define( 'DB_USER', 'your_db_name' );

/** Database password */
define( 'DB_PASSWORD', 'wp_user' );

これで、http://{IPアドレス}にアクセスすれば表示されるはずです

ドメインの設定と、SSL設定

最後に、ドメインの設定が必要なのですが、今回は既にあるサイトの移行のため、順番が重要です。
ドメインの移行をしてからSSL設定をする場合、適用されるまでの数分から数時間の間httpが表示されてしまう可能性があります。

SSL証明書を事前にインストール

DNS チャレンジモードを使用して SSL 証明書を取得します(すべてのサイトで適用可能)。以下の手順を参考にしてください:
※この方法を使うと、DNS設定が完全に反映されるまで時間がかかる場合があります。

  1. Certbot を実行
sudo certbot --manual --preferred-challenges dns -d your_domain.com -d www.your_domain.com
  1. Certbot が表示する TXT レコード を ConoHa Wing の DNS 設定に追加します
ホスト名: _acme-challenge
タイプ: TXT
値: Certbot が指示する文字列
  1. すべてのレコードが追加され、反映されたら Certbot に戻って「Enter」を押し、証明書を取得します。

  2. Apache に SSL 設定を追加
    証明書を /etc/apache2/sites-available/your_site.conf に組み込みます。

<VirtualHost *:443>
    ServerName your_domain.com
    ServerAlias www.your_domain.com
    DocumentRoot /var/www/html/your_site
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/your_site/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/your_site/privkey.pem

    <Directory /var/www/html/your_site>
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/your_site-error.log
    CustomLog ${APACHE_LOG_DIR}/your_site-access.log combined
</VirtualHost>

設定を適用

sudo systemctl reload apache2
  1. SSL証明書の自動更新設定
    Let’s Encrypt証明書は90日で期限切れになるため、自動更新を設定します。
sudo systemctl enable certbot.timer

ConoHa Wing の DNS を WebARENA Indigo に向ける

  1. ConoHa Wing の管理画面で、DNS 設定 を開きます。
  2. サイトごとに A レコード を WebARENA Indigo の IP アドレスに変更します。
    your_domain.com → WebARENA Indigo の IP
    www.your_domain.com → WebARENA Indigo の IP
    ※注意:
    この時点では、まだ ConoHa Wing のネームサーバーが有効なため、DNS プロパゲーションの影響を受けずに個別に動作確認が可能です。

動作確認

  1. 各サイトにアクセスし、以下を確認します:
    • 正しく表示されるか
    • SSL 証明書が有効化されているか(ブラウザで鍵マークが表示される)
    • ページスピードや動作に問題がないか
  2. 問題があれば、この段階で ConoHa Wing の DNS 設定を元に戻し、原因を特定して修正します。

すべてのサイトが移行できたら、ネームサーバーをお名前.com に移行

  1. お名前.com で DNS 設定を更新
    ConoHa Wing で設定している内容を、お名前.comのDNS 管理にコピーします。
  • A レコード: WebARENA Indigo の IP
  • 必要に応じて、CNAME や TXT レコードもコピー
  1. すべての内容を確認したら、お名前.com のネームサーバーを有効化します。

ちょっと面倒ですが、段階的移行により、各サイトの動作確認が個別にでき、問題発生時に迅速に対応可能です。
また、SSL 証明書の事前取得により、HTTPS 化の遅れが発生しないのと、最後にネームサーバーを一括切り替えすることで、移行時の混乱や時差が発生しにくいです。

最後に

さて、ではどのくらい早くなったか見てみましょう。
体感はほんとめっちゃ早くなったんですが、
google insitesを見てみると

こんな違う!

ちょっと面倒ですが、いい勉強になりました
参考になったら嬉しいな。

はじめに

2歳の娘を育てながら、フリーランスのフロントエンドエンジニアとして活動しています。
主にフロントエンド開発を担当し、ReactやCanvas、複雑なCSSアニメーションが得意です。デザインやバックエンドも触る機会が多く、幅広い業務を手がけています。

今回、管理しているお客様のWordPressサイトが重く、サーバー移行を決意。これを機にVPSについて学びつつ、具体的な移行手順をまとめました。初めての方でも分かりやすいように工夫しています。


レンタルサーバーとVPS

もともとConoHa WINGを利用していましたが、特にアクセス集中時に表示速度が著しく低下するという課題がありました。例えば、ページの初回読み込みに5秒以上かかるケースが頻発しており、ユーザー体験に影響を与えていました。
このため、より安定したパフォーマンスを求めてVPSへの移行を検討しました。
最終的に選んだのは、WebARENA Indigo(NTT Docomo運営)。
理由はコストパフォーマンスの良さです。

プランや費用については「### インスタンスを立てる」で詳しく説明しています。


移行手順

1. 現行環境のバックアップ

必要なファイルとデータベースを取得します。

ファイルのダウンロード

  1. WordPressの構成ファイルは以下のディレクトリにあります。
    wp-config.php
    wp-content
    
  2. wp-config.phpwp-contentフォルダをローカルに保存します。
    • 以下のコマンドを使用して、サーバーからローカルにダウンロードできます。
      scp -r user@your-server:/path/to/wordpress/wp-config.php /local/path/
      scp -r user@your-server:/path/to/wordpress/wp-content /local/path/
      
    • wp-contentには画像やプラグイン情報が含まれるため、容量が大きくなることがあります。
    • ストレージ不足の場合、クラウドストレージや外付けHDDを検討してください。

データベースのエクスポート

  1. ConoHa WINGの管理画面でphpMyAdminにアクセスします。
    • データベース名やパスワードはwp-config.phpに記載されています。
  2. phpMyAdminで「エクスポート」タブを選択し、データベースをエクスポートします。
    • エクスポートファイル(例: localhost.sql)を保存。

2. WebARENA Indigoの契約

WebARENA Indigoの公式サイトで契約を進めます。
SSH接続用に以下の設定を行います。

SSH鍵の生成と登録

  1. Mac/Linuxユーザーの場合:
    ターミナルで以下のコマンドを実行してSSH鍵を生成します。

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    

    公開鍵(例: ~/.ssh/id_rsa.pub)の内容をWebARENA Indigoに登録してください。

  2. Windowsユーザーの場合:
    Windowsでは、PuTTYgenを使用してSSH鍵を生成します。

    • PuTTYgenを開き、「Generate」ボタンを押してマウスを動かしながら鍵を生成します。
    • 「Save public key」ボタンで公開鍵を保存します。
    • 公開鍵の内容をWebARENA Indigoに登録してください。

    また、Windowsのターミナル環境(WSL: Windows Subsystem for Linux)がある場合、Linuxの手順と同様に ssh-keygen を使用できます。

  3. ターミナルで以下のコマンドを実行し、SSH鍵を生成します。

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    
  4. 公開鍵(例: ~/.ssh/id_rsa.pub)の内容をWebARENA Indigoに登録します。

    • 鍵名: 任意(例: myMacbookPro)。
    • 鍵の内容: 公開鍵(ssh-rsa ...)。

3. インスタンスの作成と起動

インスタンス設定

  • OS: Ubuntu(最新バージョン推奨)。
  • サイズ:
    • 重要なサイト: 4GBプラン。
    • 更新頻度が少ないサイト: 2GBプラン。
  • インスタンス名: サイト名など分かりやすいもの。

起動手順

  1. WebARENA Indigoの管理画面でインスタンスを作成。
  2. SSH鍵を選択し、インスタンスを起動。
  3. ターミナルでSSH接続を確認。
    ssh -v ubuntu@{IPアドレス}
    

4. サーバーの初期設定

必要なパッケージのインストール

  1. 初期設定をスクリプト化します。
    #!/bin/bash
    sudo apt update && sudo apt upgrade -y
    sudo apt install -y apache2 mysql-server php libapache2-mod-php php-mysql php-xml php-mbstring unzip git
    sudo a2enmod rewrite
    sudo systemctl restart apache2
    sudo mysql_secure_installation
    
  2. スワップ領域を追加し、サーバー停止を防ぎます。
    sudo fallocate -l 2G /swapfile
    sudo chmod 600 /swapfile
    sudo mkswap /swapfile
    sudo swapon /swapfile
    sudo nano /etc/fstab
    
    • /swapfile none swap sw 0 0を追記。
      ※スワップ領域を増やしすぎるとSSDの寿命が縮まるので、適切なサイズ(メモリの1〜2倍程度)を設定しましょう。

5. WordPressのセットアップ

ファイルのアップロード

  1. ローカルでダウンロードしたwp-contentとデータベースをサーバーにアップロードします。
    rsync -avz --progress /path/to/wp-content ubuntu@{IPアドレス}:/var/www/html/your_site
    

※もし別の場所に配置したい場合、適切なディレクトリを指定してください。

データベースの移行

  1. MySQLにデータベースをインポート。
    sudo mysql -u root < /path/to/localhost.sql
    
  2. データベース接続情報をwp-config.phpに設定。
    define('DB_NAME', 'your_db_name');
    define('DB_USER', 'your_user');
    define('DB_PASSWORD', 'your_password');
    

仮想ホスト設定

  1. Apacheの仮想ホスト設定を作成。
    sudo nano /etc/apache2/sites-available/your_site.conf
    
  2. 内容を記載。
    <VirtualHost *:80>
        ServerName your_domain.com
        DocumentRoot /var/www/html/your_site
        <Directory /var/www/html/your_site>
            AllowOverride All
        </Directory>
    </VirtualHost>
    
  3. 設定を有効化し、Apacheを再起動。
    sudo a2ensite your_site.conf
    sudo systemctl reload apache2
    

6. SSLとドメインの設定

SSL証明書の取得

  1. CertbotでSSL証明書を取得。
    sudo certbot --manual --preferred-challenges dns -d your_domain.com
    
  2. ApacheにSSL設定を追加。
    SSLCertificateFile /etc/letsencrypt/live/your_site/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/your_site/privkey.pem
    

ドメイン設定

  1. ConoHa WINGのDNS設定をWebARENA IndigoのIPアドレスに変更。
  2. 動作確認後、お名前.comのネームサーバーを更新。

最後に

以上がレンタルサーバーからVPSへの移行手順です。移行後、ページの表示速度が大幅に改善されました。具体的には、Google PageSpeed Insightsのスコアがモバイルで55から85、デスクトップで75から95に向上しました。
また、初回読み込み時間が平均で5秒から1.5秒に短縮され、ユーザー体験が大きく向上しました。
WebP変換・キャッシュ設定・gzip圧縮などの追加施策で、さらに高速化が可能です。

今回の作業が皆さんの参考になれば嬉しいです!

おまけ

その他に私がやったことをさらっと紹介します。
これはまた別の記事をそのうち書きます・・・笑

WebArena Indigo VPSのセキュリティ設定

とりあえず、VPS管理画面でファイアウォールを追加しました。
SSH(22), HTTP(80), HTTPS(443)のみを許可するようにして、他も色々設定見直したりって感じです。

バックアップをとってGoogle driveに保存

rclobeというのを使って、サーバーからGoogle Driveに自動でバックアップを保存するようにしました。
バックアップファイル大きいのでサーバーに残しておけばいいかなーとも思ったのですが、それだとサーバー死んだら終わりなので、この方法にしました。
それを夜中定期実行するようにcronにjobを追加しておけば、とりあえず安心?

怖いので一応定期的に手動でもスナップショット保存する予定です。

github連携

github actionsを作って自動でデプロイできるようにしました。

1

Discussion

ログインするとコメントできます