AWS EC2で個人ブログを運用する場合の料金メモ
これまでAWSを使ってWordPressブログとポートフォリオサイトを運用してきました。
AWSには1年間の無料期間があるのですが、それが1月に満了を迎え、2月から通常の料金を支払っています。
2ヶ月様子を見て、だいたいどの程度コストがかかるのか把握できたため、メモします。
それからAWSを個人で使う場合のデメリット、節約方法などの改善策もまとめました。
結論
先に結論を言うと、AWSは個人用途には向いていません。AWSはEDoSアタックの耐性がないからです。それでも敢えてAWSを使うのであれば、Lightsailという定額プランを利用すると良いでしょう。
VPCネットワークの構成・全体像
今の所、次のような構成で運営しています。
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月は次のような内訳でした。
項目 | 金額 |
---|---|
合計 | $19.43 |
データ転送料金 | $0.22 |
EC2 | $12.61 |
Route53 | $1.01 |
S3 | $0.12 |
WorkMail | $4.00 |
税金 | $1.47 |
高いよ〜(´・ω・)
ほとんどEC2とWorkMailの料金でした。
S3はスズメの涙ですね。
データ転送料金もほとんどありませんでしたが、このブログとポートフォリオ合計で月3000PV程度のアクセスしかないので、30万PVとかになると跳ね上がりそうです(白目)。
リザーブドインスタンスへ切り替えて節約する
これだとレンタルサーバーにした方が懐には優しいですよね。
でも運営しているWebサイトへのアクセスは高速だし使い心地はすごくいい。
勉強にも使えるのでなんとか使い続けたい。
そこで リザーブドインスタンス です。
リザーブドとオンデマンド
リザーブドインスタンスというのは、あらかじめ使用する分のEC2を予約購入する仕組みのことです。
オンデマンド方式と比べて最大で 75% も節約できます。
Amazon EC2 リザーブドインスタンス (RI) では、オンデマンド料金に比べて大幅な割引価格 (最大 75%) が適用され、特定のアベイラビリティーゾーンで使用するキャパシティーを予約できます。
公式サイトよりコピペ
オンデマンドは使用した分のEC2に課金されます。
インスタンスをシャットダウンし、使用していない間は料金がかからないので、使いたい時だけ起動して料金を安くできます。
しかしブログやポートフォリオサイトのように、常に公開することが前提のWebサイトはインスタンスを起動し続けないといけないため、オンデマンドは向いていません。
オンデマンドからリザーブドへ乗り換えできるの?
出来ました。詳細はブラックベルトとかが参考になるかと(black belt[Amazon EC2] リザーブドインスタンス)
例えばt2.microで1年間。という風にリザーブドインスタンスの権利を購入すると、自動で条件に合致するインスタンスがリザーブドインスンタンスとして認識されます。
変更時にサービスが停止したりしないの?
サービスの停止はありませんでした。
リザーブドインスタンスはあくまで権利の購入であって、現在稼働中のインスタンスに悪影響を与えることはないです。
条件を間違えると1万円ほど無駄になるので、そこだけ注意ですね。
オンデマンドインスタンスからリザーブドインスタンスへ変更してみた
既存のインスタンスをリザーブドにするには、条件を合わせなければいけないので、まずそれを調べます。
条件を一致させる必要があるのは次の3つです。
- プラットフォーム
- インスタンスタイプ
- テナンシー
情報はEC2のダッシュボード↓から確認できます。
確認が取れたらリザーブドインスタンスの購入ボタンをポチります。
条件を指定します。全額前払いで3年がもっとも割引率が高くなります。
私は取り急ぎ1年分使ってみることにしました。
1年$84なので、月あたり$7。
月$12.61から$7になるので、 44.5%の割引に なりますね。素晴らしい。
リザーブドインスタンスが適用されているか確認
確認する方法は2つあります。
- リザーブどインスタンスの使用状況レポート
- EC2インスタンスの使用状況レポート
リザーブドインスタンスの使用状況レポート
リザーブドインスタンスの使用状況レポートというのがあるので、それを見て確認できます。
しかし作成したばかりだとデータ集計ができません。1週間以上待たないとダメみたいです。
EC2インスタンスの使用状況レポート
利用しているインスタンスが一つなら、こちらで確認すると良いでしょう。
リザーブドインスタンスの権利を購入した後、インスタンスの課金がないことを確認できればOKです。
そのほかの節約方法について考えてみる
Github Pages、GitLab Pages
静的なWebサイトであればGithub Pages、GitLab Pagesでやるのがいいですね。無料ですしお寿司。S3でも100円以内で運用が可能です。そのうち動的なWebサイトもGitLabで動かせるようになりませんかね。
Amazon Lightsail
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攻撃を完全に防止する策はないようです。