Windows Azure Companion for PHP: Common Errorsを簡単に紹介する投稿です。
Windows Azure Companion for PHPは、Windows Azure上にPHPベースのアプリケーションを数クリックで配置できる便利なソリューションです。Windows Azure Companion for PHPを使用していると遭遇する可能性があるエラーと原因について説明します。
SQL Azure と Cosmos DB をメインにWindows Azureの情報を発信
Windows Azure Companion for PHP: Common Errorsを簡単に紹介する投稿です。
Windows Azure Companion for PHPは、Windows Azure上にPHPベースのアプリケーションを数クリックで配置できる便利なソリューションです。Windows Azure Companion for PHPを使用していると遭遇する可能性があるエラーと原因について説明します。
Windows Azure Companionのソースが、ダウンロードできます。WindowsAzure Companion
の概要は、「ここ」で紹介しています。この投稿では、ソースコードから5箇所取り上げて、説明します。ソリューションアーキテクチャーを理解するのに重要な5箇所です。簡単な機能拡張をしたいときに、触る可能性がある箇所です。
1. Azure Companion 管理アプリケーション:
WorkerRole\WorkerRole.cs
// Start ASP .NET Admin WebSite
private void StartAdminWebSite()
2. Web CoreでPHPを実行する:
VMManagerService\WindowsAzureVMManager.cs
public static string HWCForPHPProcessName = "HWCForPHP.exe";
VMManagerService\WindowsAzureVMManager.cs
// setting the file name and arguments
hwcServerProcess.StartInfo.FileName = Path.Combine(approot,
WindowsAzureVMManager.HWCForPHPProcessName);
hwcServerProcess.StartInfo.Arguments =
Path.Combine(configPath, "php_applicationHost.config") + " "
+ Path.Combine(configPath, "php_web.config");
hwcServerProcess.Start();
// Start the asynchronous read of the output stream.
hwcServerProcess.BeginOutputReadLine();
Trace.TraceInformation("Started Hosted Web Core Server for PHP Applications
on port {0}", endpoint.Port.ToString());
3. RAM パフォーマンスカウンター:
WorkerRole\WorkerRole.cs
// Add performance counter monitoring
cfg.PerformanceCounters.DataSources.Add(
new PerformanceCounterConfiguration()
{
CounterSpecifier = @"\Processor(_Total)\% Processor Time",
SampleRate = timeSpan
});
cfg.PerformanceCounters.DataSources.Add(
new PerformanceCounterConfiguration()
{
CounterSpecifier = @"\Memory\Available Mbytes",
SampleRate = timeSpan
});
cfg.PerformanceCounters.ScheduledTransferPeriod = timeSpan;
4. Cloud Driveを作成し、 backup.vhd をマウントする:
VMManagerService\WindowsAzureVMManager.cs
// Get Windows Azure Drive container and blob names from service configuration file
string xdriveContainerName = RoleEnvironment.GetConfigurationSettingValue("PHPApplicationsBackupContainerName");
string xdriveBlobName = RoleEnvironment.GetConfigurationSettingValue("XDrivePageBlobName");
5. Cloud Drive の名前とサイズなどの設定:
ServiceConfiguration.cscfg
<!– Settings for Windows Azure Drive used for durability –>
<Setting name="PHPApplicationsBackupContainerName" value="phpapps" />
<Setting name="InstallationStatusConfigFileBlob" value="status.xml" />
<Setting name="ProgressInformationFileBlob" value="progress.xml" />
<Setting name="XDrivePageBlobName" value="backup.vhd" />
<Setting name="XDriveSizeInMB" value="2000" />
Service Update 5 Released to Productionを簡単に紹介。
SQL AzureのService Update 5が全世界のすべてのデータセンターにリリースしました。
今回のリリースでは、将来的な機能追加を可能にするために内部オペレーションの改善に注力しました。
今回の更新の1つで、sp_tablepointシステムストアドプロシージャの提供を開始しました。
詳細は、sp_tableoption (SQL Azure Database)を参照してください。
更新に合わせて、以下のMSDNドキュメントを追加、修正しました。
Hints:Supported Transact-SQL Statements (SQL Azure Database)に新たにHintsに関する情報を追加しました。
Error Messages:Error Messages (SQL Azure Database)に、エラーを絞り込み解決するための情報を追加しました。
詳細は、Error Messages (SQL Azure Database)を参照してください。
Microsoft Sync Framework 2.1:Migrating Databases to SQL AzureにMicrosoft Sync Framework 2.1のサポートについて説明を追加しました。
SQL Azureで提供されている2つの動的管理ビュー(sys.database_usage と sys.bandwidth_usage)を使用して、アカウントの稼働状況を確認することができます。
参考値として利用し、実際の課金額は別途オンラインポータルで確認してください。
次のクエリは、今月、自分のサーバにある全てのデータベース使用料を表示します。
SELECT SKU as "種類",
SUM ( CASE WHEN USAGE.SKU = ‘Web’
THEN (Quantity * 979.02/31)
WHEN USAGE.SKU = ‘Business’
THEN (Quantity * 9799.02/31)
END ) AS "費用(円)"
FROM sys.Database_Usage USAGE
WHERE datepart(yy, TIME) = datepart(yy, GetUTCDate())
AND datepart(mm, TIME) = datepart(mm, GetUTCDate())
GROUP BY SKU
Master DBに接続している時に、上のクエリを実行することができます。実行結果は以下のようになります。
SQL Azureの使用量は、ストレージ使用料だけでなく、データの転送量にも課金されます。
SELECT USAGE.Time_Period as "オン/オフピーク",
USAGE.Direction as "送受信",
CASE WHEN USAGE.Direction = ‘Egress’
THEN 14.70 * USAGE.BandwidthInKB/(1024*1024)
WHEN USAGE.DIRECTION = ‘Ingress’
THEN 9.80 * USAGE.BandwidthInKB/(1024*1024)
END AS "費用(円)"
FROM (
SELECT Time_Period,
Direction,
SUM(Quantity) AS BandwidthInKB
FROM sys.Bandwidth_Usage
WHERE datepart(yy, TIME) = datepart(yy, GetUTCDate())
AND datepart(mm, TIME) = datepart(mm, GetUTCDate())
AND class = ‘External’
GROUP BY Time_Period, Direction
) AS USAGE
この投稿は、Billing Numbers Directly From Transact-SQL – TechNet Articles – Home – TechNet Wikiを意訳したものです。
「Windows Azure Companion: PHP and WordPress in Azure」にて、Webプラットフォーム インストーラー(Web PI)のクラウド版とも言えるWindows Azure CompanionのCTP版のリリースが紹介されていました。
Windows Azure Companionとは、自分のAzureアカウントにインストールすることで、Azure上でwebサイトの準備を行えるお手軽インストーラーです。イメージ的には、Web PIのAzure版です。
Windows Azure Companionを使用することで、PHPを導入し、OSSのWordPress、Drupal、JoomlaなどをWindows Azure Companionを動作させているAzureインスタンス(Worker Role)と同じ場所に直接インストールできます。
すでにPHP、MYSQL、Javaなどマイクロソフト製では無いフレームワークやWindows Azreアプリケーションを動作させていたり、ユーザを助けるためのPHP/MySQL、Tomcat、memcachedなどのアクセラレーターが提供されています。
Windows Azure Companionは、一歩先に進み、Azure上でアプリケーションやフレームワークを管理したり、動作させる為の管理作業をシングルポイントで提供します。現時点では、PHPベースの有名なWordPressやDrupalのようなCMSライクなアプリケーションに集中していますが、将来的には、その他のプラットフォームにも対応していきます。