Zigsow事務局様ならびにMicrosoft様
この度はMicrosoftAzureのレビューの機会を与えていただきありがとうございます。
つたないレビューではございますがよろしくお願いいたします。
Microsoft AzureとはMicrosoftの公式クラウドサービスの名称です。
では本論に入る前に…
ここ数年、技術者だけではなく、一般にもクラウドやクラウドコンピューティングという言葉が浸透しており、どこかしらで聞いたことはあると思います。
ところが曲がりなりもWEBの技術で食べている私のような(末端の(笑))専門の技術者でもクラウドって何?と聞かれて明確に答えられる人はいません。というのも、クラウドに明確な定義はないからです。
一般的な概念では、データを自分のPCや携帯端末ではなく、インターネット上に保存する使い方やサービスのことをいい、最近ではデータのみではなくアプリケーションもインターネット上にあるものを使用したりする事もクラウドに含むようになっています。
またDC(データセンター)などで仮想化したサーバ(VPS)などを貸し付けるサービスもクラウドと呼ばれることがあります。
なぜ「クラウド」と呼ばれているかには諸説ありますが、もともとネットワーク図を描くときにインターネットを雲の図を使っていたこと、定義がもやもやしていて雲のようだからなどの説があります。
クラウドサービスの形態
SaaS(Software as a Service)(サーズ、サース)
インターネット上でソフトウェアパッケージの提供を行います。グループウェアやWEBメールなどがこれに当ります。なおこれは従来言われているASP(Application Service Provider)と同じものと考えてかまいません。
PaaS(Platform as a Service)(パーズ、パース)
インターネット経由でアプリケーションの開発環境や認証環境などを提供するサービスになります。
Haas(Hardware as a Service)(ハース)、Iaas(Infrastructure as a Service)(イアース、アイアス)
インターネット経由でハードウェアや回線などのインフラを提供するサービスです。必要なときだけ仮想サーバを借りたりストレージ領域のみを借りて利用するなどのサービスです。
2014/10/20 追記
DaaS(Desktop as a Service)(ダース)
端末のデスクトップ環境をネットワーク越しに提供するサービス。
さてではMicrosoft Azureとは何か?について行きましょう。
読み方は「マイクロソフト アジュール」と読みます。
Microsoftが提供するクラウドサービスで2008年よりサービス開始しています。
※正式な商用サービスは2010年から。
現在では日本にも専用データセンターが開設され、日本のユーザにも使いやすい体制が整っています。
当初は先にあげたPaaS型のサービスのみの提供でしたが、現在のバージョンではIaaSを含む多数のサービスが正式リリースされています。
実際にサーバの運用業務などをやられている方は経験があると思いますが、サーバOSを動かすハードウェアの保守や資産管理などに手間をかけられた経験はないでしょうか?
クラウドサービスの場合、ハードの保守はサービス提供者…Microsoft Azureの場合は当然、Microsoftが担当しますので、この点を気にせず、自社のアプリケーション等のサービス提供にのみ注力できるので費用的にも時間的にも大幅なコスト削減と安定した運用が期待できることと思います。
お手軽にCMSを使ったサイトを構築
Microsoft Azureの公式サイトは以下のURLです。
http://azure.microsoft.com/ja-jp/
「無料で試す」ボタンをクリックしますとフリートライアルの登録ページへと遷移します。
http://azure.microsoft.com/ja-jp/pricing/free-trial/
「今すぐ試す」をクリックしてください。
Microsoft アカウントのサインインページに飛びますので、「一度もAzureを試用したことのない」Microsoft アカウントをお持ちであれば、そのアカウントでサインインしてください。
アカウントをお持ち出ない場合は、下の方にあるリンクよりMicrosoft アカウントを新規登録してください。
名前やメールアドレスを登録するだけなのでこの処理の説明は省略します。
※なお、一度でも試用したことのあるアカウントですと、再度の試用はできません。
サインインすると初回は自分の情報の登録があります。
間違えやすいのが2番の携帯電話確認で、携帯電話の番号を入力して「テキストメッセージを受信」を押すと携帯電話にショートメールが送信されますが、携帯電話番号の頭の0を抜いた番号を入力してください。
とどいたメールに書かれている6桁の番号を入力して確認ボタンを押し、「サインアップ」します。
次にクレジットカード情報の登録です。
無料体験版では支払いが行われるわけではありません。
本人確認のための登録だと考えてください。
クレジットカードの情報、住所等を入力して2.契約の下にあるチェックボックスをチェックしたら「購入」ボタンをクリックしてください。
※不安であれば、無料体験期間が終了する前に明確にサブスクリプションの契約解除申請を行うことをおすすめします。
サブスクリプションの作成中、この画面が表示されていますのでしばらく待ちます。
※1~2分程度でした。
「!」の部分のリンクをクリックするとサブスクリプションの設定が完了していれば次の画面へ進みます。
これでサブスクリプションの設定は完了です。
なお、無料体験版なのに、20500円なんてクレジットが入っているのは私が支払ったわけではなく、現在キャンペーン中で無料体験登録をすると20500円分のAzureクレジットなるものが提供されるためです。
つまり今なら20500円分まではただで使えると言うことになります。
右上の「ポータル」ボタンをクリックして、実際にAzureを使ってみることにします。
ポータルボタンをクリックすると次のページに遷移します。
初回のみ表示されるダイアログです。
「→」を押すと次に進めます。
Microsoft Azureの管理ポータル画面が表示されます。
簡単に説明すると左側のメニューより作成したいサービスを作成したり、作成したモノの設定変更などが行えます。
普通にWEBサイトを公開する程度であれば、「WEBSITES」「SQLデータベース」を使うでしょうし、オンラインストレージとして「ストレージ」を使ったり、動画配信で「メディアサービス」を使ったりと、現在のWEBシステムでやれることはMicrosoft Azureを使えば一通り出来るようになっています。
なお、今回のレビューではやりませんが、Microsoftなんだから仮想サーバはWindowsしかダメなんじゃないの?とお思いの方はご安心を。
仮想サーバではCentOSなどのLinux環境の構築も可能です。
このように多種多様なOSやアプリケーションのイメージファイルが用意されています。
開発などの仕事をしている経験から欲を言うと、Windows7などのクライアントOSが用意されていると検証環境などが作れるので助かるのですけどね。
ライセンス的に難しいのかもしれません。
さて、今回のレビューの本題です。
今回のレビューの課題として、Microsoft Azureを使ってWordpressで作ったサイトを構築するという事を課題にしています。
Wordpressとは簡単に説明するとCMS(Contents Manegement System)の一種でブログツールなどによく用いられていますし、Wordpressで企業サイトなどを構築するのにもよく用いられています。
※私も個人サイトのブログではWordpressを使用しています。ただし、そちらは非常に一般的なLinux+Apache+MySQL+PHPという構成です。
Azureの管理ポータル画面の左メニューより「WEBSITES」を選択し、右の画面の「CREATE A WEBSITES」をクリックします。
ブラウザの下半分にWEBサイトの構築メニューが出ます。
今回はDBも一緒に作成してくれる「カスタム作成」を選択してください。
URLは公開するURLの登録です。
無料版では「azurewebsites.net」しか使用できません。
またサブドメインには「アルファベット」「数字」「ハイフン」のみ使用可能です。
Wordpressでは通常、MySQLしかデータベースとして使用できませんが、今回はAzureを使うと言うことで、せっかくですのでSQL Sercer(SQLデータベース)を使用してみることにします。
この画面に来たときには、名前の欄は埋まっているはずです。
システムが自動で名前をつけているので、特にこだわりがなければこのままで。
サーバーログイン名とパスワードは、SQLデータベースにアクセスするユーザ名とパスワードなので適宜入力してください。
なお、単にWordpressを使用したいのであれば、WEBサーバの作成時に「ギャラリーから」というメニューを選択するとWordpressのインストールとMySQLのインストールを自動で行ってくれます。
さて、これでWEBサイトとデータベースが作成できました。
コンテンツの更新にはFTPも使えますが、今回はより今風の開発環境でということで「WebMatrix」を使ってみます。
フッターにある「WebMatrix」のボタンをクリックしてください。
もしローカルPCにインストールされていなければインストーラーが立ち上がってインストールが始まります。
インストールされていれば、WebMatrixが起動します。
※WebMatrixのインストールについては省略します。
コンテンツのアップ前にコンテンツ自体をとってくる必要があります。
Wordpressのアプリケーションです。
今回必要なのはWordpress本体とWordpressでSQLデータベースに接続するためのプラグインです。
それぞれ以下のURLから最新版をダウンロードして解凍しておきます。
https://wordpress.org/plugins/wordpress-database-abstraction/
Wordpress本体は4.0日本語版
WP Db Abstractionは1.1.4
を使用しました。
フッターのボタンをクリックしてWebMatrixを起動します。
※起動時に表示されるダイアログで、サーバを直接編集という方を選択してください。
この状態が先程つくったサイトの中身です。
hostingstart.htmlというのがデフォルトで表示されているHTMLファイルになります。
さて、先程解凍しましたWordpress本体のファイル・フォルダを全て選択し、WebMatrixのサイト名のところにドラッグ&ドロップします。
サーバの直接編集を選択しているので、この状態でサーバにWordpressのファイルがアップロードされたことになります。
次はプラグインに若干の編集を行います。
WP Db Abstractionの以下のファイルをテキストエディタで開きます。
\wp-db-abstraction\translations\sqlsrv\translations.php
740行目辺りの以下の行を編集します。
(修正前)
elseif ( count($limit_matches) == 5 && $limit_matches[1] == '0')
(修正後)
elseif ( count($limit_matches) >= 5 && $limit_matches[1] == '0' )
ファイルを修正したら、アップロードします。
wp-content以下にmu-pluginsというフォルダを作って、そこに
wp-db-abstraction.phpとwp-db-abstractionフォルダをコピーします。
wp-db-abstraction\db.phpをwp-content\plugins以下にコピーします。
これで準備は終了です。
その前にもう一つ。
データベースの接続情報を確認しておきます。
左メニューより「SQLデータベース」を選択し、右側に出てくる作成したデータベースの名前をクリックします。
画面下に出てくる赤枠のリンクをクリックします。
ここに各接続形式の接続文字列の情報が表示されます。
今回はPHPの接続情報を使います。
この内容をテキストエディタなどにコピーしてください。
その内容は以下のようになります。
サーバー: [サーバ名,ポート番号] \r\nSQL データベース: [データベース名]\r\nユーザー名: [ユーザ名]\r\n\r\n以後省略
この情報をメモしておいてください。
これで完全に準備が出来ましたのでWordpressの設定にはいります。
WEBサイトを選択して、構築したサイトを表示します。
左メニューより「WEBサイト」を選択してからフッターの「参照」をクリックします。
「さぁ、始めましょう!」のボタンをクリックします。
「Let's go!」リンクをクリックします。
なお、この画面は追加したプラグインの影響です。
通常、日本語版だけであれば以下の画面が表示されます。
データベースを設定します。
先程、接続先確認でメモした内容を入力します。
それぞれ、先程のメモを対応する項目に入力し、「Submit」ボタンをクリックします。
Database Name:[データベース名]
User Name:[ユーザ名]
Password:登録したパスワード
Database Host:[サーバ名,ポート番号]
Database Type:PDO Sqlsrvを選択
データベースに接続できればこの画面が出ます。
エラーの場合は、接続情報を再確認します。
問題なければ「Run the install」リンクをクリックして、インストールを開始します。
インストールが完了すると、ユーザ登録画面です。
適宜入力して「Wordpressをインストール」ボタンをクリックします。
インストール完了です。
1件テスト投稿してみましたが、うまくいきました。
今回はWEBサイトとデータベースのみを使用しています。
通常、このくらいのクラウド環境でもバックアップサービスを別途導入したりと手間がかかりますが、標準でバックアップ機能や時間を設定してのタスク実行などは当然のように行えます。
ですので、機能としては現在のMicrosoftAzureはかなり実用レベルにまで到達しているので機能面では導入するのに問題ないレベルかと思います。
企業で導入する場合、ネックになる点が二つあると考えています。
一つはセキュリティ…これに関しては不必要なポートはふさぐ、管理ポータルやデータベースには特定のIPからしかアクセスさせないなど一般的なセキュリティポリシーで防げると考えています。
もう一つがコスト面。
問題なのが基本的に従量課金だと言うことです。
うちの会社の場合だと、予算が結構がちがちに決まってしまうので、なかなか毎月料金が違いますという経費は使いにくいんですが、キャンペーン系や一時的な開発にしか使わないような予算が下りるのであれば非常に便利だと考えています。
特にVisualStudioがオンラインで使えるのは非常にソフト購入のコストを抑えるという意味では検討に値するのではないでしょうか。
今回はWEBサイトを一つ作って公開するという使い方しかしていませんが、APIとして使う、メディアサーバとして使う、大容量ストレージを使うなど可能性はいっぱいあふれています。
今後、機会があればどんどん勉強して使っていきたいと思いますし、このレビューもこれで終わりではなく、続きを書いていければと思っています。
長々と稚拙な文章ではございますがありがとうございました。
2014/10/15 追記:
小規模なブログ程度のツールであれば単一のサーバで問題ないでしょうが、大規模なサイトになってくると負荷分散や可用性の担保のために複数台のサーバを構築して冗長化することがあります。
ちょっと調べてみたところ、Azureでも冗長化構成は可能ですが、WEBサイトではWEBサイトのメニューの「スケール」より「Web ホスティング プランのモード」を変更することで自動で冗長化できるようです。
現在は無料評価版を使用していますので当然「無料」になっています。
これは通常のレンタルサーバなどと同様に、ひとつの仮想サーバ(VM)上で複数のWEBサイトを構成しているのと同様の構成なのだそうです。
「標準」だと、ひとつのVMを自分のWEBサイトで占有できるため、CPUやメモリリソースを考えるとかなり余裕ができますが、冗長化はされていない状態です。
「共有」「標準」との区別がいまいちわからんのですが・・・
さらにいうとインスタンス数=VM数になります。
無料=1インスタンスから変更できませんので、やはり無料では冗長化できるわけではないようです。
ZIGSOWにログインするとコメントやこのアイテムを持っているユーザー全員に質問できます。