EC2+wordpressのブログをCloudfront+S3+Astroに変えてコストを削減
2023/04/15
今までAWSのEC2にwordpressを構築してブログ運用していましたが、表示が遅いこととコストが少ないけどかかってしまっているため、性能とコストを改善するためにCloudfront+S3+Astroの構成に変えて引っ越しを行いました。
Astroとは
Astroは最近流行っている静的サイトジェネレータ(静的CMS)の1つです。wordpressのようにリクエストの都度処理を行いHTMLを返却するのではなく、事前にビルドして全てHTMLにしたサイトを静的サイトとして配置できます。
javascriptを利用しないため表示が高速、コンポーネント指向にもなっておりreactとかに慣れていれば開発もしやすいです。
サーバ構成
サーバ構成は簡単で、S3にビルドしたAstroコンテンツを配置しCloudFront経由でアクセスするだけです。EC2がいらないためランニングコストが大分下がります。
以下は構成と移行のイメージです。
- 今までの構成 wordpressをEC2に構築してブログを運用していました
- 移行イメージ 前面にCloudFrontを配置し、パスでEC2とS3に振り分け Astroに移行したWordpressコンテンツはリダイレクト設定を行う
- Astroブログの構成 S3に配置するだけです。
ランニングコスト比較
証明書やDNS(Route53)の費用は変わらないため、EC2の維持費とS3+CloudFrontの維持費で比較します。
EC2での運用での費用実績はこんな感じ。EC2+EBSで年間70$(9100円)ぐらいかかっています。
月間 | 年間 | |
---|---|---|
EC2 ※リザーブド | 4.9$ | 59$ |
EBS (8GB) | 0.8$ | 9.6$ |
ドメイン | 1$ | 12$ |
Route53 1ホストゾーン | 0.5$ | 6$ |
これをCloudFront+S3にするとこんな感じで、CloudFront+S3で年間1$以下です。 CloudFrontは個人のブログぐらいだったら無料枠に収まります。
月間 | 年間 | |
---|---|---|
S3 | 0.02$ | 0.24$ |
CloudFront | 0 | 0 |
ドメイン | 1$ | 12$ |
Route53 1ホストゾーン | 0.5$ | 6$ |
表示速度(性能)比較
wordpressブログはCloudFrontを入れて大分改善はしましたが、それでもページを表示するのに1~2秒はかかります。
CloudFrontを入れる前だと5秒近くかかる時もありました。
Astroブログは200ms程度で表示されるため、表示速度は5~10倍ぐらい改善しました。
Astroでブログを書く運用
AstroはVSCodeでコーディングして、ビルドしてS3に配置しますが、ブログを毎回VSCodeで書いていくのは面倒でしたので、Notionで書けるようにしました。
Astroはmdファイルを配置するとそれをビルド時にHTMLにしてくれるため、以下のような流れで運用しています。
- Notionで書いたブログをマークダウンでエクスポートする
- 出力したマークダウンをAstroに取り込んでビルドする
- ビルドしたコンテンツをS3に配置する。
これで、普段はスマホでNotionアプリを使ってブログを書くことができます。