さくらレンタルサーバのWordPressをAWSに移行してみた


はじめに

  • 前回は、AWSのアカウントを再登録し、無料利用枠を使うことができるようになるところまで行いました。
  • そこで、今回は無料利用枠内でできるWordPressのチュートリアルを行います。また、この機会を利用して、就活のために作成したさくらレンタルサーバ上のポートフォリオを移行してみました。

目次

  1. さくらサーバからデータを取得
  2. AMIのWordPressを利用してEC2を構築
  3. WordPressにログイン
  4. EC2にWordPressのテーマデータをアップロード
  5. WordPressにテーマが追加されているか確認

1. さくらサーバからデータを取得

  • WordPressのサイトを別のサーバーに移行する方法【初心者向け】の「WordPressのエクスポート・インポートを使用する方法」を参考に移行しようとしました。しかし、元となる自作のカスタムテーマの移行ができませんでした。そのため、そのテーマのみ手動で移行しました。
  • さくらレンタルサーバ上のテーマをsftpコマンドを利用してローカルに取得します。

1.1さくらサーバにログイン

まず、sftpコマンドに必要なさくらサーバの情報を取得します。
さくらサーバにログインし、FTPサーバFTPアカウントを確認します。

1.2 ターミナルからさくらレンタルサーバへ接続

ターミナルを起動し、sshで接続できることを確認します。
ssh [アカウント名]@[ドメイン名]コマンドで実行します。途中パスワードを聞かれるので、入力します。

% ssh [アカウント名]@[ドメイン名].sakura.ne.jp
The authenticity of host 'xxxxxxxxxx.sakura.ne.jp (219.94.192.65)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'xxxxxxxxx.sakura.ne.jp' (ECDSA) to the list of known hosts.
[email protected]'s password: 
FreeBSD 9.1-RELEASE-p24 (SAKURA17) #0: Thu Feb  5 10:03:29 JST 2015

Welcome to FreeBSD!

無事接続できました。以下の記事を参考にしました。

ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Are you sure you want to continue connecting(yes/no)?

途中、上記の質問が出てきました。
こちらは、SSHクライアントからSSHサーバへ最初に接続する際に出てくるみたいです。

接続先のサーバが正しいものか確認されます。そこで、yesを選択すると、fingerprint(IPアドレス、鍵の暗号方式、公開鍵)が~/.ssh/known_hostsへ保存されます。一度保存すると以後、この質問は聞かれません。
保存されている公開鍵と、次回以降に取得する公開鍵が一致しないとアラートが出ます。なりすまし防止機能の役割があります。

1.3 SFTPコマンドを利用してデータを取得

sftpコマンドを利用して、サーバのデータを取得します。
まず取得したいデータが存在するディレクトリまで移動します。その後、getコマンドを利用してデータを取得します。

% sftp [アカウント名]@[ドメイン名].sakura.ne.jp
Connected to [アカウント名]@[ドメイン名].sakura.ne.jp.
sftp> cd www
sftp> get -r myportfolio

無事さくらサーバのWordPressの自作テーマのデータを取得できました。

SFTPコマンド

ftpコマンドのように対話的なファイル転送をするプログラムで、SSHで暗号化された通信経路でファイル転送を行います。
- Linux入門 sftp - 安全なファイル転送 - Linuxコマンド

2. AMIのWordPressを利用してEC2を構築

  • ここからは、AWSのWordPressのチュートリアルを中心に進めていきます。
  • AMIのWordPressを元にEC2を構築するところまで行います。

2.1 EC2ダッシュボードからインスタンスカテゴリへ遷移

AWSマネジメントコンソールにログインし、検索エリアで「EC2」と入力し選択すると、

EC2ダッシュボードへ遷移します。

インスタンスカテゴリのインスタンスをクリックし、インスタンスの管理画面へ遷移します。

2.2 EC2を構築

これからEC2を構築するために、インスタンスの設定を行います。
手順は大きく分けて5つあります。
「インスタンスを作成」を押下し、Amazonマシンイメージ(AMI)を選択するページへ遷移します。

①AMIの選択

最初に、左の項目から「AWS MarketPalce」を選択します。次に、検索エリアで「wordpress」と入力し検索します。すると、一番上位の検索結果にWordPress Certified Bitnami and Automatticが出てくるので、それを選択します。

②インスタンスタイプの選択

次にインスタンスタイプの選択をします。
無料利用枠対象のt2.microを選択します。こちら以外を選択してインスタンスを作成してしまうとお金がかかってしまいます。

③タグの追加

インスタンスの設定とストレージの追加はデフォルトの設定を使うので、タグの追加のステップまでとばします。
キーに「Name」、値「wordpress」と入力します。

④キーペアの作成

セキュリティグループの設定もデフォルトの設定を使うので、確認のステップまでとばします。

今までの設定内容を確認しながら、一番下までスクロールし、起動ボタンをクリックします。

すると、キーペアの設定モーダルが表示されます。そこで、新しいキーペアの作成を選択し、キーペア名に「wordpress」と入力します。その後、キーペアのダウンロードを押下し、プライベートキーファイルをダウンロードします。このファイルは、後の自作のカスタムテーマをアップロードする際に使います。
最後に、「インスタンスの作成」をクリックし全ての設定が完了します。

キーペアなしで続行を選択してはいけないです!!
選択すると自作のカスタムテーマを転送することができなくなります。インスタンス作成後に、修正することも不可能ではないですが、初心者にはとても難しく感じました。もしも間違えた場合は、一度作成したインスタンスを削除し、再度新しくインスタンスを作成するのが一番てっとり早いです。

⑤設定完了

インスタンス設定が完了すると、こちらの画面が表示されます。
設定が完了したので、一度インスタンス管理画面へ遷移します。

すると、1つインスタンスが追加されていることが確認できます。ステータスチェックの項目が初期化していますになっているはずです。実は、インスタンスの作成には、5~10分ほど時間がかかってしまいます。つまり、この状態はまだインスタンスが作成されていないことを示しています。
そのため、インスタンスの作成完了ステータスである2/2チェック...になるまで放置する必要があります。

無事EC2インスタンスを作成することができました!!

3. WordPressにログイン

  • WordPressにログインします。

3.1 wordressのログイン画面へ遷移

まず、先ほど作成したEC2インスタンスを選択し、IPv4 パブリック IPをコピーします。

その後、任意のブラウザでIPアドレスを貼り付け、末尾に/adminを追加して検索します。
すると、以下のようなwordpressのログイン画面が表示されるはずです。

3.2 パスワードをコピー

先ほどのEC2インスタンスのログからパスワードを取得することができます。
「アクション」→「インスタンスの設定」→「システムログの取得」と遷移します。

モーダル画面が表示されるので、下にスクロールしてください。
スクロールしていくと、以下のような形でパスワードが書いてあるはずです。

3.3 ログイン

ユーザ名はuserと入力し、パスワードは先ほどコピーしたものを入力すると....
無事、wordpressにログインすることができました!!

4. EC2にWordPressのテーマデータをアップロード

4.1 ターミナルからEC2インスタンスへ接続

まず、「2.2 EC2を構築、④キーペアを作成」を行った際に、ダウンロードしたwordpress.pemファイルを「~/.ssh/」配下に移します。
その後、ssh -i [.pemファイル] [ユーザ名]@[public IP]コマンドを利用して接続します。
この時、ユーザ名はec2-userではなくubuntuにする必要があります。EC2で利用するOSによってユーザ名の初期値が異なります。

% ssh -i ~/.ssh/wordpress.pem [email protected]
The authenticity of host 'ec2-XXXXXXXXXX.us-east-2.compute.amazonaws.com (XXXXXXXXXXXXX)' can't be established.
ECDSA key fingerprint is SHA256:GNlXYjcZdAj+atIK1/omBfETi+Hsn4J1YpO1VjH14Q0.
Are you sure you want to continue connecting (yes/no)? yes 
Warning: Permanently added 'ec2-XXXXXXXXXX.us-east-2.compute.amazonaws.com,XXXXXXXXXX' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-1102-aws x86_64)
*** System restart required ***
       ___ _ _                   _
      | _ |_) |_ _ _  __ _ _ __ (_)
      | _ \ |  _| ' \/ _` | '  \| |
      |___/_|\__|_|_|\__,_|_|_|_|_|

  *** Welcome to the Bitnami WordPress 5.3.2-3                     ***
  *** Documentation:  https://docs.bitnami.com/aws/apps/wordpress/ ***
  ***                 https://docs.bitnami.com/aws/                ***
  *** Bitnami Forums: https://community.bitnami.com/               ***

#######################################################
###    For frequently used commands, please run:    ###
###         sudo /opt/bitnami/bnhelper-tool         ###
#######################################################

bitnami@ip-XXXXXXX:~$ ls

4.2 sftpコマンドを利用してデータを取得

sftpコマンドを利用して、EC2インスタンスへデータを転送します。
まず、sftpコマンドでsftpクライアントを立ち上げます。次に、cdコマンドで転送先のディレクトリまで移動します。その後、putコマンドでデータを転送します。

themes % sftp -i ~/.ssh/wordpress.pem [email protected]  
Connected to [email protected].
sftp> cd apps/wordpress/htdocs/wp-content/themes/
sftp> put -r myportfolio
Uploading myportfolio/ to /home/bitnami/apps/wordpress/htdocs/wp-content/themes/myportfolio

5. WordPressにテーマが追加されているか確認

先ほど転送した自作のカスタムテーマが存在するか確認します。
「外観」→「テーマ」でテーマの一覧が見れるページに遷移します。デフォルトのテーマ以外に、転送した自作のカスタムテーマが追加されているはずです!

まとめ

  • AMIを利用することにより、非常に簡単にWordPressEC2を構築することができました。
  • ただ今回は、セキュリティーやドメインの設定、AWSの特性生かした冗長構成などは全く行っていません。
  • そのため、次回はAMIを使用せずに、WordPress用のEC2を構築し、WordPressで利用するMySQL用のEC2も別途構築したいと思います。また、VPCやELB、Route53なども利用したいと思います。