Windows Azure

Introducing the Windows Azure SDK for PHPをざっくり意訳した投稿です。

Windows Azure SDK for PHPは新しいものではなく、特に紹介する必要は無いかもしれません。

でも、Windwos Azure platform用のPHPアプリケーションを構築する多くの人にとって、SDKは必要なものです。もしSDK 4.0のリリースを確認してなかったり、リリースされたことを知らない人のために紹介したいと思います。

この投稿で、SDKを使用するのに助けになるいくつかの参考情報へのリンクを紹介します。マイクロソフトの Interoperability チームがメンテナンスしているAzurePHPサイトが、とても勉強になります。

SDKの更新内容と入手場所、設定方法について

この投稿では、Windows Azure SDK for PHPのセットアップと、SDKのすぐれてた特徴を紹介します。
SDKは、3つの要素から構成されています。

クラスライブラリ

Windows Azure ストレージサービスにアクセスしたり、Blobストレージにログ情報を格納したり、サービスやデプロイに関する統計情報を収集したり、サービスやデプロイを管理したりするためのライブラリです。

APIリファレンス文章は、SDKの\libraryディレクトリにヘルプへのリンクを格納しています。

コマンドラインツール

ビルド、パッケージ化、配置、プロジェクトの管理などをするためのツールです。

サンプルと詳細情報は、SDKセットアップ後、コマンドラインツールでツール名を入力しEnterを押してください。

プロジェクトテンプレート(scaffold)

.pharファイルのフォームです。

テンプレートの詳細については、後述するアプリケーションのパッケージと配置セクションを参照してください。

アプリケーションのパッケージと配置方法

Windows Azure SDK for PHP 4.0で、Windows AzureにPHPアプリケーションをパッケージ化し配置する“scaffolds”コンセプトを紹介します。

この目的のために使用するPHP開発者用のWindows Azure コマンドラインツールを使用したことがあれば、本当に少しの作業で実現できることに気が付いたと思います。scaffoldsは、とっても簡単で、とっても強力なツールです。scaffoldsは、.pharファイルのPHP/Aずれプロジェクトテンプレートです。

アプリケーションを配置するのに使用するSDKの(/scaffolders ディレクトリに格納されている)デフォルトテンプレートでは、PHPOnAzureにアプリケーションのソースコードを追加します。

詳細については、 Build and deploy a Windows Azure PHP applicationを参照してください。

scaffoldsの使用方法を知るのに参考になるサイト

scaffolderツールを使用するとアプリケーションに特定情報を(e.g. SQL Azure データベースの接続情報)追加したり 、簡単にAzureにデプロイできます。 アプリケーションでのscaffold使用方法については、Using Scaffoldsを参照してください。

Windows Azure Blob, Table, Queueストレージサービスへの接続方法

SDKで提供するクラスライブラリで、Windows Azure Blob, Table, Queueストレージサービスに接続できます。おもに使用するクラスは、
Microsoft_WindowsAzure_Storage_Table
Microsoft_WindowsAzure_Storage_Blog
Microsoft_WindowsAzure_Storage_Queue classes
です。

これらのクラスの使用方法については、下記ドキュメントを参照してください。いくつかのどきゅ面tのは、4.0の前のバージョンのSDKを基にしたものがありますが、ストレージAPIには互換性があります。

テーブルストレージを使用する

Blobストレージを使用する

Queueサービスを使用する

そのほかの資料

そのほかに、以下の資料が参考になります。

Windows Azure

Windows Azure Accelerator for Web Roles Version 1.1 | Nathan Tottenをざっくり意訳した投稿です。

今日、最初のWindows Azure Accelerator for Web Rolesのアップデート版をリリースしました。

このアップデートでは、バグフィックスといくつかの新しい機能追加が含まれています。このリリースは、旧バージョンのアクセラレーターと互換性があり、すでにデプロイしているアクセラレーターをアップデート版に置き換えることができ、サイトは同期し動作し続けます。この投稿では、幾つかの新しい機能と、幾つかの既知の問題の対処について紹介します。
もし、まだアクセラレーターを使用していない場合は、紹介エントリー(英語)を読むことをお勧めします。
日本語では、次のサイトで紹介されています。

MVC3とPHPに対応

アクセラレーターの最初の変更は、MVC3とPHPに使用できるようにしたことです。以前のバージョンでは、アクセラレーターを使用するにはスタートアップタスクによる対応が必要でした。多くの人からMVC3とPHPでの使用方法を聞かれたので、デフォルトで組み込むことにしました。MVC3とPHPで使用しない場合は、単純にConfigureIIS.cmd からスタートアップタスクを削除してください。

ログ記録の改善

2つ目の変更は、アクセラレーターのログ記録を改善したことです。トレースメッセージにメッセージを追加したり、メッセージを詳細に記載する改善をしました。この変更は、同期プロセスの理解と障害の解析の助けになります。

image_thumb4

 

同期プロセスのStartとStop

次に追加した機能は、同期プロセスの開始と停止ができるようにしました。通常、Webロールインスタンス上でサイトの更新と設定の変更などを確認するために、同期プロセスは動作をし続けます。このプロセスをあなたが止めたいと思うかもしれない2つの理由があります。

最初の理由は、既知の問題への対応のためです。大きなサイトをデプロイした時、デプロイが終了する前に、同期ツールが実際にサイトの取得を始めます。その為、インスタンス間で矛盾したデプロイになってしまいます。通常、大きなサイトのデプロイが完了した後、同期処理が再同期し整合性を回復します。
しかし、一時的に矛盾が発生する一部分の同期を避けたいと、あなたは考えるかもしれません。この理由に対応するには、大きなサイトをデプロイする時は、デプロイする前に同期を停止し、デプロイ完了後同期を開始することをお勧めします。

2つめの理由は、ストレージ転送量を抑えたい場合です。同期用の初期設定では、15秒ごとにブロブとテーブルストレージを確認します。さらに。同期が発生する度にログメッセージが書き込まれます。このため、1インスタンス1分につき12ストレージトランザクションが発生し、1か月におよそ518,400トランザクションになります。これは多いように思うかもしれませんが、10,000トランザクションにつき$0.01程度の費用であることを思い出してください。
同期にかかる費用は、一か月でたった$0.50です。会社によっては、多くのWindows Azureへのデプロイがあり、費用を抑えたい場合があります。デプロイするまで、同期プロセスを無効にすることで、一か月につき数ドルの費用を抑えることができます。

同期プロセスの開始と停止は、管理ページの上にあるリンク”Disable Sync”をクリックします。同期が無効になっているときは、管理ページの下部に次のようなメッセージが表示されます。

image_thumb5

テストサイトのバインド

次に追加した機能は、DNS変更やホストファイルへの変更を加えることなく簡単にサイトをテストすることができます。以前のリリースでは、mysite.example.comのようにホストヘッダーを使用しないとサイトを見ることができませんでした。今回のリリースでは、mysite.cloudapp.netからサイトをテストすることができるオプションを追加しました。
サイトを見るためにテストサイト機能を有効にするには、<myhost>.cloudapp.net/test/<sitename>とします。サイト設定を編集することで、オプションを有効にすることができます。

image_thumb6

Windows Azure CDNへの対応

テストサイトのバインドと同様に、CDNバインドを追加しました。Web Role AcceleratorサイトでWindows Azure CDN用を使用することができるようになりました。Windows Azure CDNは、<myhost>.cloudapp.net/cdn/からだけコンテンツをリクエストします。その為、バインドを作成するようにしました。<myhost>.cloudapp.net/cdn/<sitename>をバインドし、同じロールにある複数のサイトで動作するようにしました。
Windows Azure CDNへの対応を有効にするには、サイト設定ページで、”Enable CDN”にチェックを入れます。

image_thumb7

Windows Azure

How Microsoft IT Deployed a Customer-Facing Application to Windows Azure in Six Weeksを元ネタに投稿したエントリーです。

Microsoftボリュームライセンスサイトで提供しているOnline Product Use RightsとOnline Service Provider Use RightsツールをWindows Azure上に移行しました。

既存の構成

Figure 1. Online PUR legacy architecture

マイグレーション後の構成

Figure 2. Final Windows Azure architecture for the Online PUR/SPUR tool

SQL Azure

image

TechNet Wikiに公開されていた「How to Manage SQL Azure Servers using Windows PowerShell」をざっくりと意訳して、「Windows PowerShellを使用してSQL Azureを管理する方法(ja-JP)」を公開しました。

PowerShellを使用して、SQL Azureを更新するための手順と、PowerShellのコードが掲載されていましたので、日本語版ページを作成しました。