[運用]
Amazon EC2/S3で作るWindows公開サーバ(前編)

1.Amazon EC2/S3の概要

デジタルアドバンテージ 島田 広道
2009/11/25

Amazon EC2/S3の特長や注意点

 Amazon EC2をひと言で表すと、仮想化されたサーバ・マシンをインターネット経由で提供するサービスである。仮想マシン上で実行されるOSは選択可能で、OSのレベルからカスタマイズしてサイトを構築できる。Amazon S3の方は、インターネット経由でストレージを提供するサービスで、Amazon EC2と連携することも、独立して利用することも可能だ(Amazon EC2を利用する場合、Amazon S3は必須)。どちらもAWSではインフラストラクチャのサービスに分類される。

 以下に、これらのサービスの特長や注意点を記す。

課金は完全な従量制で初期費用が不要
 従来のレンタル・サーバ・サービスでは、運用中の料金とは別に、サービス契約時にいくらかの費用(初期費用)を支払わなければならない。特に専用サーバ・サービスだと、実際に1台のサーバ・マシンを用意することため、初期費用が10万円以上になることもある。

 しかしAmazon EC2/S3では初期費用はまったく掛からない。運用中に掛かる料金も従量制で、稼働時間や使用容量、転送量、I/Oリクエスト数などに応じて課金される。そのため、まったくサービスを利用しなければ課金も生じない。

サービスが利用できるようになるまでの時間が非常に短い
 従来のレンタル・サーバ・サービスでは、申し込んでから実際にサービスを利用できるようになるまで、数日掛かることが多い。専用サーバ・サービスだと1週間以上掛かることも珍しくない。

 Amazon EC2/S3はオンラインでAWSのアカウントを作成した後、すぐに仮想マシンやストレージのセットアップを開始できる。申し込みから仮想マシン上のOSを実際に利用できるようになるまでの時間は、実質的にユーザーによるセットアップ操作に掛かる時間が大半で、初めてでも数十分、慣れれば十数分程度で完了できるだろう。

 また仮想マシンを追加する場合も同様に短時間で済む。前述の従量課金と併せると、必要なときに必要なだけリソースを使うという運用が可能なサービスである。

拡張や性能向上が容易
 運用中のパフォーマンス不足によりサーバ数を増やしたい場合、Amazon EC2では前述のとおり、仮想マシンの追加がごく短時間で済む。さらに、前述のようにカスタマイズ済みのOSイメージで仮想マシンを起動できるので、短時間でサーバを増やせる。

 またAmazon EC2では、性能の異なる7種類の仮想マシンをラインアップしている。そのため、最初は性能の低い(=価格の安い)仮想マシンを採用し、負荷が増えてきたら性能の高い仮想マシンに切り替える、といったことも容易にできる。

 注意が必要なのは、仮想マシンのメモリ容量や仮想プロセッサなどを個別に調整できるわけではない点だ。こうしたパラメータは仮想マシンの種類で決まっており、変更できない。ただしディスク容量については、EBS(Elastic Block Store)というオプション機能により、ローカル・ドライブを追加して増やすことが可能だ。

APIを利用したリモート制御が可能
 Amazon EC2/S3では、仮想マシンやストレージをリモートから制御するためのAPIが用意されている。例えば仮想マシンやストレージに対して、通常は手動で行う操作をプログラムから自動的に実行したりできるので、プログラムを開発して管理・運用の効率化を図ることも可能だ。

カスタマイズしたOSを保存して再利用できる
 Amazon EC2は仮想マシンを提供する汎用サービスのため、その上で実行されるOSに対してさまざまなカスタマイズが可能だ。さらにカスタマイズ後のOSの環境をOSイメージとして保存し、それを別の仮想マシンにロードして再現できる。同じ構成のサーバを何台も用意したり、少しずつ設定の異なる仮想マシンでテストしたりするのに便利な機能だ。

 なおAmazon EC2ではOSイメージのことをAMI(Amazon Machine Image)と呼ぶ(厳密には、Amazon S3に保存されたOSイメージのうちAmazon EC2に登録されたものを指す)。最初に仮想マシンにセットアップするOSもAMIで提供される。

Amazon EC2/S3におけるOSイメージ(AMI)の利用
Amazon S3には、Windowsを含む各種のOSイメージ(AMI)が登録されている。このAMIを選んでAmazon EC2の仮想マシン(インスタンス)にロードすることで、希望のOSを起動できる。一方、OSやアプリケーションをカスタマイズした後、新たなAMIとしてAmazon S3に保存できる。これを再利用して、同じ構成のサーバを増やしたりできる。

インスタンスを終了するとローカル・ディスクの内容が消失する
 Amazon EC2では仮想マシンの終了時に、ローカル・ディスクの内容は保存されない。つまり、最初にOSイメージ(AMI)がローカル・ディスクにロードされた後に加えられた変更は、終了とともにすべて消失してしまう。ローカル・ディスク上のユーザー・データはもちろん、OS/アプリケーションに対する設定変更やパッチ適用など、すべてが失われることになる。ただし、OSを再起動するだけなら消失しない。

 この消失を防ぐには、終了前にOSイメージをAmazon S3に保存し、起動時にはそのOSイメージをロードする。つまりOSイメージの保存は仮想マシンのバックアップという重要な役割も担っている。

 頻繁に更新されるデータの保存については、恒久的にデータを保存可能なEBS(Elastic Block Store)を利用したり、複数のインスタンス間でレプリケーションしたりすることが推奨されている。

Amazon EC2/S3の仕様と料金

 Amazon EC2/S3の仕様と料金について、もう少し詳細を確認しておこう。なお、Amazon EC2/S3の料金はデータセンターの設置場所(米国か欧州)で異なるが、日本から利用する場合は通常、米国を選択するため、以下では米国選択時の料金のみ記載している。

仮想マシン(インスタンス)の種類によって料金が変わる
 Amazon EC2では、メモリ容量やプロセッサ性能などが異なる7種類の「インスタンス」すなわち仮想サーバ・マシンのイメージが提供されており、実行するアプリケーションの特性に応じて最適なインスタンスを選択できる。例えば、たくさんのメモリを必要とするアプリケーションはメモリ容量の大きなインスタンス上で、計算処理の多いアプリケーションはプロセッサ性能の高いインスタンス上でそれぞれ実行する、といったことが可能だ。

 インスタンスごとに料金も異なり、下表のように設定されている(いずれも料金はWindows OSの場合)。「計算ユニット」は仮想マシンにおける仮想プロセッサ・コアに相当し、個数が多いほどプロセッサ性能が高い。計算ユニット1基当たりの性能は、2007年版のIntel XeonまたはAMD Opteronの1.0GHz〜1.2GHzに相当する。「ストレージ」はインスタンスのローカル・ドライブとして利用できるもので、OSがインストールされたシステム・ドライブ(C:ドライブ)とデータ用ドライブ(D:ドライブ)からなる。Amazon S3のストレージとは別のものだ。

  メモリ 計算ユニット ストレージ アーキテクチャ 料金(SQLなし) 料金(SQLあり)
Standard Instance(標準のインスタンス)    
Small(32bit版のデフォルト) 1.7Gbytes 1基 160Gbytes 32bit 0.12ドル/時
Large(64bit版のデフォルト) 7.5Gbytes 4基 850Gbytes 64bit 0.48ドル/時 1.08ドル/時
Extra Large 15Gbytes 8基 1690Gbytes 64bit 0.96ドル/時 1.56ドル/時
High-Memory Instance(メモリ容量を増やしたインスタンス)  
Double Extra Large 34.2Gbytes 13基 850Gbytes 64bit 1.44ドル/時 2.04ドル/時
Quadruple Extra Large 68.4Gbytes 26基 1690Gbytes 64bit 2.88ドル/時 4.08ドル/時
High-CPU Instance(プロセッサ性能を高めたインスタンス)  
Medium 1.7Gbytes 5基 350Gbytes 32bit 0.29ドル/時
Extra Large 7Gbytes 20基 1690Gbytes 64bit 1.16ドル/時 2.36ドル/時
Amazon EC2のインスタンスの料金体系
価格はいずれもOSにWindowsを選択した場合のもの。「(SQLあり)」は、SQL Serverを搭載したWindowsのOSイメージを利用する場合の料金。メモリ容量や計算ユニット(仮想プロセッサ・コアに相当)の個数などが異なる7種類のインスタンスが用意されており、それぞれ1時間ごとの単価が決まっている。従量制なのでインスタンスを使わなければ課金されない。

 インスタンス上で実行できるWindows OSは、Windows Server 2003 R2 Datacenter Editionに限られる。DBMSとしてはSQL Server 2005 Standard Editionが提供されているが、上表のように料金は高くなる(SQL ServerのExpress Editionであれば無償利用が可能)。2009年11月下旬の時点で利用可能なWindowsベースのOSイメージは次の5種類である。

Windows OS アーキテクチャ SQL Server 料金(Largeインスタンスの場合)
Windows Server 2003 R2 Datacenter Edition 32bit なし 0.48ドル/時
SQL Server 2005 Express Edition
64bit なし
SQL Server 2005 Express Edition
SQL Server 2005 Standard Edition 1.08ドル/時
Amazon EC2で利用可能なWindowsのOSイメージ(2009年11月下旬)
AWSからは、この5種類のOSイメージが提供されている。SQL Server 2005 Standard Editionが利用できるのは64bit版のみだ。

Amazon S3ではストレージ使用容量に応じた従量制の課金
 Amazon S3のストレージも利用料金は従量制で、下表のように使用容量に対しては4段階の料金体系で課金される。

1カ月当たりの使用容量 料金
最初の50Tbytesまで 0.15ドル/Gbytes
次の50Tbytesまで 0.14ドル/Gbytes
次の400Tbytesまで 0.13ドル/Gbytes
500Tbytes以降 0.12ドル/Gbytes
S3のストレージの料金体系

データ転送量にも従量制の課金
 Amazon EC2のインスタンスやAmazon S3のストレージで生じるデータ転送にも、その容量に応じて利用料金が掛かる。インターネットすなわちAWSの外部からのアップロードには、1Gbytes当たり0.10ドルの料金が掛かる。ダウンロードについては下表のように4段階の料金体系で課金される。これらの金額はAmazon EC2とAmazon S3で共通だが、もちろんそれぞれで生じた転送量に応じて別々に課金される。なお、Amazon EC2とAmazon S3の間のデータ転送(OSイメージのロードや保存など)には、基本的に課金されない。

1カ月当たりのダウンロード容量 料金
最初の10Tbytesまで 0.17ドル/Gbytes
次の40Tbytesまで 0.13ドル/Gbytes
次の100Tbytesまで 0.11ドル/Gbytes
150Tbytes以降 0.10ドル/Gbytes
ダウンロード時のデータ転送量に対する課金
アップロード時の1Gbytes当たり0.10ドルに比べて、ダウンロードには若干高い料金が設定されている。

そのほかの料金
 Amazon EC2でよく利用されるオプションとしては、インスタンスのローカル・ドライブとして利用できるEBS(Elastic Block Store)と呼ばれるストレージがある。インスタンスに付属するストレージと異なり、インスタンスを停止しても内容が保持されるほか、スナップショットを作成してAmazon S3に保存できる。EBSに対しては、確保した容量に対して1カ月当たり0.10ドル/Gbytes、スナップショットに対しては1カ月当たり0.15ドル/Gbytesなどの料金が掛かる。

 もう1つ、固定IPアドレス(Elastic IP Address)もよく利用されるオプションだ。インスタンスに割り当てられるIPアドレスは、デフォルトでは起動するたびに変動する動的なものだ。このオプションにより固定のIPアドレスでインスタンスに接続できるようになる(IPアドレスを個別に選ぶことはできない)。インスタンスに1つの固定IPアドレスを割り当て続ける場合、固定IPアドレスに対するデータ転送に1カ月当たり0.01ドル/Gbytesが課金される。

実際のところの月額料金は?
 気になる月額料金だが、例えばライブWebサーバに対するリハーサル・サーバ(実際に運用する前に利用する、テスト配置用のサーバ)などでデータ転送量が少ない場合、料金のほとんどはAmazon EC2のインスタンス利用分となる。例えばデフォルトのSmallインスタンスにWindows(SQL Serverなし)を組み合わせ、無停止で1カ月間利用した場合、料金は約88ドル(1ドル90円換算で約7920円)となる。実際に筆者が管理しているリハーサル・サーバでは、コンテンツのアップロードと関係者だけによるWebページの閲覧のみで、インスタンス以外には約1ドルの料金しか請求されなかった。テスト目的でデータ量が少ない用途であれば、この程度の課金で済むだろう。

 一方、大きなデータを扱うサイトでは、データ転送量に対する課金やAmazon S3やEBSのストレージ使用容量に対する課金がかさむことになる。例えばAmazon S3に1Tbytesのデータをアップロードして1カ月間保持した場合、ダウンロード分を省いて単純に計算すると転送量に対して約102ドル、使用容量に対して約153ドルの合計約256ドル(1ドル90円換算で約2万3040円)掛かることになり、インスタンス分を大きく超える。アクセス頻度が極端に高いサイトについても同様に課金が激増しやすい。このように従量課金に上限がないため、データ・サイズが大きかったりアクセス数が多かったりする用途は要注意である。

 月額料金をシミュレーションしたい場合は、AWS提供の月額料金算出用Webページが利用できる。


 INDEX
  [運用]Amazon EC2/S3で作るWindows公開サーバ(前編)
  1.Amazon EC2/S3の概要
    2.AWSとの契約とEC2/S3利用申し込み
    3.アクセス・キーと秘密鍵/公開鍵ペアの取得
    4.インスタンスの起動とWindowsへの接続
 
  [運用]Amazon EC2/S3で作るWindows公開サーバ(後編)
    1.Windowsの日本語化とWebサイト公開
    2.OSイメージ保存とインスタンス終了、固定IPアドレス割り当て

 「 運用 」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間