wordpressのブログドメインをieServerからAWSのRoute53に乗り換えた時の手順


AWSのEC2にwordpressを入れてブログ用のサーバにしており、ドメインは無料で利用できるieServerで取得して利用していました。

ただ、ここ数週間ieServerの問題か、URLを名前解決してくれないことがしばしばあり、アクセス数に大分影響していました。(要はブログにアクセスできない時がしばしば発生している)

ieServerは有限会社アゴラが運営しているようですが、営業活動を休止しており、無料のため善意で運営されている気がするのでいつ使えなくなっても仕方ないリスクがあるので、これを機にAWSのRoute53に乗り換えることにしました。

結構大変だったので手順をまとめておきます。

今回やったことの概要

Route53で新しいドメインの取得DNS登録まで行いました。そのため、ブログサイトのドメインも変更しています。

費用

今まではieServerで無料でしたが、Route53では費用がかかります。広告収入を上回らないようにしたいので費用も計算しました。

ドメインは「.com」のサブドメインにしましたが、これで12$/年の維持費がかかります。また、ホストゾーンの管理費が0.5$/月、クエリが100万リクエストまで0.4$/月といった感じです。

合計で月間約200円の維持費といった費用感になります。そこまで高くはなく広告費で十分賄えるので良しとしました。

1. EC2のグローバルIPを固定化する

今まではEC2を再起動するたびにグローバルIPが変わってしまいましたが、Elastic IPを使ってこれを固定IPにします。

EC2の管理画面のメニューにあるElastic IPからIPを払い出し、EC2にアタッチします。EC2に1つアタッチするだけなら無料のようです。

注意点として、これを行った瞬間、グローバルIPが変わってしまいます。

2. Route53でドメインを購入する

Route53のメニューを開き「ドメインの登録」からドメインを購入します。

値段はTLDによって変わりますが、「.com」のドメインであれば年間12$で購入できます。ieServerのドメインとは同じには出来ないと思いますので、新しくドメイン名を決めて購入します。

購入してから使えるようになるまでは多少時間がかかります。私の場合30分程度で利用可能になりました。

3. Route53でホストゾーンを設定する

Route53メニューのホストゾーンからドメインとIPの紐づけ設定を行います。(具体的にはDNSへAレコードを追加する)

ドメインを購入すると勝手にホストゾーンが1つ設定されます(NSレコードとSOAレコード)。これにAレコードを追加して、Elastic IPで取得したIPを設定します。

以上で新しく取得したドメインが名前解決されブラウザなどからアクセスできるようになります。ただ、ブログ側のドメイン変更作業がいろいろ必要なので、ここからはその作業を書いていきます。

4. SSL証明書に新しいドメインを追加する

サイトをHTTPSにしていたためSSL証明書にドメインを追加する必要があります。証明書に登録されていないドメインへのアクセスはエラーの原因となります。

私はLet’s Encryptを利用していたので、以下のコマンド1つで更新完了しました。証明書を再読み込みするためにnginxの再起動も必要です。

certbot-auto certonly --webroot -w /var/www/html  -d old_domain -d new_domain --email mail_addr
service nginx restart

ここで少し以下のエラーでハマりました。どうやら、ドメインの認証をするために、80番ポートで-wオプションで指定したドキュメントルート配下に「.well-known/acme-challenge/」フォルダとファイルを作ってアクセスして検証しているようです。そのため、Webサーバでここへのアクセスが正常にできない設定になっていると証明書の更新が失敗します。

Type:   unauthorized
Detail: Invalid response from
http://www.mussyu1204.com/.well-known/acme-challenge/xxx

一時的にnginxの設定を変えて上記にアクセスできるようにして対処しました。

5. wordpressのドメイン変更作業

wordpressのドメイン変更作業も必要となります。私の場合はサイトネットワークを利用していたので、その前提で記載します。

5.1. データベース設定の書き換え

5.1.1. wp_optionsテーブルにある”siteurl”と”home”のURLを変更する

update wp_options set option_value = 'https://www.mussyu1204.com/wordpress' where option_name = 'siteurl';
update wp_options set option_value = 'https://www.mussyu1204.com/wordpress' where option_name = 'home';

5.1.2. wp_siteテーブルのドメインを変更

update wp_site set domain = 'www.mussyu1204.com';

5.1.3. wp_sitemetaテーブルの”siteurl”のURLを変更

update wp_sitemeta set meta_value = 'https://www.mussyu1204.com/wordpress/' where meta_key = 'siteurl';

5.1.4. wp_blogsテーブルのドメインを変更

update wp_blogs set domain= 'www.mussyu1204.com';

5.1.5. wp_#_optionsの”siteurl”と”home”のURLを変更する

#はサイトネットワーク内の各ブログのIDになります。IDはwp_blogsテーブルの中身で確認できます。

update wp_4_options set option_value = 'https://www.mussyu1204.com/wordpress/aa' where option_name = 'siteurl';
update wp_4_options set option_value = 'https://www.mussyu1204.com/wordpress/aa' where option_name = 'home';

5.2. wp-config.phpのドメイン名を変更する

wordperssのwp-config.phpファイルを編集します。以下の行のドメイン名を変更します。

define('DOMAIN_CURRENT_SITE', 'www.mussyu1204.com');

以上で必要な設定変更はすべてになります。変更後phpサーバを再起動します。

/etc/init.d/php73-php-fpm restart

6. nginxにリダイレクト設定を行う

古いドメインからのアクセスは新しいドメインに301リダイレクトするようにnginxに設定を行います。これを行わないとSEOの評価が新しいドメインへ継承されないためです。

以下のようなリダイレクト設定を追加し、元々のサーバ設定のserver_nameからold_domainを削除します。

server {
  listen 443 ssl;

  ssl_certificate /xxx/fullchain.pem;
  ssl_certificate_key /xxx/privkey.pem;

  server_name old_domain;
  return 301 https://new_domain$request_uri;
}

7. adsenseのドメイン変更

ブログの広告にgoogle adsenseを使っていたためこのドメイン変更を行う必要があります。何もしないと新しいドメインでページを表示したときに広告が表示されなくなりました・・・

ただ、ドメインを変更する手段はなく、新しいサイトを登録・審査する必要があるようです。

審査に数日かかるため、数日間広告が表示できなくなるという悲劇・・・

8. サーチコンソールのドメイン変更

SEO対策のためgoogle search consoleには登録していると思いますが、こちらでも新しいドメインに変更する必要があります。

adsenseと異なり、こちらはアドレス変更ツールというものがあり、ドメインの移行が出来るようです。

詳しい手順はこちらを参照。

9. その他

その他にしたことはamazonのアソシエイトセントラルへのドメイン追加、GTMのトリガ変更などです。ここら辺は個人差があるのでさらっとですが。

といった感じで、思ったよりやることが多く大変でした。そして、考えなしにやっていくと暫く広告が出せなくなったりするため、順序は考慮した方がよいかもしれません・・・

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です