Monthly Archives:January 2016

Azure: Data Management 2

Introduction to Azureの記事のAzure Data Management後半を見ていきます。

Blobs

Azure Blob(s)、Blob Storage, Storage Blob(s)は同じ意味です。unstructured binary dataを保管するものだそうです・・・・Databaseの世界で使われる用語で、Table等の論理でアクセスまたは演算しやすいRelational DataをStructured dataと呼び、そうでないBinary データをUnstructured dataと呼びます。Structured とUnstructuredの境界が重なるタイプのデータもあるのですが、ここではこれくらいの説明に留めておきます。

Single blobで1TBまでデータを溜め込むことができます。Azure 上のアプリで使うこともVMで使ってworkload(処理負担)を減らすこともできます。大量の動画やファイル等を保管しアクセスする場合にblobsは簡単で安価なStorageになり、特にContent Delivery Networkサービスでよく使われます。

Import / Export

Azure Import/ExportはAzureとオンプレサイト間で大量のデータのインポート・エクスポートするのに簡単迅速に物理的にハードディスクドライブを輸送することができます。大量のデータをNetwork上で移送する際、何日もかかったりしてしまう場合、ハードディスクドライブをBitlocker-encrypted 3.5 SATA式ハードドライブでAzure データセンターに送り、Microsoftにblob storageにデータ移送してもらうことができるのです。移送が終わったらMicrosoftからそのハードドライブが返却されます。また、逆にblobからハードドライブにデータをexportしてもらいハードドライブを送ってもらうこともできます。また大量のデータをArchiveしたいときに有効ですが、データインポートに時間がかかるため災害発生時のデータリカバリーには適しません。

File Service

オンプレでは\\Server\share formatを使うServer Message Block(SMB)を通して大量のファイルデータにアクセスすることが多いのですが、AzureでもこのSMBプロトコルをクラウド上で使うことができます。ReadFileやWriteFileなどのファイルシステムAPIを使ってVM間でファイルを共有することがAzure上のアプリで可能になり、仮想ネットワーク上でRESTインターフェースを使えばオンプレのアプリからもデータにアクセスすることも可能です。Azure Filesはblob サービス上に構築されているのでAzure Storageに組み込まれている可用性、耐久性、拡張性や地理的冗長性も継承されています。

オンプレからクラウド上にアプリを移送する際、分散化アプリの設定ファイル用、ログやクラッシュダンプ等の分析診断ファイルを保管したり、開発者やシスアドが必要なツールをインストールしておく場所用に、File Servicesは便利で有効です。

Brian Moriguchi

Azure: Data Management

Introducing to Azure”の”Data Management“セクションを学習していきます。アプリによって違うタイプのDataを扱う必要があり、それにあわせてAzureではさまざまなデータ保管方法が用意されています。中でも、Azureのデータセンターでは常に三種類のデータが同期(Sync)されています。300マイル以上離れたデータセンターを使うGeo-Redundancy(地域冗長性)を適用するなら同期されるデータの種類は6つになります。

Virtual Machine上でのData Management

Azure Virtual Machine上ではSQL ServerといったDBMSばかりでなく、MongoDBやCassandraといったNoSQLタイプのものも走らせることが可能です。DBMS管理の全部かほとんどをAzure側で管理することが可能です。Virtual Machineの設定やデータディスクはblob storageによってバックアップされます。

Azure SQL Database

AzureにはSQL Databaseというrelational storageが提供されていますが、これはWindows Server上で走るSQL Serverデータベースとは別物です。居是はSQL Azureと呼ばれていたもので、relational database managementの主要な機能を持っています。またSQL DatabaseはPaaSでもあり、データ管理やユーザー管理権限がありますが、OSやデータベースの更新やハードウェア基盤整備等は自動化されてます。SQL Databaseに保管されているデータにはAzure上のアプリからも、Azure外のアプリやデスクトップPC、タブレットやスマートフォンからもアクセスが可能です。

Tables

Azure TablesはAzure Storageと呼ばれることもあります。Tablesという名前がついていますが、relational storageではありませんので誤解のないように。key/value storeと呼ばれるNoSQL型の一例です。固有のkeyを使ってproperty groupを呼び出すことができます。joins等の複雑な操作はサポートされてませんが、typed dataへのアクセスを高速化しています。table一つでterabyteのデータを扱えるほどscalableで、操作法が簡単なのでSQL Databaseのrelational storageを使うより安価です。複雑な検索を必要としない場合に適しています。

今日はここまで・・・次回はblobから。

Brian Moriguchi

Azure:Compute-Cloud Services

Azure のサービスの一つComputeのSub-ServiceにCloud Servicesがあります。今日はこちらを学習してみます。いつものようにMicrosoft サイトの”Introducing Microsoft Azure“の記事を読みながら進めます。Cloud Servicesの全体像がこちらです。Platform as a Service (PaaS)の環境で非常にScalableなCodeを走らせることができるものです。Codeによってはシステム容量やリソースを随時拡大したり不要なときは縮小したりする必要があり、特にユーザー数の多いCloud型アプリを構築運営する際に有効です。

先週学習したAzure ComputeコンポーネントのWeb Appsサービスでも非常に柔軟にScalableなアプリを開発することができますが、システム管理へのアクセスがなく、開発に必要だがWeb Appsで用意されていないソフトウェアをインストールすることはできません。Azure Compute Virtual Machinesサービスでは、システム管理へのアクセスはありますが、自分でアプリやシステム環境の維持や管理をしなくてはなりません。

そういった問題を解決するのがAzure Compute-Cloud ServicesでMicrosoftが提供するPaaS環境です。開発したCodeはVirtual Machine(VM)でinstancesとして実行されますがこのVMはAzure Compute Virtual Machinesで作成したVMとは大分違うものです。Azure自体がOSのパッチをインストールしたり新しいパッチイメージを自動的にロールアウトしたりします。したがって開発したアプリはWebやWorker Role Instances上に置かないで次回説明するAzure Data Management Options上に保管されるべきなんだそうだ。(ふ~む・・・どういうことか次回わかるであろう)

作成されたVMはAuzreによって監視され、ダウンした場合は再スタートされます。設定によっては必要に応じて自動的にInstancesを増やしたり減らしたりすることも可能で、Azureの利用料金を最小にすることができます。

Instanceを作成するときに役割に選択肢がWindows Server上で二つあります。主な違いはWeb RoleのInstanceはIISを走らせ、Worker RoleのInstanceはIISを走らせません。管理の仕方は同じですが、アプリ上両方を使うことが多いということです。例えばWeb Role Instanceがユーザーからのリクエストを受け、その処理をするためにWorker Role Instanceに渡したりします。要は役割変えておいて処理負担を分散させることですよね。スケールをフレキシブルにするためにAzureにどちらのRoleのInstancesでも増やしたり、既存のInstancesをシャットダウンさせたりできます。

大規模なスケールをサポートする必要があって、OSの管理はする必要はないが、Azure Web Apps以上にシステム環境へのコントロールを持ちたい場合に最適のサービスです。どのAzure Computeサービスが最適かもの判断する際の詳細資料は”Azure App Service, Cloud Services, and Virtual Machines comparison“の記事が参考になります。

Azure Portalに行って、左側サイドメニューにCloud services(classic)があるのでそれをクリックして適当に設定すると、すんなりとCloud Servicesが作成されました。

Azure018

Cloud servicesを追加すること自体は簡単でした。問題はAzure上で開発するアプリによってScalabilityやらどの程度システム管理アクセスが必要になるのかということですね。

 

Brian Moriguchi

Azure:Compute-Web Apps

AzureのPortal画面を開くと、夕べインストールしたWindows Serverが”Running”と表示されていて、クリックすると設定内容や設定管理メニューが右側に表示されます。

Azure013

 

今日はCompute構成要素の一つ、Web Appsのメニューを試してみます。

Webサイトを構築してその上でアプリを走らせることが多くなりましたが、Cloud上でこれを行ってもOSやWeb サーバー等のシステム管理業務が派生します。この管理業務を不要にするという便利なのがCompute構成要素の一つWeb Appsです。既存のWebサイトアプリをWeb Appsにそのまま移送しても良いし、Azure上で新たなアプリを作成することもできます。instancesをLoad Balanceの負荷によって随時増やしたり減らしたりもできます。「AWS:インスタンスを立ち上げてみた」でもリンクを掲載しておきましたが、Instanceって何?という方は、こちらの「ウェブサーバインスタンスってなに?」を参考にしてください。

Azure Web Appsには他サイトと連動してVirtual Machine上でWebサイトを走らせるShared Optionと、自身のVirtual Machine上のみで走らせるStandard Optionの二種類があります。

対応している開発ツールとしては、.NET, PHP, Node.js, Java, Phthon, Relational DBとしては、SQL DB, MySQL(ClearDB社版のみ?)が、またアプリとしては、WordPress、Joomla、Drupalが挙げられます。

Webサイト構築する際にはまずこのWeb Appsを使いなさいと。足りない機能があったらCompute構成要素三番目のCloud Servicesを見ろよと書いてます。ん?じゃ、Webサイトだけ立ち上げたかったら、夕べVirtual MachineでDeployしたWindows Serverはいらないっつうことか・・・

Azure Portalの左側のメニューにある”App Services”をクリックするとWeb Apps機能画面がでてくる。Azure014

サービスプランとか選択するといつものように画面右側にぬら~っと別Windowが開かれて実にわかりやすく設定できるようになっている。再度言うけど、新生MicrosoftのUX、やるなぁ~。

料金プランはView Allをクリックすれば一番下に無料プランもでてくる。お試し中なんで無料のにして、Createボタン押すと・・・・

Azure015

PortalのHome画面にすぐ表示されました。HTML Data入ってないから、URLにBrowserからアクセスするとAzure上のIISの初期画面が表示されます。

Azure016 Azure017

そろそろ昼休み終わりなので今日はここまで~次回はCompute構成要素三番目のCloud Servicesメニューを見ていきます。

 

Brian Moriguchi

Azure: Compute-Virtual Machine

前回紹介したAzureの全体像を易しく説明する記事、”Introducing Microsoft Azure”から、”Compute“の章を読んでいきます。Azureの全体構成をまとめたチャートをもう一度見てください。一番上の階層のComputeにあるAzure Virtual Machinesを今回はまとめてみます。

Azure004

なんて綺麗でわかり易いイラストでしょうか。さすが若い世代はVisualのセンスが格段にいいですね。イメージでものごと理解するほうなので助かります。

このVirtual Machineが使える環境をMicrosoftのInfrastructure as a Service (IaaS)といいます。どのVirtual Hard Disk(Imageと呼ばれるもの)を使うかとVirtual Machineの容量を設定したら、後はVirtual Machineが走っている時間分、料金を払えば良いというもの。Virtual HDにはWindows Serverの走る”スタンダード”なものからLinuxやSQL ServerやOracleが走るもの等色々揃えてあり、On Premiseで使っている自前のImageもAzureのStorageにUploadして使うこともできます。勿論DataのみのVHDをUploadしてVMからアクセスして使えます。

そこで無謀にも、いきなり自分のAzure AccountでVMを作ってみようと試してみた。

Portal画面の左側にVirtual Machine メニューでClassicとそうでないのが二つあるので、Classicと書いてない方がきっと新しいのだろうから、そちらをクリックすると・・・・

Azure005

ぉおお、いろーんなイメージがごっそり・・・・一番上にやたら一押しのHortonworksとか、これってOn-premiseとかAzureとかデータやアプリを分散させるときに便利なツールなんだろうな、今流行りの分野だろうから、知りたいが・・・あ、新川町の客がMeetingでつぶやいていたYellowfinもあるじゃないか、これって確かオーストラリアの会社のBI製品なんだよね、コアラが作ってるっつう噂もあるやつ。BYOLだからLicenseもってねーと使えないな。Microsoft Dynamics GPもあるじゃん。話多いんだよね、これ。今度暇できたら遊んでみようかな。すぐお金になるかも(なんて軽い気持ちで手を出すと後で大変なことに・・・)。

あれもこれもいじりたくなる衝動を抑え、とりあえずWindows Serverというベタなのがあるのでそれで試してみよう。これってLicenseいらないんだよね?クリックすると右側にServerタイプがずらっとでてくるので、あまり考えずに一番上のHPC Pack 2012 R2 Compute Node on Windows Server 2012を選ぶ。

Azure006

右側に更にSub Windowが表示され、下のほうに”Select a deployment model”という欄があり、ClassicタイプとResource Managerかを選択できる。新し物好きな僕はResource Manager・・・んで、Createボタンを押す。

Azure008

そしたらまたもや右側にWindowが開いて設定画面に。右に右に画面が進んでいくUXデザインは結構いいですね。気に入りました。新生Microsoft、やるなぁ~。

Virtual Machineの設定:

  • Name: Beckos1
  • User Name: beckos
  • Password: ****** (lower case alphabet, upper case alphabet, 数字、特殊記号が一文字ずつ入る規則です)
  • Subscription: Subscription-1
  • Resource Group: よくわからないのでResource1と適当にタイプ
  • Location: West US

んで、OKをクリックすると、またまた右側にWindowが開いて、サイズを選べと言っていて、下にお勧めタイプが二つ表示されてるけど、4 Core 7 GBで月$178.56か16 Core 112 GBで月$1160.64って、そんなたけぇのいらねーよ、今。右上にRecommendedとView Allとあるので、全表示のView AllをクリックするとA0 Standardタイプで月$14.88というのがあるので、それを選択することに。Load BalancingとAuto Scaleも付いてくるのでこれでよしとする。

Azure009

Selectボタン押すと設定の詳細項目が右側にぬら~っと出てくる。

Azure010

今のところ何をどうしたらいいのか、あまりわからんので、Default値のままOKボタン押しちゃってみると、設定のSummaryを表示してくる。

Azure011

無責任にOKボタン押してみる。そしたら、ぉぉぉおお、Deployされたぞ!

Azure012

Windows Server 2012が俺のAzureに誕生した瞬間だ(この後どうしたらいいかよくわかんない・・・)。アプリ入れて動かすんだろな、この後は。ここまで自分でいじってみてから、また記事に戻り続きをまとめる↓

 

Virtual MachineのもとになるVHDはAzure Storage Blobに格納されていて、ハードウェアやディスク障害時にバックアップとなってRedundancy を実現させています。

Virtual Machineを使うシナリオとして代表的な例です:

  1. Dev/Test 安価に開発やテスト環境を構築することができ、開発に使うツール、言語、ライブラリーが多種多様に渡っているのは、開発者にとっては非常にメリットのあることです。
  2. Move Applications to Azure (Lift-and-shift) アプリのOn-premiseからAzureへの移送のことですが、On-premise上での環境依存があって完全にAzureにアプリ全体を移送できない場合は、オプション3が有効になります。
  3. Extend your Datacenter Azure上のVMでActive Directoryを走らせCloud上にWindows Domainを作れば、On-premiseの環境に依存する部分をDatacenterに残し、移送可能な部分をAzure上で連動させることができます。その連動する上で鍵になるのがAzure Virtual Networkです。※さっき、Imageのところで騒いでいたHortonworksが活躍するシナリオだ。

深夜なので今晩はここまで・・・次回はCompute構成三兄弟の次男、Web Appsの説明です。Windows ServerになんかApp入れて試せるかもしれない。

Brian Moriguchi