AWS EC2で個人ブログを運用する場合の料金メモ

これまで AWS を使って WordPress ブログとポートフォリオサイトを運用してきました。

AWS には 1 年間の無料期間があるのですが、それが 1 月に満了を迎え、2 月から通常の料金を支払っています。

2 ヶ月様子を見て、だいたいどの程度コストがかかるのか把握できたため、メモします。

それから AWS を個人で使う場合のデメリット、節約方法などの改善策もまとめました。

結論

先に結論を言うと、AWS は個人用途には向いていません。AWS は EDoS アタックの耐性がないからです。それでも敢えて AWS を使うのであれば、 Lightsail という定額プランを利用すると良いでしょう。

VPC ネットワークの構成・全体像

今の所、次のような構成で運営しています。

EC2とS3を使ったWebサーバー構成図

t2.micro インスタンスに Docker のコンテナを用意し、そのコンテナの中で Web サーバーを建てています。Web サーバーソフトに Nginx を採用し、VirtualHost で ポートフォリオ とこのブログ、2つのドメインを動かしています。

さらに EC2 と S3 をエンドポイントで結び、Crontab を使って Docker のコンテナをぽいぽいバックアップする仕組みを作りました。また、WordPress のメディアファイルは S3 に置いています。

本当は ロードバランサで負荷分散 して、 データベース用のインスタンス をプライベートサブネットに置いて、さらに 踏み台用のインスタンス も用意したいのですが、かなり割高になることが予想されたため、上記のようなミニマムな構成にしました。

もう少し詳細な情報

  • EC2 - t2.micro が 1 個 - EBS=20GB - 毎月フル稼働
  • Route53 - ドメイン 2 個(ホストゾーン 2 個)
  • S3 - 5GB 以内で運用 - 月2回のコンテナアップロードとブログ記事に差し込む画像の配信に使用
  • WorkMail - 独自ドメインのメールアドレスが欲しかったので一つ作った。出来心だった。 - 月 4 ドル固定

実際いくらかかったのか

2018 年 2 月は次のような内訳でした。

AWSの月料金の内訳を示すドーナツグラフ 項目金額合計$19.43 データ転送料金$0.22EC2$12.61Route53$1.01S3$0.12WorkMail$4.00 税金$1.47

高いよ〜(´・ω・)

ほとんど EC2 と WorkMail の料金でした。

S3 はスズメの涙ですね。

データ転送料金もほとんどありませんでしたが、このブログとポートフォリオ合計で月 3000PV 程度のアクセスしかないので、30 万 PV とかになると跳ね上がりそうです(白目)。

リザーブドインスタンスへ切り替えて節約する

これだとレンタルサーバーにした方が懐には優しいですよね。

でも運営している Web サイトへのアクセスは高速だし使い心地はすごくいい。

勉強にも使えるのでなんとか使い続けたい。

そこで リザーブドインスタンス です。

リザーブドとオンデマンド

リザーブドインスタンスというのは、あらかじめ使用する分の EC2 を予約購入する仕組みのことです。

オンデマンド方式と比べて最大で *75%!(BADWIDTH)%!(MISSING) も節約できます。

Amazon EC2 リザーブドインスタンス (RI) では、オンデマンド料金に比べて大幅な割引価格 (最大 75%!)(MISSING) が適用され、特定のアベイラビリティーゾーンで使用するキャパシティーを予約できます。

公式サイトよりコピペ

オンデマンドは使用した分の EC2 に課金されます。

インスタンスをシャットダウンし、使用していない間は料金がかからないので、使いたい時だけ起動して料金を安くできます。

しかしブログやポートフォリオサイトのように、常に公開することが前提の Web サイトはインスタンスを起動し続けないといけないため、オンデマンドは向いていません。

オンデマンドからリザーブドへ乗り換えできるの?

出来ました。詳細はブラックベルトとかが参考になるかと( black belt[Amazon EC2] リザーブドインスタンス

例えば t2.micro で 1 年間。という風にリザーブドインスタンスの権利を購入すると、自動で条件に合致するインスタンスがリザーブドインスンタンスとして認識されます。

変更時にサービスが停止したりしないの?

サービスの停止はありませんでした。

リザーブドインスタンスはあくまで権利の購入であって、現在稼働中のインスタンスに悪影響を与えることはないです。

条件を間違えると 1 万円ほど無駄になるので、そこだけ注意ですね。

オンデマンドインスタンスからリザーブドインスタンスへ変更してみた

既存のインスタンスをリザーブドにするには、条件を合わせなければいけないので、まずそれを調べます。

条件を一致させる必要があるのは次の 3 つです。

  • プラットフォーム
  • インスタンスタイプ
  • テナンシー

情報は EC2 のダッシュボードから確認できます。

確認が取れたらリザーブドインスタンスの購入ボタンをポチります。

私は取り急ぎ 1 年分使ってみることにしました。

1 年$84 なので、月あたり$7。

月$12.61 から$7 になるので、 44.5%!の(MISSING)割引に なりますね。素晴らしい。

リザーブドインスタンスが適用されているか確認

確認する方法は 2 つあります。

  1. リザーブどインスタンスの使用状況レポート
  2. EC2 インスタンスの使用状況レポート

リザーブドインスタンスの使用状況レポート

リザーブドインスタンスの使用状況レポートというのがあるので、それを見て確認できます。

しかし作成したばかりだとデータ集計ができません。1 週間以上待たないとダメみたいです。

EC2 インスタンスの使用状況レポート

リザーブドインスタンスの権利を購入した後、インスタンスの課金がないことを確認できれば OK です。

そのほかの節約方法について考えてみる

Github Pages、GitLab Pages

静的な Web サイトであれば Github Pages、GitLab Pages でやるのがいいですね。無料ですしお寿司。S3 でも 100 円以内で運用が可能です。そのうち動的な Web サイトも GitLab で動かせるようになりませんかね。

Amazon Lightsail

t2.micro で Linux AMI なら 10$で利用でき、通信料は 2TB まで無料です。リザーブドインスタンスの契約が終了したらこっちに切り替えようと思います。

AWS 利用のデメリット-EDoS 攻撃

AWS を個人で利用する場合、最大のデメリットが EDoS 攻撃でしょう。

__EDoS(Economic Denial of Service / Economic Denial of Sustainability)攻撃__

標的のシステムに大量のパケットを送るなどしてシステムをダウンさせる DoS 攻撃の一種で、「経済的な損失を狙った DoS 攻撃」のこと。

AWS の通信料は従量課金のため、DDoS アタックなどで通信量が増えるとやばいです。

AWS では AWS Shield という DDoS に対する保護サービスがありますが、通信自体は発生するため、EDoS 攻撃を完全に防止する策はないようです。