価格は2014年7月現在のものです。現在 Amazon EC2 を利用しているので、コストのチェックを兼ねてこのページを時々更新しています。
Amazon EC2 は、クラウドの先駆者であり IaaS (Infrastructure as a Service) のサービスを提供しているので、自宅サーバーとほぼ同じ使い方をすることができる自由度の高いサービスです。Windows OS を利用する場合はリモートデスクトップを使って EC2 のサーバーの管理をおこないます。もちろん、DVD や USB を直接差し込んで使うことはできませんが、違いといえばそれぐらいで、自宅サーバーでの経験をそのまま生かすことができます。
Amazon EC2 の正式名は、Amazon Elastic Compute Cloud といいます。Elastic というのは弾力的に使えるというような意味です。好きなときに利用する事ができ1時間単位での課金なので、状況に応じた柔軟な利用が可能です。
Amazon EC2 を利用して感じたことは、Amazon EC2 は、VPS ではあるが単なる VPS ではなく、スケーラビリティや時間単位の課金という付加価値をつけているところが評価できると思いました。今までのようにサーバーを購入したりレンタルしたりする場合は、1台で100日のコストと100台で1日のコストでは大幅に違いましたが、Amazon EC2 ではコストが同じになります。100台を一度に使用するようなケースはそう多くはないと思いますが、そういう利用をしたい場合のコストが大幅に低くなりました。Amazon EC2 の素晴らしさは、そのような新しいビジネスチャンスを提供していることだと思います。
EC2 のデーターセンターは東京にもあります。東京リージョンは他のリージョンと比較するとやや割高ですが、伝送遅延の問題があるので、主として国内向けのWeb サーバーとして利用する場合には、海外サーバーは遅い?表示速度を測定してみたにメモをしたように東京リージョンを使用した方がいいと思っています。
「クラウド破産」というような言葉があって、日本ではクラウドの従量制が嫌われていますが、「3.コストについて」で計算しているので見ていただければわかるのですが、通常の使い方であればユーザーからのアクセスにより変動するデータ転送量等のコストはそれほど高くありません。自分が使っているケースだと1ヶ月で30万ページビューで約30GBの転送量なので500円程度です。これが10倍や100倍になれば、普通に管理していればすぐに気がつくと思うし、インスタンスには転送量等にアラームを設定することができるのでメールで知らせてくれるようにすることができます。転送量が増えた原因がユーザーからのアクセスの増加であれ喜ばしいことだし、原因によって、転送データの圧縮、Web サイトの停止、特定の IP アドレスからのアクセスの禁止等の対策を取るようにすればいいだけだと思います。
Amazon EC2 を利用する場合に最もメリットがあるのは、名前のとおり短期間の利用や時間、季節によって必要なリソースが大きく変動する場合です。例えば、平日のみ1日10時間しか使わない場合であれば、m3.large インスタンスが中度使用リザーブドインスタンスを利用して年1000ドルほどで利用できます。
Amazon EC2 で Windows サーバーを構築する場合、かなりの部分が自宅サーバーの場合と同じ操作で構築することができます。以下は、ASP.NET で Web サーバーを構築する場合の手順です。PHP、MySQL をインストールして動作させることも可能ですが、その場合は、自宅サーバーの方の PHP、MySQL のページを参考にしてください。
ここでは、t2-small インスタンスを 東京リージョンで利用するとして計算しています。使用料が1時間あたり0.05ドル、EBC ボリューム使用料が1ヶ月1GBあたり0.08 ドル、EBS へのリクエスト使用料が100万回あたり0.08 ドル、帯域幅が1GBあたり発信で 0.201 ドル、受信は無料です。なお、EBS で SSD を利用することもでき、その場合は、1ヶ月1GBあたり0.12 ドルでEBS へのリクエスト使用料は不要です。
Windows Server を利用する場合は、既定では30GB のEBS ボリュームを利用するようになっています。ただし、システムディスクが 30GB の容量ではかなり厳しいので、起動の際に容量を拡張する場合が多いと思います。なお、t2-small インスタンスでは、メモリも厳しいいので、コストを節約しようと思えば Windows Server 2008 の32bit 版を利用した方がいいケースもあると思います。
1時間あたりの料金は6.8円ぐらいで、スポットインスタンスを利用するともっと安くなります。8時間借りても50円ぐらいで借りることができるので、クラウドは、Windows Server の短期間利用には最適です。
項目 | 東京 価格(ドル) |
備考 |
インスタンス(small) 使用料 | 0.0500 | |
EBS ボリューム使用料 | 0.0067 | 60GB×0.08ドル/GB月/30日/24時間 |
EBS リクエスト分 | 0.0080 | 0.08ドル/100万回 10万リクエストと仮定 |
帯域幅(発信) | 0.0000 | 0.201ドル/GB |
帯域幅(受信) | 0.0000 | 0ドル |
計 | 0.0647 | 1$=105円として約6.8円(日本人が東京リージョンを使った場合は消費税が追加されます) |
※上記以外に、OS を AMI 化(イメージ化)して保存するために、EBSスナップショット使用料が必要になりますが、圧縮されて保存されるので、データが特に多くなければ、1個につき1ヶ月で 1$ 以下です。
Web サーバーとして使用する場合のように長期間利用する場合は、一括払いをすれば、使用料が割引になるリザーブドインスタンスが利用できます。リザーブドインスタンスには、軽度、中度、重度という3種類の使用タイプがあり、軽度使用は一括払いの料金が安いが時間単価が高いため利用時間が短い場合に有利で、一方重度使用については一括払いの料金は高いが時間単価が安いため24時間常時稼働させているサーバー用に向いています。以下は、Web サーバーとして24時間動作させるので重度使用で計算しています。もし、昼間のみ2台で運用するのであれば、2台目では軽度使用や中度使用を利用することになります。
※重度使用の場合は、インスタンスを使用しなくても課金されるので注意が必要です。特に、t2 インスタンスの場合にはコスト差が少ないので重度使用を選択するかどうかは慎重に検討した方がいいと思います。
t2.small インスタンスの場合、1年で 192 ドルを前払いすると、使用料は、1時間あたり0.015 ドルになります。
以下では、Web サーバーとして利用すると仮定し、月100万ページビュー(micro インスタンスでは 50万ページビュー)、1ページビューで10リクエスト、帯域幅の発信側が30GB、受信側がその20 % と仮定して計算しています。
どの程度のコストになるかというと、1ヶ月にオンデマンドインスタンスで 5,200円、リザーブドインスタンス(一括払い)で約4,200円です。ページビューは100万ページビューで、帯域幅を30GBと仮定していますが、画像等が多いと帯域幅の消費が大きくなります。画像等の転送量が多くインスタンスを安定的に使用する場合には、通常の Windows VPS やさくらのクラウドを使用した方がコストが算出しやすく価格的にも有利になってきます。
小規模な Web サイトであれば micro インスタンスが利用できます。それだと月額使用料がリザーブドインスタンス(一括払い)で、2,250円程度なので、小規模なWebサイトでもリーズナブルなコストで利用できるのではないかと思います。なお、小規模といっても月に数十万ページビューぐらいまで対応できると思いますが、複雑なサイトになるとメモリが不足すると思います。
t2.small インスタンスの試算
項目 | 東京 価格(通常 $) |
東京 価格(一括 $) |
備考 ()内が東京 |
インスタンス(small) 使用料 | 37.20 | 11.16 | 通常 $0.05×744時間 一括払 $0.015×744時間 |
〃一括払い1年 | 16.00 | 一括払 年192$÷12ヶ月 | |
EBS ボリューム使用料 | 4.80 | 4.80 | 60GB×0.8ドル/GB月 |
EBS リクエスト分 | 0.80 | 0.80 | 100万×10回×0.08ドル/100万回 1ページビューで10リクエストが必要と仮定 |
EBSスナップショット使用料 | 0.95 | 0.95 | 10GB×0.095(0.1)ドル/GB月 |
帯域幅(発信) | 6.03 | 6.03 | 1GB×30日×0.12(0.201)ドル/GB |
帯域幅(受信) | 0.00 | 0.00 | 0.2GB×30日×0ドル/GB 発信帯域幅の20%と仮定 |
計 | 49.78 | 39.74 |
1$=105円として、通常約5,227円、 |
t2.micro インスタンスの試算
項目 | 東京 価格(通常 $) |
東京 価格(一括 $) |
備考 ()内が東京 |
インスタンス(micro) 使用料 | 18.60 | 5.04 | 通常 $0.025×744時間 一括払 $0.018×744時間 |
〃 一括払い1年 | 7.67 | 一括払 年92$÷12ヶ月 | |
EBS ボリューム使用料 | 4.00 | 4.00 | 50GB×0.08ドル/GB月 |
EBS リクエスト分 | 0.40 | 0.40 | 50万×10回×0.08ドル/100万回 1ページビューで10リクエストが必要と仮定 |
EBSスナップショット使用料 | 0.95 | 0.95 | 10GB×0.095ドル/GB月 |
帯域幅(発信) | 1.81 | 1.81 | 0.3GB×30日×0.201ドル/GB |
帯域幅(受信) | 0.00 | 0.00 | 0.06GB×30日×0ドル/GB 発信帯域幅の20%と仮定 |
計 | 26.76 | 19.87 | 1$=105円として、通常約2,705円 一括払 約2,253円 |
Amazon EC2 のsmall インスタンス及び micro インスタンスで Web サーバーとしてどの程度の処理ができるのかを調べてみました。まず、Apache に付属するベンチマークソフト ab を使って、実際に IIS の処理速度を計測してみました。ASP.NET+SQL Server 2008 R2 Express で作成したものを利用していますが、データベースへのアクセスは、1ページビューで3回程度です。結果の概要は、以下の「ab によるテスト結果の概要」のようになりました。
この結果で、おもしろいのは、small インスタンスよりも、micro インスタンスの方がいい結果になったということです。原因としては micro の方でCPU のバースト機能が有効に働いたということと、同一マシンを使っているユーザーの利用が少なかったということが考えられます。自宅サーバーの結果からみると、伝送に遅延があるため CPU がフルに動作することは少なく、CPU のバースト機能が有効に働いていると考えられますが、混雑時にどの程度の性能がでるのかは、長期間使ってみる必要があります。(注意:このテストは旧世代のc1-smallを使っています。現在はt2-smallを使えばバースト機能が利用できるようになっています。低価格帯では、CPUの能力を固定で提供されるよりも共用して能力が必要なときにバースト機能のような機能が使える方が処理能力は高くなります。)
以下の結果では、1秒間に約5件の処理ができますが、5 件の処理ができれば、どの程度のページビューのサイトに対応できるのかを計算すると、Web ページのアクセスは、ポアソン分布に従うと考えられるので、1秒間の処理が5件以内になる確率が99%以上になるようにするためには、1秒間に平均約 1.75 回のアクセスまでは大丈夫ということになります。それであれば、1時間で最大6000ページビューまで対応できるということになります。このサイトのアクセスの状況(早朝、土日祝祭日はアクセスが少ない)と同じような状態だとすると月間で約100万ページビューとなります。
Windows ではありませんが、MOONGIFT がかって EC2 の small インスタンスを使用していたそうです( マイコミジャーナルの記事)。MOONGIFT は、月間80万ページビューで、その程度であれば small で十分対応できるということなので、テストの結果ともあっています。MOONGIFT は、Alexa ランキングでは、日本で約1000位となっていることを考えれば、重い処理をするのでなければ small インスタンスで、ほとんどすべての Web サーバーは対応できるということになります。
micro インスタンスについては、1分間に数十リクエスト程度のWebアプリのホスティングなどに向くとされており、テストの結果(1分間で100リクエスト)とほぼ一致しています。それであれば、月間数十万ページビューの Web サイトを処理できるのですが、micro インスタンスの場合には、CPU に負荷がかかるような処理だとその分処理できるページビューが減ってくると考えられます。例えば WordPress の場合であれば、キャッシュを使わない場合は 10分の1以下になると思います。また、メモリが 613 MB というのもかなり厳しい制約です。micro インスタンスを使用する場合は、できるだけスリムにするということが大事です。そうすれば、かなり安価に Windows VPS を利用することができます。また、CMS を利用したい場合は、Umbraco の利用をお奨めします。Umbraco は、シンプルで使いやすい画面のページを作成でき、キャッシュも良くできているので、CPU への負荷が少ないソフトです。
参考 Amazon EC2 ユーザーガイド Micro Instance Concept
small インスタンス
Requests per second: 5.40 [#/sec] (mean)
Time per request: 1851.406 [ms] (mean)
Time per request: 185.141 [ms] (mean, across all concurrent requests)
Transfer rate: 114.76 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 137 178 90.8 153 640
Processing: 585 1563 508.1 1401 2713
Waiting: 584 1164 510.2 1067 2688
Total: 745 1741 529.9 1552 2864
micro インスタンス
Requests per second: 6.18 [#/sec] (mean)
Time per request: 1617.093 [ms] (mean)
Time per request: 161.709 [ms] (mean, across all concurrent requests)
Transfer rate: 131.38 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 128 155 61.2 141 587
Processing: 530 1358 408.8 1289 2683
Waiting: 529 1019 373.0 995 2543
Total: 669 1514 429.6 1430 2826
自宅サーバー
Requests per second: 29.28 [#/sec] (mean)
Time per request: 341.520 [ms] (mean)
Time per request: 34.152 [ms] (mean, across all concurrent requests)
Transfer rate: 622.10 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 9 32 12.1 29 75
Processing: 105 293 58.4 298 452
Waiting: 96 218 66.1 213 450
Total: 133 325 60.2 328 461
※ CPU は、Intel Atom の D510 を使用しています。