あまりにも良くあるAzure問答集

はい、どうもー。@k1hash です。
Windows Azureアドベントカレンダーの兼ね合いでブログを書いております。

最近、公私ともにWindows Azureの問い合わせが増えて、嬉しいのですが、
どうも毎度同じようなことを話すようになってきたのでよくある問答集を作ってみました。
これ見といて、で序盤の検討事項がある程度済ませられるようになれば幸い。

※だいぶフランクに書いだけど、脳内はクラウディアさんの音声に変換して聞くとよいでしょう。

うちの会社の**システムはAzureで動きますか?

まずだけどデータをクラウドに置くに際して、遵法系やお客さんのポリシーは確認した?

データによっては国外に持ち出せないもの、お客さんのポリシーに反するものがあるので、良く確認してね。
ユーザーのIDとパスワードレベルであれば、暗号化して保存すれば、解決するケースは多いかもね。
で、国外に置けないケースも安心してほしいんだけど、

富士通がアプライアンスとして運営するWindows Azure
もあるので、そちらも検討してみて。

データってどんな感じで保存するの?

クラウドインスタンスって基本揮発性(永続化しない)なので、
永続化させたいデータを意識して利用する必要があるんだけど、
RDBだとSQL Server、あとストレージにキーバリューストアとブロブというファイル置場がある。
他に仮想ディスクとしてドライブが提供されている。
また、オンプレミスからデータを取得して、インスタンスには保存しないというやり方もできるので、(取得のスピードが遅いけど)
どのデータをどこに保存するかを一緒に考えようか。

RDBSQL Serverになるので
もし移行する形態で、現状SQLServerでない人は、移行しないといけない。
例えばOracleだとSQL Serverへの移行支援ツールが出ているので、比較的やりやすいとは思うけど。

アプリケーションについては、.NETのアプリケーションは勿論動くよ。
ただ若干の改修が必要で、改修が多少必要になるのは、永続系データの扱いやログ回りが中心になると思う。
これまで、サーバー内、物理パスや仮想フォルダ内に保存していたものは、
永続化しないのでストレージやSQL Azureへの保存をするように
ログについてもファイル出力しても同じ理由で消えるので、
ストレージに転送する仕組みをSDKが提供してくれるのでそれを適用しないといけない。

サードパーティコンポーネントについては事前に確認した方が良いけど概ね動くよ。
あとレガシーのASPも設定変更で動くので、ご心配なく。

PHPについては、IIS上でPHPを動かすイメージで考えてもらえれば、概ね動くよ。
ただ、永続化データの扱いについては.NETと同じなので、その部分の改修が必要。
PHP用のSDKもちゃんと出ているから、それを使えばいいと思う。

JAVAについてはWindows Azure Starter Kit for Javaというのも出ている通り、デプロイしやすくなっているよ。
Ruby on Railsについては、Nogakudoというコンパニオンツールが出ているのでチェックを。
Node.jsはこれから力を入れていくそう。

開発ツールはVisual StudioEclipseから可能。Eclipse向けのプラグインも出ているのでよろしくね。

ミドルウェアがインストール可能かどうか、良く聞かれるんだけど、デプロイに同梱する形ないし、ストレージから対象を取得する形で
スタートアップタスクと呼ばれるコマンドライン実行で、OSイメージ起動時にインストールすることなら可能。
もし、もうちょっと、複雑なインストーラのあるものを使いたいなら、自分でOSイメージを作成して、VMロールにアップする形になるかな。

外部機関の評価指標はありますか?

AzureはISO27001, SAS70は取得しているそう。(ただし、これはMicrosoftのデータセンターとして)
もし違っていたらツッコミよろしくです。
http://www.microsoft.com/windowsazure/Whitepapers/securityoverview/#5.3

値段っていくらぐらい?

課金シートや、
課金サービスがあるから是非試算してみて。
SQLAzureの利用金額は、データ量を考えればよいので、算出しやすいと思う。1GBで月額870円くらい。
多重化されたSQL Serverがこの値段で手に入るなんて、一番コスパがいいのはSQL Azureなんじゃないかって思ってるよ。
インスタンスについては、どのサイズをいくつ買うにしても、コア6500円くらいだと思ってくれれば。

XSという超スモールサイズもあって、そっちは0.5コア扱い。

制限系はどんなものがありますか?

サーバーについては、インスタンスのサイズが決まっているのでスペックの下限と上限があるので、用途を満たすか要確認。
ちなみにXLのインスタンスで8コア14GBのメモリーなので、スケールアップにはこの限界がある。

あとインスタンスは、アプリケーション更新時やパッチ適用時、物理的な移動時に無停止にするために、
基本2インスタンス以上で組むようになるよ。

あとデータについて、SQL Azureは(2011年12月現在で)50GB→150GBが容量制限になるそう。
ただ、この後Federation機能という複数のSQL Azureを一つのDBに見立てる機能が出てくるので、
DBを分散して負荷に耐えるような事もできるようになるよ。

ストレージについては最大容量は1アカウントあたり100TB。
これを超える場合は、複数アカウントでの運用を考える必要があります。
また各ブロブの最大容量は200GB。ファイル容量の上限についてはこれが当てはまるよ。

IPアドレスは固定のものを持てない。よってドメイン指定する際にAレコードは使えず、CNAMEで運用するよ。
なので、http://jazug.jpはできなくてhttp://www.jazug.jpというドメイン名になる。

SMTPサーバーがないのが良く話題になる。
Workerロールを使えば、SMTPサーバーを作れないことはないんだけど、
SPAM業者のプラットフォームになりかねない等、ポリシーで用意してないとのこと。
Liveのプラットフォームを使ったSendGridみたいなサービスがあるといいんだけど。。。
ので、この部分は別途メールサーバーか外部サービスが必要。

ポートについては、空けたいもの(Endpoint)を自分で設定して運用する感じ。

ネットワークはWindows Azure コネクトを使うとセキュアにオンプレミスと接続できるようになるよ。
ただバーチャルプライベートクラウド的な閉ざされた世界は、まだ作れない。
Azureとオンプレミスをセキュアに接続することはできるけど、
Azureについては閉ざされているわけではないんだ。
IP制限とかするんだったら、今のところプログラム側で記述することになるね。

データセンターはどこ?

全世界で6つ(北ヨーロッパ、西ヨーロッパ、米国中北部、米国中南部、東アジア、東南アジア)あるよ。
日本だと、前述した富士通のサービスがある。
(こちらは、マイクロソフト側が運営するWindows Azureのポータルとは別になる、別サービスなので注意してね。)
だから、日本の選択肢は、香港(東アジア)、シンガポール(東南アジア)、日本By富士通だと思う。
レイテンシはあって、国内にある場合よりは遅いけど、アジアを利用すれば体感では感知できない程度かな。
あとCDNのエッジサーバーは日本にもあるので、CDNを利用したコンテンツのレイテンシは問題ない。
何で日本にもあるかというと、Windows Updateを配っている大規模なネットワークを利用しているから。

マルチテナント出来る?

マルチテナントは出来る。
http://cloudapp.net/site1 http://cloudapp.net/site2 みたいな仮想フォルダ分けもできるし
ホスト名自体を複数割り当てて、ホスト名が参照するルートディレクトリを分けて、制御することもできる。
http://www.jazug1.jp http://www.jazug2.jp みたいにね。
ので、SaaSを作るのにも向いているし、小さいシステムを複数のせるのにも向いていると思うよ。

どの程度自動運用なの?

OSは2008と2008R2のイメージが提供されてる。
パッチは、都度新しいOSイメージがAzure側から提供されて、適用される。
ので、運用側での対応は不要。
もちろん、特定のバージョンに絞って、
自動アップグレードを拒否することもできるのでよろしくね。

また、ハード自体のトラブルやOSのハングアップ時には、
自動で別のインスタンスに割り当てられるから、この点も便利。

データはどの程度守られているの?

SQL Azureのデータベースは自動的に三重化されて、
障害時には自動的にフェイルオーバーし、その後三重化体制に復帰するような仕組み。
ただし、同一リージョン内という話。
これを補うために、データシンクというデータ同期サービスが提供されているので、
オンプレミスや別リージョンと同期可能になるはず。よろしくね。



本番系だけじゃなくてステージングも必要なんだけど

ステージング分も別途インスタンスが必要になるね。
ただ、従量課金なので、ステージングは必要な時に必要な数だけ動かすのが正解で
ずっと動かしておかなくちゃという考えは、いらないと思うよ。

支払はどうなるの?

カード払いが基本だったんだけど、今は請求書払いも充実してる。
ただ、請求書払いは与信を通す必要があった気がするので良く確認してね。

実際どの程度使われているの

2011年12月時点で、日本でのアプリケーション数も5000を突破したと聞いたよ。
有名事例、大規模事例沢山でてきたので、これから要チェックだね。
現状的には、国際的な規模で使われる大規模な業務アプリケーション、
ソーシャルアプリケーション、インターネットコマース、SaaS が中心になっているみたい。
大規模なデータ解析のプラットフォームとしても使われているそうで、事例が充実してきました。
移行の観点から、新規事業や新サービスで使われるケースのほうが、取り組みやすいみたい。
また、季節によって変動するものや短期間というものもAzureにマッチするよ。

この内容のUPDATEはJapan Windows Azure User Groupでチェックしてね。