メイン

2012年05月17日

Amazon Web Servicesを利用した中規模Webシステムの構築・運用事例について

5月16日(水)、第6回JAWS-UG札幌勉強会にて、「Amazon Web Servicesを利用した中規模Webシステムの構築・運用事例について」と題して、AWSの利用事例紹介をさせていただきました。

発表資料は以下。

技術的には難しいことはしていませんが、サーバ数がある程度あっても比較的短期間で構築できた事例として、これから本格的にAWSの導入を検討される方の参考になれば幸いです。
特にRDS Mulit-AZ構成によるDBサーバは、冗長性、メンテナンス性に優れていますので、開発・検証ではなく、本番運用で使ってこそメリットがあると思います。

発表後に情報をいただいたので補足します。

・Amazon SDK for PHPのメモリリークの件
アイレット後藤さんより、「PHPのcURLのバグ」とのつぶやきがありました。
Forumはチェックしたつもりでしたが、調査が甘かったですね。
ありがとうございます。

https://twitter.com/#!/kaz_goto/status/202702917805940736
https://forums.aws.amazon.com/thread.jspa?threadID=72310
https://bugs.php.net/bug.php?id=61030&edit=2

・物理ノード障害時のアナウンスの件
サーバーワークス羽柴さんより、「物理ノード障害は個別にメールがきます」というつぶやきがありました。
情報ありがとうございました。

https://twitter.com/#!/hashiva/status/202699719787548674


ほかのみなさんの発表やセッションも、AWS最新動向、CloudSearch, サードパーティのモニタリングサービス、お客様を促してAWSを使わせるポイント、「AWSのダメなところ」をテーマにしたセッションなど、とても勉強になりました。
別途報告したいと思います。

2012年03月19日

IDCフロンティアのクラウドを使用してみました。

2012年3月、IDCフロンティア社のクラウド、セルフタイプを使用してみました。

仕様や使用感などをここにまとめます。

使用したOSテンプレートはCentOS 5.6 (64bit)、1時間単位の従量課金のしくみを利用して、以下の調査に要した費用は900円程度でした。


・IDCフロンティアのクラウド
http://www.idcf.jp/cloud/


使用した機能



  • 仮想マシン作成(従量課金タイプ)
  • ディスク追加
  • 自動・手動によるスナップショット作成
  • OSテンプレート作成、テンプレートからの仮想マシン作成
  • ロードバランサー

機能・スペックについて



  • 料金は比較的安価。各機能の価格はホームページですべて公開されている。

    • サーバ課金は月額課金か1時間単位の従量課金かを選択できる。
    • 従量課金でサーバを停止している間も、起動時の50%の料金がかかる。(現在はキャンペーン中で無料)
    • S2プラン 1コア、メモリ2GB、ディスク15GBで、ディスクとバックアップ用のスナップショット、IPアドレスを合わせて、月8,000円ぐらい。

  • 無償のファイアウォール、ロードバランサー機能有。
  • 物理ノード障害時等の自動フェイルオーバー機能を標準装備。
  • SLA 99.99%。
  • インターネット接続は10Gbps共有回線。無償利用分は上限あり。

    • Inbound, Outbound合わせて1契約の合計トラフィックが3,240GB/月を超えると有償10円/GBの料金追加となる。

  • プライベートLANは専用、独立。
      比較的速い。
    • ネットワークインタフェースは1つしかない。グローバルとプライベートが共用。(Bizホスティングベーシックと同じ)
    • ただし、Bizホスティングベーシックとは異なり、エイリアスIPは付与できない。

  • CPU、メモリリソース、ディスクは段階的に選択可能。

    • コントロールパネルでOS起動時に選択する。変更も可能。
    • CPUクロックは、0.8GHz, 1.6GHz, 2.4GHz。
    • 最大で8CPU, メモリ16GB。

  • スワップ領域は確保されていない。必要であれば、mkswapコマンドでディスクから作成する。
  • ROOTディスクは15GBで拡張できない。それ以上必要であればDATAディスク(追加ディスク)を使用。

    • DATAディスクはAWSのEBSのようなもの。切断したディスクは他のサーバに接続できる。
    • ROOTディスクもDATAディスクも課金対象。0.05円/GB/時→36円/GB/月。
    • 1サーバに6台まで接続可。
    • 複数の追加ディスクを論理的に1パーティションにするには、最初からLVMボリュームにしておくとよいだろう。
    • AWSのようにROOTディスクの付け替えはできない。リカバリー時は、スナップショットからテンプレート作成→OS起動→グローバルIPアドレスの付け替えという手順となる。

  • 手動、自動スナップショット機能あり。

    • 自動スナップショット機能は、日毎・週毎・月毎、開始時刻、保存世代数を設定できる。→ファイルのバックアップはこれで十分。
    • 15GBのスナップショットには3分ほどかかるようだ。
    • スナップショットデータの保存先は、OSのディスク(ボリューム)領域とは別のデバイス、とのこと。

  • ロードバランサーは無償だが、機能的に運用で使用するのは厳しい。

    • 振り分け方式は、ラウンドロビン・Least Connection・Source IPアドレスの3種類から選択。

      • ラウンドロビン・Least Connectionだと、1度のページアクセスでも複数のサーバに振り分けされる。

    • ヘルスチェックはデフォルトのものから変更できない。

      • TCPポートの監視(L4)、間隔は2秒、3回のエラーで異常とみなす。
      • URLパスを指定したHTTPステータスによるチェックは不可。


  • OSテンプレート作成(イメージ化)機能、OSの複製機能あり。

    • テンプレート保存費用は、0.05円/GB/時→36円/GB/月

  • OSイメージはCentOS, RHEL, Ubuntu, Windows Serverなど各種そろっている。
  • IaaSの基盤としてCloudStack?を使用。
  • 仮想ソフトはVMware。
  • 監視機能は無料と有料のものがある。

dbenchによるディスクベンチマーク


ROOTディスク(ローカルディスク)の1クライアントと5クライアントによるベンチマークの結果は下記のとおり。
サーバタイプXS(0.8Hz 1コア, メモリ0.5GB)のとき。

Throughput 67.2494 MB/sec 1 clients 1 procs max_latency=752.249 ms

Throughput 68.0605 MB/sec 5 clients 5 procs max_latency=1052.451 ms

サーバタイプS2(1.6Hz 1コア, メモリ2GB)のROOTディスク。

Throughput 100.36 MB/sec 1 clients 1 procs max_latency=334.466 ms

Throughput 109.389 MB/sec 5 clients 5 procs max_latency=648.774 ms


サーバタイプS2で、DATAディスク(追加ディスク)の1クライアントと5クライアントによるベンチマークの結果は下記のとおり。

Throughput 155.971 MB/sec 1 clients 1 procs max_latency=256.616 ms

Throughput 182.852 MB/sec 5 clients 5 procs max_latency=287.771 ms

追加ディスクのほうが速いです。


サーバ間の通信速度


netperfを使用してプライベートN/W経由の2サーバ間のスループットを計測しました。

XSは100Mbpsの制限がありますが、S2以上のタイプでは問題ない値だと思います。


  • S2同士だと、TCP 600Mbps, UDP 565Mbps。
  • XSとS2では、TCP 115Mbps, UDP 115Mbps。
  • XSのネットワーク帯域は100Mbps, S2以上のタイプの帯域は500Mbps。


コントロールパネル(ポータル)の操作感



  • AWSのコンソールと比べると最初は違和感があるが、慣れれば問題ない。
  • ログイン履歴、操作履歴が見られる。
  • 現在の料金明細が見られる。

    • 予算管理機能で、予算を決めて、その○%消化でアラートメールを送信、という設定もできる。

  • コンソール接続ができる。
  • 仮想マシンの作成は3分から10分程度。
  • 停止した仮想マシンの起動は3分から10分程度。

    • 全ての仮想マシンを停止すると、Virtual Routerの起動も合わせて行うため、20分から30分ぐらいかかることがある。

  • 作成したオブジェクトの名称変更やコメント追加はできない。


サポート



  • サポートはコントロールパネルからのチケット問い合わせ。電話不可。

    • 基本的に当日の営業時間もしくは翌営業日までの対応のようだが、スタッフは24時間365日おり、「至急対応」の旨を記載すると迅速に対応してもらえる、とのこと。
    • 仕様が不明な点をいろいろ質問してみたが、的確な回答をもらえてよかった。
    • 有償のプレミアムサポートで、電話対応が可能となる。5,000円/月。

  • 仮想マシンの稼働に影響するようなメンテナンス作業や障害時は、メールで通知するとのこと。
  • チケットは、運営、サポートサイドとユーザのコミュニケーションツールとしても使ってほしい、とのこと。

その他わかったこと



  • DNSキャッシュサーバ、NTPサーバは用意されている。
  • DNSの逆引きは設定されているが変更不可。
  • APIあり。現在は、IDCフロンティアクラウドのサーバからしかアクセスできないのでβ版となっている。
  • グローバルIPアドレスの取得、解放時に「サーバの送信元IPアドレスが変更されてしまう」という障害あり。

    • サーバに割り当てたスタティックNATをいったん無効とし、再度有効とすると回復する。


まとめ


比較的安価で機能もそろっており、サーバそのものの性能がよく、サポートの対応もよかったです。

サーバの月額課金が選択でき、ネットワーク転送量による課金も3TB以上から有料となっているので、費用の見積もりもしやすいです。

セルフタイプのサービスインが2011年11月と稼働実績が浅いそうなのですが、導入支援も行ってくれる「マネージドタイプ」は2009年6月から稼働実績があり、今のところ大きな障害はないとのことです。
また、今後の機能拡張も予定されているそうです。

プライベートとグローバルのネットワークが分離しておらず、また、ロードバランサーはヘルスチェックの条件を変えられないという問題もあり、現時点では大規模な複数台のシステムでは採用しにくいケースがあるかもしれませんが、単一サーバで稼働するタイプのシステムで利用するにはとてもよい選択肢になると思います。

2011年11月14日

ニフティクラウドを使ってみました。

2011年10月、ニフティ社のクラウドサービス「ニフティクラウド」を使用してみました。
「ニフティクラウドおためしキャンペーン」による3万円の@nifty使用権の範囲内での使用感をここにまとめます。

簡単にいうと、料金は高めだけど、機能メニューはAmazon Web Services(以降、AWS)にそっくりで多機能、高性能、となります。

・ニフティクラウド
http://cloud.nifty.com/

(2011.11.24)
ロードバランサーを使ってみたので追記しました。
ロードバランサーとディスク追加が従量課金に対応したので、検証がしやすくなりました。


使用した機能


  • サーバ作成(従量課金)
  • 追加ストレージ Disk2 100GB
  • OSカスタマイズイメージ作成、複製
  • ファイアウォールは無料版を使用
  • 監視機能
  • オートスケールは未使用

機能・スペックについて


  • 料金は比較的高い。各機能の価格はホームページで公開されている。
  • ファイアウォール、ロードバランサー、オートスケール機能有。
  • インターネット接続は無償分は上限あり。

    • 上下合わせて10TB/月を超えると有償15円/GBの料金追加となる。

  • プライベートLANは共用。(AWSと同様)

    • 独立プライベートLANは月5万円とやや高額。
    • ただし、プライベートLANの速度は爆速。4Gbpsを超える。

  • CPU、メモリリソース、ディスクは段階的に選択可。AWSより細かい。

    • コントロールパネルでOS起動時に選択する。
    • CPUクロックは3GHz。
    • 最大で6vCPU(3GHz)、メモリ32GB。

  • スワップは2GB。
  • ローカルディスクは30GB。それ以上必要であれば追加ディスクを使用。
  • 追加ディスクはAWSのEBSのようなもの。切断したディスクは他のサーバに接続できる。

    • 100GB単位で追加。1万円/100GB, 月。
    • 1サーバに4台まで接続可。
    • 複数の追加ディスクを論理的に1パーティションにするには、最初からLVMボリュームにしておくとよいだろう。

  • OSテンプレート作成(イメージ化)機能、OSの複製機能あり。

    • イメージ化、OSの複製は1件あたり500円。
    • 作成したイメージの保管は3,000円/月だが、パートナー契約をすれば無料となる。
    • イメージは特定のアカウントにも公開可能。
    • SIerが自社のイメージを保管し、都度顧客アカウントに公開して使用することを想定している。

  • OSイメージはCentOS, RHEL, Windows Serverなど各種そろっている。
  • 仮想ソフトはVMware。
  • ロードバランサーの設定は簡単で機能も豊富。

    • ネットワーク流量(10Mbps単位)、振り分け先サーバ、振り分け方式、ヘルスチェックのプロトコル・チェック間隔・チェック閾値を指定する。
    • アクセス元IPアドレスによるアクセス制限が可能。10アドレスまで。
    • オプションで、SSLアクセラレーター、セッション固定、定型のSorryページ、携帯キャリアフィルター(携帯からのアクセスのみ受け付ける)が可能。

  • 監視機能は現在無料で使用できる。

    • 監視項目はホストへのPINGとCPU、メモリ、ディスク、ネットワークトラフィック、と簡易なもの。
    • 例えばプロセス数やコネクション数など、監視項目の追加やカスタマイズはできない。

  • 工事・障害情報はサポート掲示板で公開されている。

dbenchによるディスクベンチマーク


ローカルディスクの1クライアントと5クライアントによるベンチマークの結果は下記のとおり。
サーバタイプsmall(1vCPU, メモリ1GB)のものですが、mini(1vCPU, メモリ512MB)、medium4(2vCPU, メモリ4GB)でもほぼ同様の結果でした。

Throughput 51.8232 MB/sec 1 clients 1 procs max_latency=249.975 ms

Throughput 81.2098 MB/sec 5 clients 5 procs max_latency=403.340 ms

追加ディスク(Disk200)の1クライアントと5クライアントによるベンチマークの結果は下記のとおり。

Throughput 233.62 MB/sec 1 clients 1 procs max_latency=143.488 ms

Throughput 259.058 MB/sec 5 clients 5 procs max_latency=832.075 ms

追加ディスクはすごく速いです。
ストレージはスケールアウト型NASのアイシロンを使用しているという情報があります。
アイシロンであれば、ストレージノード台数が増えるほど高速になる、と聞いたことがあります。

(参考)
http://www.isilon.co.jp/2010/06/10/2874/
http://ncloud.cocolog-nifty.com/blog/2011/02/mysql-bf44.html

サーバ間の通信速度


netperfを使用してプライベートN/W経由の2サーバ間のスループットを計測しました。
TCPで4.0〜4.4Gbps, UDPで2.5〜2.8Gbpsという結果で爆速でした。
UDPよりTCPのほうが速いのは理由がよくわかりませんが、スイッチ等で特殊なキャッシュ制御などを行っているのでしょうか。

※こちらもサーバタイプsmall(1vCPU, メモリ1GB)の結果ですが、mini(1vCPU, メモリ512MB)、medium4(2vCPU, メモリ4GB)でもほぼ同様の結果でした。


コントロールパネルの操作感



  • 全般的に使いやすい。
  • ログイン履歴、操作履歴、前日までの料金明細が見られる。
  • キー名やサーバ名の入力にアンダースコアなどの記号が使えない。
  • コンソール接続はVMwareのクライアントツールを使用する。

    • クライアントPC - サーバ間のコピーペースト可能。
    • 用意されているサーバOSの初期状態ではCUIのみ。X WindowとGNOMEデスクトップを追加インストールし、コンソールでログイン後、startxコマンドでXを起動すると、GNOMEデスクトップ画面となる。


その他わかったこと



  • ユーザブログや掲示板などで第三者による情報が公開されている。
  • サービス側で名前解決サーバ(DNSキャッシュサーバ)が用意されていない!
  • APIがある。仕様やコマンド名がAWSにそっくり。
  • SSHログインに秘密鍵が必要。(AWSと同じ)
  • サーバを停止してもインスタンスやデータは消えず、再起動できる。(AWSのEBSブートインスタンスのようなイメージ)
  • サーバ課金は月額課金か1時間単位の従量課金かを選択できる。従量課金で
    サーバを停止している間も、起動時の5%から40%程度の料金がかかる。
  • スタンダードイメージからのOSの作成は1〜2分。
  • カスタマイズイメージからのOSの起動は10分程度。
  • 時刻合わせは自前で設定する。
  • カーネルのアップデートはデフォルトでは除外対象となっている。


まとめ


サーバリソースや各機能の価格は安くはありませんが、その分多機能で高性能といえます。
ネットワークやディスクの性能には驚きました。

セキュリティ的には、月1,000円から使用できるファイアウォールがあります。
プライベートLANはすごく速いものの共用で、独立したプライベートLANとするには月5万円かかります。
サーバ台数は2,3台と少なくてもよいけどセキュアな環境を用意したい、というケースでは、月5万円は大きな負担となりますね。

ロードバランサーや、今回は使用していませんが、ファイアウォール、オートスケール機能もあります。
OSのテンプレートイメージ化や複製ができるのはとても便利ですし、APIで自動制御できるのもよいですね。
定期的に機能が追加され、今後の進化が見込めるのも頼もしいところです。

2011年11月07日

Bizホスティングベーシックを試用しました。

2011年10月、NTTコミュニケーションズ社のクラウドサービス「Bizホスティングベーシック」のトライアル環境を使用させていただきました。
その際にわかったことをここにまとめます。

(2011年11月14日、バックアップディスクオプション機能を使用したOSの複製について追記、更新しました。)

・Bizホスティング ベーシック
http://www.ntt.com/bizhosting-basic/


トライアルで用意していただいた環境


  • FW x 1、サーバ x 2
  • サーバスペック:CPU 2コア、メモリ4GB、ディスク100GB
  • サーバOS:CentOS 5.7を自分でインストール
  • IPアドレス:/29(4サーバ分)
  • 試用期間:2週間

機能・スペックについて


  • 料金は安価。各機能の価格はホームページで公開されている。
  • ファイアウォール、ロードバランサー有。
  • インターネット接続は帯域制限、帯域課金なし、ベストエフォート。
  • プライベートN/WはIPエイリアスで設定する。
  • リソース追加削除可。

    • CPU 1ユニット単位、メモリ1GB単位、ディスク100GB単位。
    • オンラインで申し込む。

  • OSテンプレート作成機能、OSの複製機能なし。

    • ただし、有料のバックアップディスクオプションにより、バックアップしたOSイメージからのOS複製が可能。

  • CentOSなど、RHELとWindows Server以外のOSは、自分でISOイメージをアップロードしてインストールする必要がある。
  • 仮想ソフトはKVM。
  • ディスクは遅い(後述)。
  • 工事・障害情報はNTTコミュニケーションズのホームページで公開されている。

dbenchによるディスクベンチマーク


1クライアントと5クライアントによるベンチマークの結果は下記のとおり。

Throughput 41.6043 MB/sec 1 clients 1 procs max_latency=539.251 ms

Throughput 53.0621 MB/sec 5 clients 5 procs max_latency=682.470 ms

Amazon Web Servicesのmicro, smallインスタンスでの永続ストレージEBSのスループットとほぼ同等ですが、正直、物足りない値だと思います。
ファイル操作やDB書き込みが激しいシステムには向かないでしょう。

なお、ストレージについては「iSCCIマルチパスの上にLVM、その上にqemu device modelで実現している」という情報がありました。

cf. レッドハットフォーラム2010に行ってきた
http://emasaka.blog65.fc2.com/blog-entry-835.html

サーバ間の通信速度


netperfを使用してプライベートN/W経由の2サーバ間のスループットを計測しました。
TCPで150Mbps, UDPで190Mbps という結果でした。
こちらも少し物足りないのですが、大量のデータ通信がなければさほど不都合はないかもしれません。


コントロールパネルの操作感


  • ファイアウォールの設定が、内向き、外向きのわかりにくさなどクセがあり、少し難しい。
  • サーバへのコンソール接続ができるが、クライアントPCとサーバ間のコピーペーストはできない。


まとめ


サーバリソースの単価が低く、比較的安価に使用できます。
今回は使用していませんが、ロードバランサー機能もあります。
セキュリティ的には、月500円で使用できるファイアウォールがあります。
プライベートLANはIPエイリアスで実現する方式ですが、専用プライベートLANとなるので複数サーバ間の通信は安全といえます。

有料のバックアップディスクオプションを使用しないとOSの複製ができないのは残念です。
CentOS等、RHELとWindows Server以外のOSが必要な場合は、手作業でOSをインストールする必要があるのも残念ですが、逆に言えば、好みのOSを自由にインストールできるともいえます。

ディスクの性能が低いため、ファイル操作やDB書き込みなど、ランダムアクセスが激しいシステムには向かないでしょうが、静的コンテンツが多いWebサイト、シンプルなCMS, SNSサイトでは問題ないと思われます。

今回はNTTコミュニケーションズ様のご協力で試用させていただきました。
ありがとうございました。
(試用の申し込みは9月で終了したと聞きました。)

2011年10月06日

クラウドホスティングサービスの選定ポイント

クラウドホスティングサービス(IaaS)を利用する場合、サービス提供業者も増えてきており、どれを使うといいのか迷ってしまう方も多いと思います。

僕もいくつかのサービスは利用したことがあるもののその数は少なく、カタログスペック上ではチェックしているものの、実際に触ってみないとわからないことが多いため、各社のトライアル環境でいろいろ試しているところです。

クラウドホスティングサービスの選定にあたっては単純に1サーバの料金だけではなく、機能・性能・課金体系ほか、いろいろな面から検討する必要があります。
各サービスで長所・短所があり、現時点では「これがベスト!」というサービスを見つけられていません。
「他の機能はそろっていて料金も安いのにファイアウォールがない。」
とか
「OSの複製機能がない。」
とか
「機能も多いし安いけどディスクがものすごく遅い。」
とか。

クラウドホスティングサービスの選定にあたって比較検討すべきポイントを列挙すると、パッと思いつくだけでも下記があります。
(2011.11.16, 機能以外の面で少し追記しました。)


  • 料金の明確さ

    • オプションを含めてHPで料金が公開されているか。

  • 課金対象

    • AWSのEBSのようにI/O課金まであると事前に読みにくい。純粋な従量課金ともいえる。

  • 導入までの期間

    • 営業窓口への申し込みが必要か。それともオンラインで申し込みできるか。

  • サーバ追加、リソース変更方法

    • 同じく、営業窓口への申し込みが必要か。それともコントロールパネルで追加変更できるか。

  • ファイアウォールの有無、料金

    • iptablesなどサーバ上のファイアウォールだけだと、例えば開けていないポートへの攻撃があった場合、サーバ側で破棄処理が必要なのでCPU負荷が上がってしまう。

  • ロードバランサーの有無、料金
  • ネットワーク帯域上限、転送料金

    • Inbound(サーバから見てデータ受信)も転送料金がかかると、DoS攻撃を受けた分にも課金が発生する。

  • ライブマイグレーションの有無

    • サービス提供側のメンテナンス時の計画停止や、物理サーバ障害時に自動的に生きているサーバに移動するか。サーバダウンタイムが発生しないか。

  • プライベートネットワークの有無

    • 複数サーバ間の場合。他の契約と分離したセキュアな環境でサーバ間通信ができるか。

  • テンプレートOSの作成、OSの複製機能の有無

    • カスタマイズした環境をコントロールパネルから一発で複製できるか。

  • ディスク性能

    • ストレージは各社いろいろ工夫しているようだが、実際にベンチマークをとってみないとわからない。

  • 1サーバあたりの最大リソース
  • SLAの有無

    • といっても、お金が返ってくればサーバが落ちてもいいというものではない。

  • コントロールパネルの使い勝手
  • バックアップ
  • オートスケールアウト、オートスケールアップ
  • サービスインからの期間

    • 稼働期間が長ければノウハウもある。

  • 発展性

    • サービスイン後、定期的な機能追加があるか。
    • 機能追加のロードマップが示されているか。

  • APIの有無

    • バックアップの自動化やサーバ起動から停止までを含めたバッチ処理の自動化などが可能となる。

  • 個人情報の取り扱い、セキュリティ対策
  • コミュニティが充実している

    • 掲示板、ブログなどでサポート担当者やユーザによる情報が公開されている。

  • 保守対応、サポート体制

    • 工事、障害情報が公開されている。
    • 24時間365日、電話もしくはメールで対応してくれる。

各社サービスの機能を見極めて、案件の特徴に合わせて最適なサービスを選択することが大事ですね。

2011年04月27日

第2回JAWS-UG-Sapporo勉強会に参加しました。

4月25日(月)、マイクロソフトクラウド会に続いて、第2回JAWS-UG-Sapporo勉強会に参加しました。
Amazon Web Servicesユーザグループ札幌支部の勉強会、2回目の開催ですが僕は初参加でした。

概要は下記のとおり。
http://www.affordance.co.jp/seminar/110425.html

まず、AWSエバンジェリストの玉川さんによる最新情報や新サービスの紹介がありました。
資料は下記。
http://www.slideshare.net/kentamagawa/amazon-web-services-7711671

つい先日発表されたばかりのAdobe Flash Media Server on AWSについては、ライブストリーミング環境を短時間で調達でき、従量課金で使えるので、アクセスが大量にある&短期イベントのサイトには向いていそうです。
http://aws.typepad.com/aws_japan/2011/04/live-streaming-with-amazon-cloudfront-and-adobe-flash-media-server.html

S3 + Route 53(DNS)を使用した静的Webサイトホスティングも、シンプルなページ構成であれば便利に使えそうですね。
http://aws.typepad.com/aws_japan/2011/02/host-your-static-website-on-amazon-s3.html

続いて札幌のみなさんによる事例紹介がありました。
ピットクルー小関さんの発表にあった、「AWSの複数アカウントをまとめて一括請求にできる」のは知らなかったのですが、おっしゃっていたとおり、実績報告書でプロジェクトごとの詳細利用実績がわかるのは便利ですね。
また、コードヘッド高橋さんほか、SimpleDBを使った実験結果の報告がいくつかありました。

AWSについては、正直なところまだ検証環境としてしか使ったことがありません。
サービス単位が細かく幅広く素晴らしいと思うのですが、本番運用で使用するとなると、逆に従量課金の単位も細かすぎて見積もりしにくいと感じています。
特にDBに負荷がかかるようなシステムでは、EBSのパフォーマンスとI/O料金が読みにくい。。
札幌にも大勢いらっしゃると思われる、実際に本番運用で使用されている方から、可用性、課金、パフォーマンス、バックアップといった運用面の話が聞けるとうれしいのですが。
また機会があれば参加したいと思います。

Hyper-V詳説セミナーに参加しました。

4月25日(月)、北海道マイクロソフトクラウド会の「Hyper-V詳説」セミナーに参加しました。

Hyper-V 2.0アーキテクチャの説明から、構築時のリソース・ネットワーク設計、冗長構成の設計、運用管理機能の解説および本番運用に向けたTipsなどがわかりやすく説明され、マイクロソフトのホームページ上の製品紹介ではわからない情報がたくさん得られました。

クラスター用の共有ボリューム「CSV」は面白かったですね。
ファイルシステムはNTFSのままで、複数のノードから同時に同じLUNにアクセスできるというものです。
内部の細かい技術の説明まではなかったのですが不思議です。

ゲストOSのバックアップについては、Windows Serverに付属する「Windows Serverバックアップ」を使用すればよい、と思っていたのですが、下記のような短所があることがわかりました。


  • ホストOSのドライブ単位でのバックアップとなる。
  • 複数のゲストOSがある場合、ゲストOS個別のリストアはできず、すべてのゲストOSのリストアとなる。

ほかのバックアップ方法として「エクスポート・インポート」がありますが、ゲストOSのオンラインバックアップは不可とのことで、バックアップ時にゲストOSの停止が必要です。
ですので、ゲストOSが複数あり、かつオンラインでバックアップする必要がある場合は、有償のSystem Center Data Protection Manager(SCDPM)もしくはサードパーティのバックアップツールを別途購入、設定する必要がありそうです。

社内でWindows Serverをお使いのお客様も多いようですし、今後、統合や延命などで仮想化する場合はHyper-Vを使用するケースもさらに増えてくるでしょう。
アンタスとしてはHyper-Vの実績はあるものの、個人的には触れたことがなかったので、とても勉強になりました。
社内で少し実験してみようと思います。

本題とは関係ありませんが、会場のマイクロソフト北海道支店はJRタワーの20階にあります。
休憩のときに眺めのよい景色が見れるのでうれしいです。

2010年09月09日

Amazon EC2のEBSディスクは遅い?

アンタスでは、アプリケーションの動作・性能検証や、技術調査などで、8GBや16GB、32GBなどの大きめのメモリや大きめのディスク容量を必要とする環境が急ぎで必要な場合、Amazon EC2(Amazon Web Service, AWS)を使用することがあります。
必要なリソース分のサーバが簡単に起動できるのはとても便利です。
また、用件を終えたらそのOSはもう使用しないので、時間課金であるのも助かりますね。
最小限の設定はAMIに保存できますし。

先日、MySQL InnoDB Pluginの性能を評価しようと、tpcc-mysqlによるベンチマークテストを実施してみて気づいたことがありました。
それは「EBSディスクは遅い」ということです。

試した環境は以下。

Region: US East
AMI: カスタマイズしたCentOS 5.4のEBSブートOS
Instance: Extra Large (CPU 4Core, Memory 15GB)
OS: CentOS 5.4 (x86_64)

tpcc-mysqlで、warehouseを100(DBデータサイズは計9GBぐらい)としてベンチマークを実施したところ、例えば下記のようにNew-Orderなどの項目でNGとなり、有効な結果が得られません。

(all must be [OK])
[transaction percentage]
Payment: 45.00% (>=43.0%) [OK]
Order-Status: 3.33% (>= 4.0%) [NG] *
Delivery: 3.33% (>= 4.0%) [NG] *
Stock-Level: 4.17% (>= 4.0%) [OK]
[response time (at least 90% passed)]
New-Order: 30.19% [NG] *
Payment: 90.74% [OK]
Order-Status: 100.00% [OK]
Delivery: 100.00% [OK]
Stock-Level: 80.00% [NG] *

初期データのロード方法やEBSの作り方をいろいろ変えても状況は変わりません。
ひょっとしてディスクが遅いのかも、と思ってdbenchでディスクのベンチマークを実施してみたところ、、、

・1-a. Extra LargeでEBSブートインスタンスの場合

Throughput 40.7681 MB/sec 1 clients 1 procs max_latency=1279.961 ms

・1-b. Extra Largeで通常の(EBSブートではない)インスタンスの場合

Throughput 210.732 MB/sec 1 clients 1 procs max_latency=745.396 ms

ということで、なんと、EBSブートのほうは通常インスタンスの20%ほどの性能しかありません。

ちなみに、通常の(EBSブートではない)インスタンスでマウントしたEBSディスクの速度はというと、、、
以下はSmallインスタンスでdbenchした結果です。

・2-a. Smallインスタンスのローカルディスク


Throughput 97.4738 MB/sec 1 clients 1 procs max_latency=448.029 ms

・2-b. SmallインスタンスのEBSディスク


Throughput 27.9529 MB/sec 1 clients 1 procs max_latency=1352.467 ms

と、EBSディスクのほうは、ローカルディスクの30%ほどの性能しかありません。
(インスタンスタイプが違うものですみません。)

EBS、残念!
読み書きの激しいDBなどを使う方は要注意ですね。
EBSのストレージ装置についてはAmazonは非公開のようですが、どこかボトルネックになるような箇所があるのでしょう。
EC2については、「日本からだとネットワークが遅い」という話はよく聞いていましたが、「ディスクが遅い」という話は聞いたことがなかったので驚きでした。
と思ったら、同じようにベンチマークを実施された方がいらっしゃっいました。
ずばり、EBSは遅い、と書かれていますね。

RX-7乗りの適当な日々 - Amazon EC2性能検証!気になるパフォーマンスをインスタンスタイプやリージョン毎に計測・比較してみた:
http://d.hatena.ne.jp/rx7/20100722/p1

海老澤澄夫の個人ブログ - EC2のEBSは期待外れ:
http://sebisawa-private.blogspot.com/2010/09/ec2ebs.html

(参考)IT Pro - ITベンダー、アマゾン(2) 〜低料金と使い勝手の良さを両立
http://itpro.nikkeibp.co.jp/article/COLUMN/20081202/320506/?ST=cloud&P=2

--
ついでに、通常のインスタンスで、EBSではなく外付けっぽい追加デバイスの速度はどうかというと、、、
以下はExtra Largeインスタンスでdbenchした結果です。

・3-a. Extra Largeインスタンスのローカルディスク


Throughput 247.074 MB/sec 1 clients 1 procs max_latency=1392.021 ms

・3-b. Extra Largeインスタンスの外付けディスク(/dev/sdb)


Throughput 101.833 MB/sec 1 clients 1 procs max_latency=365.433 ms

EBSよりはマシでそこそこの速度が出ていますが、ローカルディスクに比べると、外付け(っぽい)ディスクのほうは40%ほどの性能しかありません。

--
ディスクベンチマークツールdbenchについては、以前、「ベンチマークツールdbenchを使用したディスク性能の評価」という記事を書きました。
http://antas.jp/blog/ina/archives/2008/05/disk_benchmark_dbench.html

ここで、「物理的に異なるディスクのベンチマークをとるときは、-cオプションをつける」と書いのですが、、、
今回の調査の過程で-cオプションではダメで、-Dオプションが必要なことがわかったので記述を修正しました。
すみません。

--
ちなみに、今回はなぜEBSを使おうとしたかというと、、、

まず、tpcc-mysqlの初期データのロードはwarehouse 100で2時間弱、warehouse 50で40分程度、とすごく時間がかかります。
また、tpcc-mysqlのベンチマークを実施すると、DBデータに不可逆の変更が加わるため、同時接続やパラメータなど条件をいろいろ変えてテストするときは、毎回初期データの状態に戻す必要があります。
それで、初期データをAMIかEBSに入れておいて、ひとつのテストを終えるごとにそのインスタンスをTerminateして、新しいインスタンスをCreateすれば、条件の違うテストを効率よく実施できると考えました。
それで、AMIのローカルディスクは10GBしかないので、warehouse 100のデータを投入するには少しディスクが足りなので、だったら任意のディスク容量を指定できるEBSを使うといいじゃないか、ということで、EBSにしました。
EBSブートOSは通常のAMIよりも起動が速いのがうれしいですね。

結局、今回のtpcc-mysqlによるMySQL InnoDB Pluginのベンチマークテストは、warehouseを当初の半分の50(DBデータサイズは計4.7GB)とし、AMI内に初期データを押しこめ、AMIのローカルディスクのみを使用して実施することになりました。

MySQL InnoDB Pluginのベンチマークテストについては、SH2さんが詳しく書かれていますが、僕も何か新しい情報が得られればここに書きます。

SH2の日記 - tpcc-mysqlによるMySQLのベンチマーク:
http://d.hatena.ne.jp/sh2/20090212

ANTAS(アンタス)