Windows Azureを簡単ファイルサーバーに!?
はじめに
第2回は、Windows Azure のストレージサービスについて紹介していきます。
Windows Azure ストレージサービスには、テーブル、BLOB(ドライブ)、キューが提供されていますが、その中でもわかりやすい BLOB にフォーカスを当てて色々な使い方を紹介していきたいと思います。
今回、ご紹介させていただくのは、普段は社内外のシステム管理や開発をしつつ、暇を見つけては Windows Azure で勝手気ままにろくでもないことをして遊んでる、落ちこぼれエンジニアの草苅です。よろしくおねがいします。
Azureストレージは爆安!1GB あたり11円!
Windows Azure には、データを保存する機能の1つとして、SQL Azure の他に Windows Azure ストレージサービスが提供されています。
このストレージサービスには、BLOB、テーブル、キューがあり、それぞれの利用方法や内容については、以下の表で記すようになっています。
BLOB | データを保存する目的での利用。画像や動画などのバイナリデータの保存。 |
---|---|
テーブル | データを保存する目的での利用。表形式の分散Key-Valueストア。 |
キュー | 主に、Windows Azure コンピュートサービスのサーバー間でメッセージの受け渡しとして利用。 |
ストレージサービスは、たくさんのサーバーを用意して繋ぎ合わせ、私たちからはあたかも1つの巨大なストレージに見えるようになっています。このように大量のサーバーを繋ぐことで、数台のサーバーが故障したとしてもサービスは続けることが可能で、利用するユーザーが増えて容量が足りなくなった場合には、サーバーを増設することで対応できるようになっているので、大きなデータを扱うことが出来ます。
※ブロックBLOBは最大200GB、ページBLOBは最大1TBまで可能です。
ちなみに、ストレージに保存したデータは、同じデータセンター内でトラブルが生じたときのために3箇所にコピーされるようになっており、そのコピーされたデータに違いが無いか、定期的にスキャンされるようになっています。
さらに、自然災害等の影響でデータセンター自体に万一の事があった時のために、ユーザーのデータは数百キロメートル離れた別のデータセンターにもコピーされるようになっています。
ストレージサービスの料金設定としては、ストレージに保存しているデータ量や転送量(※)、またストレージに対して発生したトランザクション回数によって金額が変動しますが、執筆時点では、保存データ量1GBあたり1か月約11円で、10,000回のストレージトランザクションで1円以下に設定されています。
※2011年7月1日より受信データ転送量は無料となっています。
いまなら、Windows Azureを無料でご利用いただける特典やキャンペーンもありますので、ぜひ触れてみてください。
Windows Azure を無償で利用するには?
ファイルサーバーとしてだって使える
ストレージサービスって、Windows Azure で動いているWebサイトやアプリのデータを保存するために使われているんじゃないの? と、思われているかもしれませんが、ストレージサービスの利用方法は何もこれだけではありません。
ストレージサービスは独立したサービスとなっているので、SkyDrive や Dropbox などのオンラインストレージのように、PC 内の HDD の容量が足りなくなるようなケースや、PC の故障に備え大事なデータのバックアップの保存先として、また複数のPC利用での共有保存先などとしても利用することができます。
このような使い方をするには、ストレージサービスの BLOB(ブロブ=Binary Large Object) というのを利用します。
BLOBは画像や動画ファイルだったりプログラムの実行ファイルだったり、さまざまなバイナリデータを保存することができるので、他のテーブルやキューと比べると、とてもわかりやすいものだといえます。
BLOBにはコンテナというフォルダーのような役割をもったものが存在します。
このコンテナはBLOBの集まりを管理するだけでなく、アクセス権を設定することが可能になっています。例えば、誰からでもアクセスできるように設定した場合、コンテナの中に存在する画像ファイルをブラウザから参照することが可能になります。
これは、BLOBだけではなく他のストレージサービスも、http(s)://.blob.core.windows.net//
Gladinet Cloud Desktopで簡単ファイル操作
ストレージサービスの中にあるデータを確認したり操作したりするにはどうしたらいいのでしょうか? ポータルサイトからストレージサービス内のデータを操作することができないので、確認や操作をするにはツールを利用することになります。さまざまなツールがありますが、今回は次の4つの無料ツールを簡単に紹介したいと思います。
- Gladinet Cloud Desktop
- Cyberduck
- Windows Azure Platform Management Tool
- Cloud Storage Manager for Azure
Gladinet Cloud Desktop は、Windows Azure だけではなく、SkyDrive や FTP、WebDAV なども一括してエクスプローラーから操作することが可能になっています。
Cyberduckも、Windows Azure 以外に、FTP、SFTP、WebDAVに接続することができます。もともと Mac OS X 向けのオープンソースのFTPクライアントであったため、Windows だけでなく Mac OS X からも Windows Azure のストレージサービスを利用することができます。
Windows Azure Platform Management Tool は、MMC(Microsoft Management Console)という、Windows標準の管理ツールなどで使われている共通の枠組みを使ったツールになります。そのため、普段からWindowsを扱っている方々などは見慣れた画面構成になっているので馴染みやすいと思います。
Cloud Storage Manager for Azure は、リボンインターフェースを使ったツールになります。右クリックから簡単にBLOBのスナップショットの作成や復元を行うことができたり、またFTPへの接続も可能になっています。
なお、今回は取り上げてはいませんが、Azure Storage Explorer や CloudXplorer などのツールは Windows Azure集中講座 の連載で、紹介されておりますので、こちらも併せてご覧ください。
今回は 最初に紹介したGladinet Cloud Desktop をインストールしてファイルをアップロードするところまで紹介したいと思います。なお、他のツールで Windows Azure のストレージサービスを使う場合にも、アカウントとアクセスキーの登録の部分に気を付ければ、だいたい同じような流れになると思います。
Gladinet
次の URL から Cloud Desktop Starter Edition をダウンロードしてインストールを実行します。
インストール後、Cloud Desktop Starter Edition を起動し、下図のように[Windows セキュリティの重要な警告] が表示された場合は、[アクセスを許可する] を選択してください。
[無料のスターターエディションを使用する(3日間のプロフェッショナル試用版が含まれます)] を選択します。
必要に応じてユーザー登録を行います。
追加するストレージの選択を行うために [クラウドストレージのアカウントを追加します] ボタンを選択します。
ストレージサービスの中から [Windows Azure BLOBストレージ] を選択します。
ストレージサービスのアカウントとアクセスキーを入力します。
[稼働ディレクトリにクラウド同期フォルダを有効にする] のチェックボックスを必要に応じて変更します。これは Professional エディションで使える、オンラインストレージを経由したPC間の同期機能になります。
以上で、設定は完了です。
インストールしたPCに My Gladinet Drive という名前で専用のドライブが割り当てられ、その中に [Windows Azure Blob Storage] フォルダが存在することを確認します。
コンテナを作成するには [Windows Azure Blob Storage] 内にフォルダを作成します。 あとはドラッグアンドドロップなどでコンテナ内にファイルを移動することで、ダウンロードやアップロードを行うことができます。
なお、コンテナにつけられる名前には、命名規則が存在します。
もちろん本格的なストレージサービス提供だって可能!
ここまで見て頂いた通り、Windows Azure ストレージサービスの BLOB は、ツールを使って普段のファイル操作感覚で利用できることがわかって頂けたのではないでしょうか。
もちろん、本稿で紹介したツールを使わないでストレージサービスにアクセスする方法も存在します。
ストレージサービスには、.NET クラスライブラリを利用する以外にもAPI が提供されているので REST でアクセスすることができます。また .NET言語(C#/VB.NET) 以外に、SDK が PHP や Java なども用意されているため、これらを使って Windows Azure ストレージ内のデータに対してアクセスすることも可能になっています。
.NET クラスライブラリを使用したサンプル
[ C# ]
http://msdn.microsoft.com/ja-jp/netframework/ee708289#winazure
[ VB.NET ]
http://msdn.microsoft.com/ja-jp/netframework/ee708290#winazure
Windows Azure ストレージ サービスの REST API リファレンス
http://msdn.microsoft.com/ja-jp/library/dd179355.aspx
SDK
[ PHP ]
解説記事:Windows Azure Blob を PHP から活用する
[ Java ]
解説記事:How to Use the Blob Storage Service from Java
また、Windows Azure には CDN(コンテンツ配信ネットワーク)も提供されており、執筆時点では、日本を含む全世界24か所に存在しています。
この CDN を利用すると BLOB が全世界にある CDN ノードでキャッシュされ、よりユーザーに近い CDN ノードからデータをコピーすることができるので、効率よくデータ配信するようなことも可能になります。
※Windows Azure CDN は、Windows Azure ストレージとは別に利用料金が発生します。
このように Windows Azure ストレージサービスは、Windows Azure で動いているWebサイトやアプリケーションのデータ保存目的としてだけではなく、お手軽にHDDの増設であったりファイルサーバーのように利用することもできるようになっています。
次回は、ブログソフトで有名な WordPress やその他のオープンソースのソフトを Windows Azure で簡単に公開することができる方法を紹介したいと思いますので、ぜひご覧ください。