XserverからAmazon Lightsailに乗り換えて費用を半額に抑えた話。

ブログ、引っ越しました(見かけ上の変化なし)

やりたいこと(要件)

  • XServer の月額更新が X10 プラン 1,100 円(1 か月更新)で割高なので維持費削減したい。
  • WordPress の CMS は慣れてきたので、そのままにしたい。
  • 今まで投稿した記事はそのまま維持したい。
  • ドメインは地味に成長しているので、そのまま継続して活用したい。

まとめ

XServer(X10 プラン)から Amazon Lightsail に乗り換えてサーバーの月額使用料が半額になった。
ドメインは変わらず、サイト更新などの使い勝手もおおむねそのまま。
副次的には、AWS のサービスを連携できるようになって技術検証が可能になって嬉しい。

これまで これから
サーバー XServer Amazon Lightsail
費用(月額) 1,100 円 3.5 ドル (≒400 円)
ドメイン管理 お名前ドットコム Amazon Route53
CMS WordPress WordPress
HTTPS 化 XServer 独自 Let’sEncrypt

完成したサービス構成

最終系。Route53を使ってLightsailにルーティングします。

やりたかったけどできなかった

計画当初はこんなイメージだった。本当はこうしたかったの図。CloudFrontをつかってLightsailにルーティング。

  • CDN 使ったユーザーにやさしいサービス提供
    • CloudFront
  • Web サイトの HTTPS 化
    • ACM(Amazon Certificate Manager)

www.lifeinprogram.comには ACM で発行した証明書を CloudFront にアタッチして接続できた。
lifeinprogram.comには ACM で証明書を発行したが、Lightsail インスタンスにアタッチする方法が分からず無理だった。
Route53 を使って、lifeinprogram.comからwww.lifeinprogram.comに CNAME でルーティングを飛ばそうと思ったが、lifeinprogram.comが ZeroApex なので設定ができなかった。

実施手順

  • WordPress のエクスポート

    所要時間:30 分
    Xserver 上のワードプレスの管理画面にアクセスして、プラグイン「All-in-One Migration」をインストールします。
    インストール・有効化して、エクスポート形式を「FILE」にして下さい。(lifeinprogram.com は 500MB くらいでした)

    プラグインをインストールする意図

    ※simplicity2 テーマが 2020/05/05 の時点ではテーマ検索しても見つかりませんでした。
    丸ごとエクスポート・インポートすることでテーマ損失を回避します。
  • Amazon Lightsail でインスタンス生成

    所要時間:15 分
    公式ドキュメント(Amazon Lightsail で Linux/Unix ベースのインスタンスの使用を開始する)をなぞってポチポチするだけ。
    Wordpress ログインも手順(Amazon Lightsail インスタンスからの WordPress の使用開始)に書いてある通り。

  • Lightsail インスタンスに静的 IP を割り当て

    所要時間:2 分
    公式ドキュメント(静的 IP を作成し、Amazon Lightsail のインスタンスにアタッチする)をなぞってポチポチ。
    Wordpress 構築までならここまでで完了。移行は既存の WordPress を引越しする手順。

  • お名前ドットコムの取得済みドメインを Route53 へ移管(※省略可。)

    移管費用:12 ドル
    所要時間:45 分 – 60 分移管操作は Route53 上で行います。 操作自体は 5 分くらいで終わりますが、待ち時間が 30 分近くかかって長いです。
    ※移管失敗しても払い戻されるので、あんまり心配しなくてもよいです。
    Amazon から見たドメインに問題がなければ、お名前ドットコムと Amazon どちらからもメール認証が届きます。

    ドメインが移管できるかどうかは、要件が決まっています。(最上位ドメインの移管に関する要件)

    • 要件の TL;DR;
      • ドメイン取ってから 60 日以上たっている
      • ステータスコードが該当するコード以外。(ok なら大丈夫)
        • clientTransferProhibited
        • pendingDelete
        • pendingTransfer
        • redemptionPeriod
        • serverTransferProhibited
      • 前回移管して 60 日間経過している。
      • 期限切れドメインは、失効から 60 日以上たっている。
    • 独自ドメインが要件にあってるのか確認する。
      whois コマンドで出力された内容を目視すれば分かります。

      whois ドメイン名
      e.g.)
      whois lifeinprogram.com
      
    • 参考 URL
      お名前.com から Amazon Route 53 へドメインを移管する
  • Route53 でホストゾーンの作成

    所要時間:30 分(DNS 適応にはちょっと時間かかります。)
    最終形はこう。

    Route53設定画面。デフォルトで作成された2つのレコード以外にも、2つのレコードを追加しました。

    • ホストゾーン作成
      ホストゾーン作成時は取得済みドメインを入力(e.g. lifeinprogram.com)する。
      ホストゾーンができたら、デフォルトでタイプ NS とタイプ SOA の 2 つが出来上がっているはず。
      ここに、Lightsail の静的 IP と、wwwサブドメインを 1 つずつ作成する。
    • レコードセット作成(トップドメイン -> Lightsail 静的 IP)
      人間にわかるアドレス名で DNS 適応します。

      パラメータ 入力値
      名前 空のまま(つまりトップドメイン)
      タイプ A
      エイリアス いいえ
      TTL 300(デフォルトまま)
      Amazon Lightsail でアタッチした静的 IP のコピペ
      e.g)172.217.174.99(これは google のアドレス)
      ルーティングポリシー シンプル
    • レコードセット作成(サブドメインwww -> トップドメイン)
      wwwサブドメインを追加して、wwwなしに遷移させる。

      パラメータ 入力値
      名前 www
      タイプ A
      エイリアス はい
      エイリアス先 先ほど作成した A レコードの名前を選択
      e.g.)lifeinprogram.com.
      ルーティングポリシー シンプル
      ターゲットの正常性の評価 いいえ
  • ドメインのネームサーバーを登録

    所要時間:5 分
    お名前ドットコムで実施するか、Route53 で実施するかで手順が若干違う。
    作成したホストゾーンの、「タイプ :NS」 にns-xxxx.awsdns-xx.orgなど 4 つあるので、それをコピペする。
    Route53 の場合、登録済みドメイン(e.g. lifeinprogram.com)にネームサーバー項目にコピペした 4 つを追記。
    (末尾の.は削除して追記する)
    DNS 設定は長いと 3 日程度インターネット上の DNS サーバーにキャッシュされるので、適応には時間がかかります。

  • conf.php の書き換え

    所要時間:10 分
    Lightsail のコンソールから、ターミナルを起動します。(SSH でもいいです)viまたはnanoでファイルを書き換えます。

    sudo nano /opt/bitnami/apps/wordpress/htdocs/wp-config.php
    

    書き換え値。HTTPS のアドレスに変更してください。
    (インポート前に書き換えておかないとパーマリンクが静的 IP 表示になり、今までの投稿リンクが壊れます。)

    //Comment out origin definitions.
    //define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/');
    //define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/');
    define('WP_SITEURL', 'https://独自トップドメイン.com');
    define('WP_HOME', 'https://独自トップドメイン.com');
  • bitnami ロゴの削除

    所要時間:2 分
    画面右下にあるぺらっとページめくり風なアイコンを削除します。

    sudo /opt/bitnami/apps/wordpress/bnconfig --disable_banner 1
    sudo /opt/bitnami/ctlscript.sh restart apache
    

    XServer 運用だと存在しなかったやつ。
    Lightsail だと bitnami で wordpress のパッケージ管理してるから仕方ない。

  • WordPress のインポート

    所要時間:30 分
    エクスポートした FILE をそのままインポートするだけ。
    事前にSITE_URLを変えておかないと、インポート後のパーマリンクが壊れるので注意

    ファイルサイズが大きい場合

    プラグインで更に「All-in-One WP Migration File Extension」をインストール、有効化します。
    これにより512MBでインポート可能になります。
    インストール手順は公式(Install Instructions for File Extension)を参考にして下さい。
    かいつまんで言うと、プラグインを zip で DL して、zip を読み込ませることで WordPress にプラグインインストールします。
  • LetsEncrypt で証明書の発行

    所要時間:15 分
    LetsEncrypt をクローンして、独自ドメインに対して証明書発行。
    その後、Apache の再起動を行って適応擦れば終わり。コマンドを順次実行すれば OK です。

    cd /tmp
    git clone https://github.com/letsencrypt/letsencrypt
    cd letsencrypt
    
    ./letsencrypt-auto
    ./letsencrypt-auto certonly --webroot -w /opt/bitnami/apps/wordpress/htdocs/ -d 独自ドメイン.com
    sudo cp /etc/letsencrypt/live/独自ドメイン.com/fullchain.pem /opt/bitnami/apache2/conf/server.crt
    sudo cp /etc/letsencrypt/live/独自ドメイン.com/privkey.pem /opt/bitnami/apache2/conf/server.key
    
    sudo /opt/bitnami/ctlscript.sh restart apache
    

感想

とりあえず費用は抑えられたので当初目的は達成できてヨシ。
CloudFront あたりはもっとルーティングあたりに時間かければなんとかなりそう。
もしわかったら別記事か同記事を更新する。

所要時間以外にも、調べものしながら実施したから実際 2 日くらいかかってしまった。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする