ロリポップで契約していたウェブサイトの動作が遅すぎたので、サーバーを移行しようと考えていた。小規模なウェブサイトであったし、VPSや新規にレンタルサーバーを契約するほどでもない。
そんな時、月$3.5から利用できるAWSのAmazon Lightsailを知ったので、こちらへ移行することに決めた。ロリポップが月648円だったので、移行したほうが安価でサイトも高速化されることになる。
WordPressはBitnamiのイメージが用意されているため、1クリックで起動が可能。非常に使えるサービスだと感じたので、本記事で紹介したいと思う。
体感として、ロリポップでのウェブサイトが読み込みに5かかるとすれば、Lightsail製のウェブサイトは2といった感じ。Bitnamiのイメージはある程度チューニングされているので、やはり高速だ。
Amazon Lightsailとは
EC2が拡張可能なインスタンスであるのに対し、Amazon LightsailはVPSにあたるサービス。
WordPressだけでなく、MagentoやPlesk、Joomlaもアプリケーションとして用意されている。サーバーのOSはLinuxだけでなく、Windowsもある。
Amazon Lightsailでオススメの利用方法は、
- 大規模ではないウェブサイト
- ウェブアプリケーションの開発環境
- 個人レベルのブログ
だと思う。
いわゆる、ガチなウェブサイトを構築する場合はEC2でインスタンスを作成したほうが良い。
LightsailでWordpressを構築
では、LightsailでWordpressを構築していこう。
といって、Wordpress環境をただ構築するだけなら5分で終わる作業。この記事では、ドメインを紐付け、Let’s EncryptでSSL化を行うまで解説している。
前提として、
- AWSアカウントを持っている
- コマンドラインを見ただけで吐きそうにならない
- IPアドレスをAレコードに登録するなど基本的なDNSの知識があること
- 非常に基本的なVimコマンドが使えること
としたい。
ただし、この記事に書かれている事をコピペすれば良いだけなので、『コマンドラインを見ただけで吐きそうになる』ことがなければ全く問題ないので大丈夫。
Vimコマンドは、以下の
- Escape
- insert(キーボードのAなどをクリック)
- :wq(保存)
ができれば大丈夫だ。
Lightsailにアクセス
ダッシュボードからLightsailを検索し、アクセスする。

Lightsailでインスタンスを作成
『Create Instance』をクリックし、インスタンスを作成していく。

インスタンスのロケーション、OS、アプリケーションを選択していこう。ロケーションは、日本向けのウェブサイトであれば東京を選択するのが最も遅延がなくて良い。OSはLinux、『Apps + OS』でWordpressを選択する。
Multisiteのイメージもあるが、ノーマルのもので構わない。

プランは、3.5ドルの最も小さいサイズを選択する。なんと、起動して最初の1ヶ月間は無料で利用できる。その後も、3.5ドルは約400円なので、そこらのレンタルサーバーより全然安く使用できる。ただし、メモリは512MBなので頻繁なアクセスがあるサイトでは対応できない。

インスタンスのアイデンティティ、つまりは識別する名前を入力する。デフォルトでも良いし、自分で分かりやすい名前にしても良いだろう。

たった、3クリックくらいでWordpress環境が立ち上がる。

『Pending』が『Running』に変われば、もうIPアドレスへアクセスすればウェブサイトが表示される。簡単すぎて驚くだろう。

環境
なお、3.5ドルプランの環境は次の通り。
- 512MB RAM
- 1 vCPU
- 20GB SSD
中小企業のコーポレートサイト、個人のポートフォリオサイト、テスト目的の開発環境としては十分である。
IPアドレスを静的に変更
IPアドレスをダッシュボードから予約し、作成したLightsailのインスタンスに紐付ける必要がある。
『Instance』の隣の隣にある『Networking』へ移動し、『Create Static IP』をクリックする。

『Create Static IP』をクリックすると、IPアドレスを自動でインスタンスのIDと紐付けるか聞かれるので、案内に従おう。

IPアドレスを予約できたので、Static IP Addressにアクセスしてみよう。おなじみの画面が表示されているはずだ。

SSHローカルから接続
ここまでできたら、各種設定を行うためにローカルのコマンドラインからSSHで接続する。
該当のインスタンスの横にある『Downtown』をクリックし、『.pem』ファイルをダウンロードする。

接続に必要なIPアドレスとユーザー名はインスタンスに記載されている。

MacやLinuxの場合、以下のコマンドをTerminalあるいはCommandにペーストし、サーバーと接続する。pemファイルのパーミッションを変更するのも忘れずに。
chmod 600 /ダウンロード或いは保存したディレクトリ/ファイル名.pem
ssh -i /ダウンロード或いは保存したディレクトリ/ファイル名.pem [email protected]アドレス
Bitnamiのロゴを消す
Bitnamiのイメージを用いてWordpressサイトを構築したため、デフォルトではロゴが右下に表示されている。これを、以下のコマンドを入力し削除しよう。
sudo /opt/bitnami/apps/wordpress/bnconfig --disable_banner 1
反映させるためウェブサーバーを再起動する。
sudo /opt/bitnami/ctlscript.sh restart apache
ログインパスワードを確認
『IPアドレス/wp-admin』または『IPアドレス/wp-login.php』へログインした際のパスワードを確認する。
cat bitnami_application_password #ここに表示される英数字がパスワード
ダッシュボードへログイン
先程確認したパスワードでログインする。ユーザー名は『User』がデフォルトだ。

アクセスできると、Jetpack含む各種プラグインがデフォルトでインストールされた状態であることを確認できる。余分なプラグインとテーマは削除しておこう。

お好みの言語、時間帯、日時のフォーマットへ変更しておくと良いだろう。

IPアドレスをAレコードへ反映
DNSを管理しているプロバイダーで、インスタンスのIPアドレスをAレコードへ反映させよう。
Cloudflareの場合は、『Add Record』-> 『A』->『最上位ドメインなら@、サブドメインならサブドメインをNameに』->『IPv4 AddresにインスタンスのIPアドレス』->『Add』 でDNSを指定できる。

Cloudflareの使い方は、こちらの記事で確認できる↓
Digコマンドを叩き、DNSが浸透しているかをチェックする。AレコードがインスタンスのIPアドレスであれば成功だ。
dig example.com

Let’s EncryptでSSL証明書を発行
Let’s Encryptで無料のSSL証明書を発行していこう。
$ cd /tmp
$ git clone https://github.com/letsencrypt/letsencrypt
$ cd letsencrypt
$ ./letsencrypt-auto
$ ./letsencrypt-auto certonly --webroot -w /opt/bitnami/apps/wordpress/htdocs/ -d example.com
$ sudo cp /etc/letsencrypt/live/example.com/fullchain.pem /opt/bitnami/apache2/conf/server.crt
$ sudo cp /etc/letsencrypt/live/example.com/privkey.pem /opt/bitnami/apache2/conf/server.key
$ sudo /opt/bitnami/ctlscript.sh restart apache
『example.com』の部分に、独自ドメインを記載すればOK。『Congratulations』と祝福されれば正常に発行されている証だ。

サーバーを再起動する
sudo /opt/bitnami/ctlscript.sh start
URLを指定
- WordPressアドレス
- サイトアドレス
の2点を『wp-config.php』に記載する。
define('WP_SITEURL', 'https://example.com/');
define('WP_HOME', 'https://example.com/');
ダッシュボードで確認し、反映されていれば成功!

おまけ
おまけとして、オススメのちょっとしたカスタマイズを紹介する。
php.iniを編集
ファイルのアップロード上限やタイムアウトまでの時間を編集する。
vi /opt/bitnami/php/etc/php.ini
Vim:『Escape』+『A』を入力
max_execution_time = 360
post_max_size = 128M
upload_max_filesize = 128M
default_socket_timeout = 360
Vim:『:wq』を入力
サーバーを再起動する。
sudo /opt/bitnami/ctlscript.sh restart apache
セキュリティ
『wp-config.php』を上のディレクトリに移動し、外部の者がアクセス出来ないようにする。
『wp-config.php』はデータベースの接続情報だけでなく、認証用ユニークキーなど重要なセキュリティ情報も含んでいるので、セキュリティを向上させることは重要だ。
cd apps/wordpress/htwords
sudo mv wp-config.php ../
ウェブサイトを確認して問題なく表示されていることを確認。
パーミッションを変更する。
chmod 0440 wp-config.php
まとめ
レンタルサーバーよりも安価で、高いパフォーマンスを誇るAmazon Lightsailで独自ドメイン&SSL化されたWordpressを構築してきた。
本記事と全く同じ事をすれば、構築には成功するはず。簡単なコマンドラインさえ使えれば、安定したウェブサイトを構築できるのは大きなメリット。
VPSとして機能するのでレンタルサーバーよりも各種設定を詳細に行え、セキュリティを高めることができる。
本記事が参考になれば幸いだ。
色々面倒な人は、Mixhostでサクッと作るのがオススメ。
今回構築&移行したウェブサイトは↓。結構読み込みは速いはず。これから少しチューニングしたい。
参照: