AWSにWordPressを移行する 計画編
最近Alexaのカスタムスキル などをいじるために、AWSに登録しました。
AWSに登録すると1年間の無料枠があります。
せっかくなのでXSERVERで運営していた最近ほとんど更新していなかったこのブログを移行できないかと調べてみました。
移行の方針
なるべく安く
無料期間終了後もXSERVERのX10プラン(月額1000円、年間12000円)と同等もしくは安く運営できるのが条件です。
複数ドメインを移行
サブドメインでない2つのWordPressサイトを移行します。
SSLを使用
その内1サイトはSSLを使用しているのでSSLを使用します。
AWSのサービスと料金
EC2
リーズナブルな汎用インスタンスのtシリーズが候補です。最初の1年はEC2のt2.microが無料で使用できます。実はt2よりもt3a, t4g(arm)の方がコストパフォーマンスが良いので、1年後にはそれらに乗り換えます。複数年契約のリザーブドインスタンスにするとさらに料金が安くなります。
インスタンス | CPU | Memory | オンデマンド料金 | リザーブド料金(3年前払い) |
t2.micro | 1 | 1GiB | $0.0152/h | $172 |
t3a.micro | 2 | 1GiB | $0.0122/h | $121 |
t4g.micro | 2 | 1GiB | $0.0108/h | $107 |
Amazon EC2 Reserved Instances Pricingより
オンディマンド料金でもt4gにすれば月額$8.1なので十分安いですが、3年前払いすれば$2.97と激安です。リザーブド料金には少し高くなりますが、途中でインスタンスを乗り換えできるコンバチブルプランもあります。
EC2のこれらのインスタンスを使用するにはディスクとしてEBSの料金が別途かかります。gp3を使用するとデフォルトでは1月あたり$0.096/GBなので10GB程度を使うとすると約$1程度追加でかかります。(Amazon EBS の価格より)
1年間は30GBまで無料です。
またデータ転送には別途料金がかかります。月1GBまでは無料ですが、それ以降は$0.114/GBかかります。(Amazon EC2 オンデマンド料金より)
LightSail
EC2だとWordPress等のインストールは自分で行う必要がありますが、LightSailを使用するとWordPressインストール済みのインスタンスを使用することができます。最低料金は1ヶ月$3.5です。(Amazon Lightsail 料金表より)
ディスクやデータ転送量も込みのシンプルでいいプランだとは思うのですが、無料枠が1ヶ月のみです。未確認ですが、Apacheの設定を弄れば、複数ドメインのWordPressを運用するのは可能なのかと思います。
Route53
AWSにドメインをホストするのに必要です。1ホストあたり$0.5かかります。
EC2でのWordPressのセットアップ
おそらく1番簡単なのはマーケットプレースにあるWordPressインストール済みのAMIを使用することです。ただしWordPressがあるのはt2やt3aなどx86-64のインスタンスのみで、Armベースのt4gにはAMIがありません。t2とt4gには互換性もないので、インスタンススナップショットを使って移行することもできません。
MySQLやApache等WordPressに必要なコンポーネントを一つずつインストールして設定すれば良いのですが、1年後に同じ作業をやるとなると、すっかり忘れて一からのセットアップになりそうですが、公式のチュートリアルがあるので迷うことはなさそうです。
今回は比較的ポータブルに環境を構築できそうなので、勉強も兼ねてDockerを使ってみることにしました。
AWSでのSSLの設定
元々XSERVERのLet’s Encryptを使っていたので、AWSでも無料の証明書を使います。EC2で同じくLet’s Encryptを使う、もしくはCDNサービスであるCloudFrontを使用すれば、Amazonの提供する証明書が無料で使用できます。
EC2でLet’s Encryptを使うには証明書の更新を行う必要がありますが、LEGOやCertBotといったツールを使えば簡単に自動化できそうです。
CloudFrontを使用すると、証明書の管理は不要になる上、コンテンツがキャッシュされるので、貧弱なホストでもパフォーマンスを気にする必要がなくなります。コストもEC2のデータ転送量とほとんど変わりません(1Gの無料枠がなくなるのみ)。しかも1年間は50Gまで無料です。
コスト概算
無料枠があるうちは、EC2を使えばRoute53の$1のみ。
1年後はt4gのリザーブドインスタンス$3 + EBS $1 +Route53 $1の合計$5+CloudFrontの通信量が最低料金になりそうです。
結論
1年間の無料枠を活用するため、当初はEC2のt2.microを使用します。LightSailも良さそうですが、EC2から移行するのは二度手間になりそうなので、その後はt3aかt4gのリザーブドインスタンスに移行します。
t4gはArmベースなので、多少移行に手間がかかりそうですが、コストパフォーマンスを考えるとできればt4gにしたいところです。Dockerを使ってなるべくポータブルな環境を構築してカバーしたいところです。
CloudFrontは追加料金もほぼなく使えるので、できることなら活用したいところです。(実はCloudFrontの設定が一番手間取りました。)