まだIT業界で消耗してるの? 😊ソフトウェア開発者のブログ

カテゴリー: クラウド・サーバー

ASP.NET 5 Beta 7 を Ubuntu Server で使ってみた

2015年9月12日

ASP.NET 5 Beta 7 が公開されましたが、公式ブログで Mono なしで動作するということだったので Ubuntu Server に実際にインストールしてみました。

Ubuntu Server につては、Microsoft Azure でイメージは Ubuntu Server 14.04 LTS を使用しています。

インストールについては、ASP.NET 5 の公式マニュアルの Installing ASP.NET 5 On Linux のページを見てしました。最初は、注意を読んでなくて dnvm をインストールすると、下の図のように「dnvm needs unzip to proceed.」というメッセージが出ました。マニュアルをちゃんと見ると note に dnvm のインストールには unzip が必要と言うことが書いてありました。

ubuntu01.png

DNX とlibuv については、マニュアルどおりにインストールしました。

実際の動作のテストは、VS 2015 で作成した ASP.NET 5 プレビューテンプレートの Web Application を使ったものを使用しました。修正点は、Kestrel サーバーが動作するように project.json に以下の項目を追加しました。

"dependencies" に追加
"Microsoft.AspNet.Server.Kestrel": "1.0.0-beta7"

"commands" に追加
"kestrel": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:8000"

それで、「dnu restore」で依存パッケージを取得して、「dnx kestrel」で kestrel を起動するととアプリが動作しました。意外にあっけなく動作させることができました。

ubuntu02.png

Qiitaの「ASP.NET5 クロスプラットフォームでアプリケーションの動作環境を構築する」という記事では、「Ubuntuは、手順にある通りではうまくいきません。」と書かれていますが、それから比べると ASP.NET 5 の Linux 対応もかなり進んだと思います。

kestrel のポート番号を80に設定して起動するとチェックでエラーになります。本番環境での運用は、Nginx をリバースプロキシサーバーして使うようになるケースが多いような気もします。

コンソールアプリケーションの方もテストしてみました。ローカルディスクへの保存の処理を書いてみたのですが、このあたりは、DNX 4.5.1 と DNX Core 5.0 でライブラリーに変更があるのでコードの修正が必要になってきます。こういうケースでは、"frameworks"の設定は、VS だとどちらかでエラーがあるとコンパイルしないしエラーの表示もよく分からないものが表示されるので、使わない方の"framework"を削除しておいた方がいいようです。この関係を調べていて、.Net Core のドキュメントのページができているのに気がつきました。ただし、まだほとんどのページが作成中で使える状態にはなっていません。

以上テストをしてきて、ASP.NET 5 が Linux で実用的に使えるようになる日がかなり近づいていると感じました。

 

AWS が「さくらのクラウド」と同じ価格性能比になった?

2014年7月17日

「AWS は、さくらのクラウド、Azure より10倍価格性能比が悪い?」というブログを書いた後に、Amazon EC2 では、t2 インスタンスが提供されました。t2 インスタンスは、低価格帯のインスタンスでバースト機能をがあるのが特徴です。

そこで、t2 インスタンスを使って、前回と同じテストをしてみました。テストしたタイプは以下のとおりで、OSは Windows 2012-R2 です。今回は、価格的には「さくらのクラウド」とほぼ同じになっています。

  • さくらのクラウド:2コア, メモリ4GB, SSDプラン 100GB、石狩
  • Amazon EC2: t2.medium (2vCPU, 4GBメモリ), GP (SSD) 100GB、東京リージョン 

コスト(月あたり・円) データ転送量は80GBで計算

 
CPU
ディスク
データ転送
ディスク単価(GBあたり)
さくらのクラウド
5,500
3,500
0
9,000
20円、SSD 35円
Amazon EC2
5,626
1,260
1,688
8,574
8.4円、SSD 12.6円

※Amzon EC2 はドル建てなので 1ドル=105円で

テストの結果は、下の図のとおりで、Amazon EC2 の t2.medium の方が少し良くなっています。

t2 インスタンスについて考えてみると、確かに月100万PVのWebページは個人や中小企業のWebページとしてはかなりアクセス数が多い部類になるのですが、それでも平均すると1分間に23回のアクセスしかないので、1回の処理を1秒でできるように作ってあれば動作しているのは23秒だけで残りの37秒は遊んでいるということになります。実際は処理では特定の時間に集中することが多くそれにあわせて処理能力があるサーバーを選択するので、サーバーのCPUの稼働率というのは普段はかなり低いのが一般的です。そういう点ではバースト機能があるというのはコスト的に相当なメリットがあります。

さくらのクラウドにバースト機能があるかどうかは確認できていません。ただ、フェアシェアのようなCPUを共有する機能は使っていると思います。単価をみると 1Core-2GB 2,139円、2Core-4GB 4,860円、4Core-8GB 11,340円、8Core-16GB 24,300円とコア数が増えるとコア当たりの単価が上がっています。CPUをユーザー毎に完全に独立させているのであれば、Azureのようにコア当たりのコストは上がらないはずです。単価が上がるというのはコア数が多くなると共有が難しくなってくるという事情を考慮した単価設定だと思うのです。

いずれにしても、CPUの利用の仕方については、さくらのクラウドのほうが先進的であって、AWS が追いついたといえるでしょう。「国産クラウド」を代表する「さくらのクラウド」には今後も頑張って欲しいと思います。

Amazon EC2 t2.medium

image

さくらのクラウド

image

AWS は、さくらのクラウド、Azure より10倍価格性能比が悪い?

2014年6月28日

短時間で大量のアクセスがあったこともあって、クラウドはどれを選択したらいいのかを調べていたら、Gihyou.jp の記事「クラウド,良いとこ・悪いとこ(第6回)」では、「AWSとAzureではunixbenchでは5倍,さくらとでは10倍の価格性能比があります」という結論になっていたので、本当にそうなのか調べてみました。

テストしたタイプは以下のとおりで、性能がよく似ていると思われるものを選択しました。OS については、すべて Windows Server 2012-R2 です。

  • さくらのクラウド:2コア, メモリ4GB, SSDプラン 100GB、石狩
  • Amazon EC2: c3.large (2vCPU, 3.75GBメモリ), GP (SSD) 100GB、東京リージョン
  • Azure 仮想マシン: 標準 A2 (2コア, 3.5GBメモリ) 、東日本リージョン

コスト(月あたり・円) データ転送量は80GBで計算

 
CPU
ディスク
データ転送
ディスク単価(GBあたり)
さくらのクラウド
5,500
3,500
0
9,000
     20円、SSD 35円
Amazon EC2
12,110
1,260
1,688
15,058
     8.4円、SSD 12.6円
Azure 仮想マシン
16,089
0
1,454
17,543
     5.1円、SSD 未対応

※Amazon EC2 の CPU の価格は、1年間の重度使用リザーブドインスタンスを使うとして計算しています。普通のインスタンスを利用するとCPUだけで17,470円となり、Azure より高額になります。また、ドル建てなので1$=105円で計算しています。

CrystalMark でのテストの結果

CrystalMark でテストをした結果は以下のとおりです。GDI以下は画面性能で関係がないので無視してください。

さくらのクラウド

image

Amazon EC2

image 

Azure 仮想マシン

image

結論として「さくらのクラウド」がCPUについての価格性能比では一番いいというのは間違いないようです。でも、Gihyou.jp の記事のように価格性能比が10倍というのではなく2~3倍程度だと思います。Gihyou.jp の記事が必ずしも間違いというわけでなく、AWS が最近 EC2 を m1, c1 の旧世代から m3, c3 の新世代に交代させたこと、ディスクに SSD を使えるようになったこと、価格も大幅に引き下げたことなどが大きく影響していると思います。クラウドも厳しい競争の世界だと本当に思います。

さくらのクラウドはCPUの価格性能比がいいこと、AWS は API が成熟していることや関連サービスが充実していること、Azure はディスクやデータ転送の価格が比較的安く、標準タイプだとロードバランサー等の機能が追加費用なしで使えること、月額使用料が5万1千円を超えると長期契約で割引が受けられることなどで企業にとってはコストパフォーマンスがいいし、東京と大阪でバックアップができるという特徴があります。結局、変化の速い世界なので特徴も時間によって変化するし、用途によっても適当なサービスが違ってくるので、時々見直しをしながら使っていけばいいと思います。

最後に、Azure 仮想マシンでは標準ではなく基本タイプがあるのでそちらが価格性能比がいいのではないかという意見があると思うのですが、A2 の基本タイプでテストすると、下の図のように標準の7割ぐらいの性能しか出なかったのです。自分にはそうなる原因がよく分からないので、標準にしておきました。

image

短時間で大量のアクセスがあったけど、どう対応する?

2014年6月27日

最近、テレビ番組のクイズの関係で自分の Webサーバーに短時間で大量のアクセスがあったので、その時の様子を参考までにメモをしておきます。アクセスについてはスマートフォンからが殆どで、テレビを見ながらスマートフォンを使っている人が多いようです。

下の図がそのアクセスの状況をグラフにしたもので21時56分には、1分間で3,500PVもの処理をしていました。時間に直すと21万PVなので、月1千万PVのアクセスにも余裕で対応できそうです。

image

 

最近は、スマートフォーンの普及でいつどこからでもアクセスできるようになったので、テレビやSNSで話題になったことをすぐにアクセスする人が増えており、短時間にアクセスが集中する傾向が強くなっています。

こういうアクセスにどう対応するかですが、今回も2分間だけのアクセスなので、あらゆる場合に対応するというのはコストからいって無理なように思います。でも、短時間で多くのアクセスが一気に来るような事態は今後増加していくと思うので、レスポンスタイムを短くするとか、時間のかかる処理を改善しておくとかいう日頃の努力が重要だと思っています。

サーバー等のスペック

サーバー: AWS m1.medium
サーバーOS: Windows Server 2012
使用しているソフトウェア: ASP.NET MVC 4, Umbraco

この時の CPU の負荷を CloudWatch で見ると最大で70%になっています。

image

Microsoft Azure も値下げされるので、Amazon EC2 との比較表を修正した

2014年4月4日

Amazon EC2 の4月1日からの値下げが発表されたら、Microsoft Azure の仮想マシン(VM)の方も基本タイプが新たにできて実質値下げになる予定である。それで比較表を修正した。Amazon は東京リージョン、Azure は東日本リージョンの基本で計算している。Azure の西日本リージョンだと東日本リージョンより約10%安くなる。

サーバー種別 Windows Server Linux
短期・長期

短期(円/時間)

長期(円/月)

短期(円/時間)

長期(円/月)

EC2 t1.Micro

($0.039)\4.10

\2,326

($0.031)\3.26

\1,624

Azure VM XS 基本

\1.84

\1,366

\1.84

\1,366

EC2 m1.Small

($0.093)\9.77

\4,747

($0.061)\6.41

\2,509

Azure VM S 基本

\9.69

\7,209

\7.04

\5,236

EC2 m3.medium

($0.161)\16.91

\8,528

($0.111)\11.66

\4,857

Azure VM M 基本

\19.38

\14,419

\14.08

\10,473

EC2 c3.large

($0.241)\25.31

\13,146

($0.138)\14.49

\7,551

※1ドル=105円とした。EC2の長期は重度使用リザーブドインスタンスを利用の場合。
EC2 ではEBSが必要になるのでt1.Microとm1.Smallには30GB、m3.mediumとc3.largeには60GBを追加。
価格は税抜きで、日本に住んでいる場合はこれに消費税が加算される。

この表をみると、Azureの価格の方が明らかに安価なのは XS だ。初心者が最初に使うサーバーの価格を抑えて Azure の利用者を増やしたいという Microsoft の意図ははっきりしている。自分が使っているレベルでは、Azure の長期割引が月額51,000円以上でないと利用できないのが相当痛いと思っている。Azure VM M の長期割引がきかないのであれば、EC2 c3.large のリザーブドインスタンスを使った方が有利だと思う。Amazon のリザーブドインスタンスは、新たに購入しないと値下げが適用されないという結構厳しい条件はあるが、ソフト面で Amazon の方が成熟しているということもあるので Amazon がシェアトップであるという理由は理解できる。

送信データ転送等の料金については、以下のとおりで Azure の方が若干安価である。

Azure ¥19.38/GB  Amazon EC2 ($0.201)¥21.11/GB

ストレージ料金についても、Azure の BLOB の方が EC2 の EBS より以下のとおり安価である上にプロビジョンした容量ではなく実際に使っている分しか請求されないのでが Azure の方が相当に有利である。ただし、Amazon がS3 の価格を大幅に値下げし($0.033/GB)\3.47/GB なので、運用次第という面はある。

Azure BLOB/ディスク¥5.1/GB  Amazon EC2 EBS Standard ($0.12/GB)¥12.6/GB

こういうことからすると確かにリソースを大量に消費する大企業だと Azure は有利なようだ。