いま、一番気になる windows azure web サイトを完全チェック!!

29
いま、一番気になる Windows Azure Web サイト を完全チェック!! しばやん

Upload: tatsuro-shibamura

Post on 24-May-2015

4.122 views

Category:

Technology


9 download

TRANSCRIPT

Page 1: いま、一番気になる Windows Azure Web サイトを完全チェック!!

いま、一番気になるWindows Azure Web サイトを完全チェック!!しばやん

Page 2: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Introduction

しばやん (@shibayan)

http://shiba-yan.hatenablog.jp/

Microsoft MVP for ASP.NET/IIS

ASP.NET MVC Contributor

I love Windows Azure Web Sites

Page 3: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Important Notice

本セッションの内容は 2014/02/14 時点の情報を基にしています

Windows Azure の進化はとても速いです!

特に Web サイトは 3-6 週間の単位で進化し続けています

最新情報は Web で!

Twitter では #azurejp や #jazug のハッシュタグを追いかけると幸せ

Scott Guthrie や Azure MVP / JAZUG メンバーのアカウントをフォロー

@scottgu

@kamebuchi / @harutama / @normalian / @k1hash / @sleepy_taka

Page 4: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Agenda

Windows Azure の日本ジオ(主要地域)が今年中に開設されます

東日本、西日本リージョンで DR も d( ^ω゚ )バッチリ!!

Azure の中で一番簡単に使えるのが Web サイト

特別な知識は必要なし!今までの Web アプリケーションがそのまま動作

すぐに使うのは難しい?でも、どんなことが出来るのか知っておこう

スケールアウト、WebSocket が必要だからクラウドサービス?

バッチ処理が必要だから仮想マシン、ワーカーロール?

Page 5: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Windows Azure

Microsoft が提供中のパブリッククラウドプラットフォーム

正式サービス提供から今年で 4 年目、ついに日本にデータセンター開設

提供しているソリューションの一部

インフラストラクチャ : 仮想マシン / 仮想ネットワーク

Web : クラウドサービス / Web サイト

モバイル : モバイルサービス / サービスバス通知ハブ

ビッグデータ : HD Insight (Hadoop)

メディア : メディアサービス

IDM / アクセス管理 : Active Directory (WAAD)

Page 6: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Windows Azure Web Sites

Windows Azure が提供する PaaS 機能の一つ

同じようなものとして Windows Azure クラウドサービスがある

高速なプロビジョニング、スケーラブル、オープンかつフレキシブル

新しい Web サイトの作成は数秒、すぐに公開

各種オープンソース CMS などを数クリックで作成可能

クラウドとオンプレミスで共通のコードベースを使って開発

オンプレミスで動かしていたアプリを Web サイトへ

Page 7: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Platform as a Service

Windows Server 2012 上に構築された実行環境

ホスト OS / ゲスト OS や .NET Framework などを含めたランタイムのパッチなどは随時、自動的に適用されている

ダウンタイムがほぼゼロで実行環境のアップデートが行われる

Windows Server 2008 R2 から 2012 へのアップデートは気が付かなかった

アプリケーションの互換性問題もほとんど無し

開発者は完全にアプリケーションの開発に集中できる

Page 8: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Web Sites vs. Cloud Service

そもそも、仕組みが全く異なっている

そして Web サイトはクラウドサービス上に構築されている

クラウドサービスの方がよりスケーラブル

Web サイトは最大でも 10 インスタンスまでしか増やせない

クラウドサービスは与信次第で数千コアまで可能

Web サイトの方がお手軽、既存のアプリを動作可能

クラウドサービスは専用にパッケージングしたり大変、デプロイは遅い

Page 9: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Application Platform

Page 10: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Application Runtime

最新のアプリケーション開発環境が用意されている

.NET Framework 3.5 / 4.5.1

PHP 5.3 / 5.4 / 5.5

Python 2.7

Node.js 0.10.24

32bit / 64bit の選択可能なワーカープロセス

JIT コンパイラや GC など、CLR の挙動も少し変わる

クラシック / 統合の選択可能なパイプライン(古いアプリ向け)

Page 11: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Compute Mode

無料 / 共有 / 標準の 3 つのモードが用意されている

無料モード

マルチテナント、1 リージョンにつき 10 サイトまで無料で作成可能

共有モード(プレビュー)

マルチテナント、1 リージョンに付き 100 サイトまで作成可能

標準モード

仮想マシンインスタンスを 1 つ占有するモード

1 インスタンスに最大 500 サイトまで載せることが可能

Page 12: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Multi-tenant

IIS のマルチテナント機能を使い、1 つの仮想マシン上に複数の Web サイトをホスティングしている

信頼レベルはフルトラスト、別サイトにはアクセス不可

標準モード以外では、使用できるリソースに制限が加えられている

無料モードでは転送量 165 MB まで、CPU やメモリにも厳しい制限

共有は少し緩いが、CPU やメモリに制限が付いている

ホストする仮想マシンのスペックは 8 CPU / 14GB MEM

XL (A4) インスタンスに相当

Page 13: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Scale-up / Scale-out

仮想マシンのスペックの変更や、インスタンスの数を管理ポータルから簡単に変更可能

ダウンタイムほぼゼロでのアップグレードが実現されている

標準モードではインスタンスサイズを S / M / L から選択可能

クラウドサービスや仮想マシンのインスタンスサイズと等しい

共有モードでは 6 インスタンスまで拡張可能

標準モードでは 10 インスタンスまで拡張可能

Page 14: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Auto Scaling (Preview)

5 分間の平均 CPU 使用率によるオートスケール

メトリックの範囲、最少・最大インスタンス数を設定可能

追加インスタンスが準備完了になるまでは数十秒と非常に高速

予め定義したスケジュールにしたがってのオートスケール

時間帯や曜日でのスケジュールが設定可能

休日など、予めアクセスが増えることがわかっている場合に有効

標準モードのみオートスケールを設定可能

Page 15: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Custom Domains

ロードバランサーの IP アドレスが変更されないので、クラウドサービスや仮想マシンでは難しかった A レコードの割り当てが可能

CNAME も当然ながら割り当てが可能

割り当てるためには DNS に所有者であることを確認するレコードを追加する必要がある

awverify.mydomain.com みたいな DNS レコード

共有、標準モードのみ独自ドメインの割り当てが可能

Page 16: いま、一番気になる Windows Azure Web サイトを完全チェック!!

SSL (IP / SNI)

IP アドレス毎に証明書を割り当てる SSL

固定 IP が必須となるので割高

Server Name Indication を使って、ホスト名に証明書を割り当てる SSL

バーチャルホスト環境で運用できるので割安

Windows XP 上の IE では全滅なので、XP を切る覚悟が必要

標準モードのみ SSL を設定可能(共有でも設定可能になる予定)

Page 17: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Service Level Agreement

無料モードには当然ながら SLA は用意されていない

共有モードは現在プレビューなので SLA は用意されていない

GA になったタイミングで付く可能性はあるかも?

標準モードのみ 99.9% の SLA が用意されている

クラウドサービスのように 2 インスタンス用意しても 99.95% の SLA は得られないので注意

Page 18: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Application Development

Page 19: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Continuous Deployment

git / Mercurial / BitBucket / CodePlex / DropBox / GitHub / Visual Studio Online からデプロイが可能

Web Hook を使って、プッシュされたタイミングでのデプロイ

デプロイされているバージョンの確認、ロールバック

ASP.NET アプリケーションのビルドを自動的に行う

Visual Studio Online の場合は TFS が

git の場合は Web サイトが自動的にビルドしてデプロイ

Page 20: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Database

SQL Database

20MB までは無料で利用可能

通常の従量課金プランを使うことで 150GB までスケール可能

プレビュー版の占有型 SQL Database も利用可能

ClearDB (MySQL)

20MB までは無料で利用可能

有料プランを購入することで SQL Database 以上にスケール可能

Page 21: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Staging & Swap (Preview)

ステージングサイトを作成し、数秒でプロダクションとスワップ

WebSocket などの接続はスワップしても維持されている

http://<sitename>-staging.azurewebsites.net/

仮想 IP アドレスを付け替えているわけではない

クラウドサービスの VIP スワップとは仕組みが異なっている

標準モードのみステージングを作成可能

Page 22: いま、一番気になる Windows Azure Web サイトを完全チェック!!

WebSocket

IIS 8 にアップデートされ、WebSocketModule が利用可能に

管理ポータルから有効化する必要がある

同時接続数に制限あり

無料モードでは 5 接続、共有モードでは 35 接続、標準モードではインスタンスサイズに関わらず 350 接続に限定

インスタンス数を増やすことで対応

SignalR を使い、WebSocket 以外の接続にフォールバックさせて対応

Page 23: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Web Jobs (Preview)

コンソールアプリや PHP などのスクリプトをジョブとして追加できる

オンデマンド / 連続的 / スケジュールの 3 種類が用意されている

オンデマンドで実行

自動的には起動せず、API やポータルから選択した時のみ実行

連続的に実行

後述する Always On を有効にしないと信頼性が下がる可能性

スケジュールに従って実行

プレビュー版の Windows Azure スケジューラを利用

スケジューラの設定次第で別途費用が発生する可能性あり

Page 24: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Windows Azure WebJobs SDK

Azure ストレージと連携した Web Jobs を簡単に実装するための SDK

Install-Package Microsoft.WindowsAzure.Jobs.Host –Pre

Table / Queue / Blob を抽象化したインターフェースを提供

Table の読み書き

Queue の監視、メッセージ追加

Blob の読み取り、作成

Web Jobs を管理するためのページも標準で用意されている

Page 25: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Always On

自動的にサイトに ping を送信し、インスタンスを常に起動状態にする

IIS のワーカープロセスは一定時間アクセスが無いと落ちるので、初回アクセス時に応答が遅くなるのを防げる

連続的に実行される Web Jobs を利用する場合には必須

5 分間隔でアプリケーションルート “/” へ HTTP GET が投げられる

IIS 8 で追加された ApplicationInitialization モジュールを使っている

標準モードのみ Always On を設定可能

Page 26: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Visual Studio Online (Preview)

Codename “Monaco”

Web サイトでは Site Extension として実装されている

管理ポータルから有効化するだけですぐに利用可能

様々な言語に対応したエディタを搭載

C# / VB / JavaScript / TypeScript / PHP / Ruby など

言語によってはインテリセンスも動作する

コンソールから git や MSBuild など各種コマンドを利用可能

Page 27: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Monitoring / Diagnosis

IIS の詳細なエラー出力を保存

リクエストのトレースログ(XML + XSLT)

エラー画面の HTML をそのまま保存

Web サーバのログ

ファイルシステム / Blob ストレージの保存が選択可能

ファイルシステムは 100MB、ストレージは無制限に保存が可能

New Relic などの監視ツールを簡単に利用可能

Page 28: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Remote Debug

デバッグビルドでデプロイし、管理ポータルからリモートデバッグの設定を有効にすると 48 時間だけ可能

48 時間を過ぎると自動的に設定がオフに戻る

Visual Studio のサーバエクスプローラから、リモートデバッグを行いたい Web サイトを選択

Windows Azure SDK 2.2 以上が必須

Visual Studio 2012 / 2013 に対応

Page 29: いま、一番気になる Windows Azure Web サイトを完全チェック!!

Log Stream

Trace クラスを使ったログ出力をストリーミング表示

管理ポータルからの設定で IIS ログなども表示可能

Web インターフェース(Kudu)

Visual Studio + Windows Azure SDK

サーバエクスプローラから対象の Web サイトを選択する

表示するログレベルを設定から指定可能