SQL Azure, Windows Azure

msnnodesql(Microsoft Driver for Node.JS for SQL Server)にはx86とx64の2種類のバージョンが提供されています。
ローカルマシーンとPythonが64ビットで動作している場合、「npm install msnodesql」コマンドで、64ビットバージョンのmsnodesqlをインストールすればいいです。

しかし、Windows Azure Web Sitesではアプリケーションはx86で動作しているので、x86版のmsnodesqlが必要になります。
NPMでx86版をインストールするか、コンパイルバージョンをダウンロードできます。
Windows Azure Web Sitesのすべてのウェブサイトは、すべてIISのx86 WOWモードでホストされています。

情報源

Windows Azure

サブスクリプション名の変更方法

サブスクリプション名はデフォルトだと「Windows Azure MSDN Premium」などのように定型句が使用されます。複数サブスクリプションを管理するのに、すべて同じ名前だと管理しにくいので、サブスクリプション名を変更して見分けられるようにしましょうっというお話。

  1. Windows Azureサブスクリプション契約を結んでいるLive IDで、https://account.windowsazure.com/ にログインします。
  2. [アカウントセンター]をクリックします。
    SNAGHTML3e2ade53
  3. [サブスクリプション]を選択します
  4. サブスクリプション名を変更したいAzureサブスクリプションを選択します。
    SNAGHTML3e2b24b5
  5. 右下のメニューから[サブスクリプション詳細の編集]をクリックします。
    SNAGHTML3e2b8710
  6. サブスクリプション名を変更し、ウィザードを完了させます。
    SNAGHTML3e2d7323

Azure管理ポータルでサブスクリプションのフィルタリングに対応

同じアカウント配下に複数のWindows Azureサブスクリプションを持っている場合、リソースを正しい場所に配置するのが難しくなることがあります。2012年12月に、Windows Azure管理ポータルにサブスクリプションのフィルタリングオプションが提供されるようになりました。

SNAGHTML3e3ad86a

詳細については、Updates to Windows Azure (Mobile, Web Sites, SQL Data Sync, ACS, Media, Store)の「Subscription Filtering Support within the Windows Azure Portal」を参照してください。

もし1つしかサブスクリプションを持っていない場合は、本フィルターによる影響はありません。

すべてのサブスクリプションを選択している場合は、グレーのアイコンになっています。

image

選択していないサブスクリプションがあるときは、アイコンの色が変わっています。

image

情報源

この投稿は、MSDN BlogのWindows Azure Technical Support (WATS) Team Blogに投稿された「How to manage multiple Windows Azure Subscriptions」をざっくり意訳した投稿です。

Windows Azure

phpMyAdminは、WebベースのMySQLデータベースの管理ツールです。
テーブル作成、データの編集、データのエクスポート・インポートなど多くのタスクに使用します。
Windows AzureでMySQLのDB管理をするのに必要なツールだと思います。
Windows Azure Web SitesでphpMyAdminをインストールして設定する方法について説明します。

1. 空のサイトを作成する

最初に、Windows Azureで新しいサイトを作成します。
1サブスクリプションにつき10個まで無料でサイトを作成できるので、phpMyAdminは無料で動作させることができます。
Windows Azureポータル上の[Quick Create]オプションで新しい空のサイトを作成します。

2. MySQLデータベースの接続文字列の取得

すでに用意しているMySQLデータベースを使用するか、MySQLデータベースを作成して、サイト用のデータベースへのリソースページへのリンクを使用します。

サイトのダッシュボードページで、[View conneciton strings]を使用して、データベースの接続文字列を取得します。

phpMyAdmin経由でデータベースにログオンするために接続文字列を使用します。
接続文字列は次のようになります。

Database=some-db-name;Data Source=some-hostname;User Id=some-username;Password=some-password 

3. phpMyAdminのダウンロードと設定

オフィシャルサイトから最新のphpMyAdminを取得します。
ダウンロードしたら、解凍します。
example、js、libraries、setup、themesディレクトリと同じところにconfig.inc.phpファイルが作成されます。
そのファイルに以下の内容を貼り付けます。

<?php 
$cfg[‘blowfish_secret’] = ‘ba17c1ec07d65003’;  // use here a value of your choice 
$i = 0; 
/* First server */ 
$i++; 
/* Authentication type */ 
$cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’; 
/* Server parameters */ 
$cfg[‘Servers’][$i][‘host’] = ‘some-hostname’;  // Replace with value from connection string 
$cfg[‘Servers’][$i][‘connect_type’] = ‘tcp’; 
$cfg[‘Servers’][$i][‘compress’] = false; 
$cfg[‘Servers’][$i][‘extension’] = ‘mysqli’; 
$cfg[‘Servers’][$i][‘AllowNoPassword’] = false; 
?> 

5. Windows AzureにphpMyAdminファイルをアップロードする

複数のアップロード方法が提供されていますが、ここではFTPを使用します。
FTPホスト名とユーザー名を管理ポータルのサイトのダッシュボードから取得し、接続します。
/site/wwwroot/ディレクトリにアップロードします。

6. MySQLデータベースにログオンする

新規に作成されたサイトにブラウザでアクセスします。
接続文字列から、ユーザIDとパスワードを確認してログオンします。

元ネタ

phpMyAdmin on Windows Azure Web Sitesをざっくり意訳した投稿です。

Windows Azure

1. phpinfo()

これがもっともよく使用するツールです。
PHPランタイムにかんする多くの情報を出力してくれます。
有効になっているPHPエクステンションや、サーバー情報やPHPの設定を確認することができます。

phpinfo()を使用するために、次の1行を含むPHPファイルを作成します。

<?php phpinfo(); ?> 

このファイル名は推測しにくいファイル名にしてください。
phpinfo.phpみたいなのは避けてください。
サイトのrootディレクトリにアップロードしてください。Webブラウザにアップロードすると次のようなページが出力されます。

phpinfoから出力される情報はセキュリティ上機敏な情報が含まれています。必要性がなくなったら、削除する用意してください。

2. wincache.php

WinCacheエクステンションは、PHP WebSitesで既定で有効になっています。
オペレーションコードやユーザーキャッシュの動作状況、現在のキャッシュコンテンツを確認するには、winchache source code リポジトリからダウンロードするwinchache.phpスクリプトを使用します。
スクリプトを取得し、ユーザ名とパスワードを編集して利用します。

/**  * ======================== CONFIGURATION SETTINGS ==============================
* If you do not want to use authentication for this page, set USE_AUTHENTICATION to 0.
* If you use authentication then replace the default password.
*/ 
define(‘USE_AUTHENTICATION’, 1); 
define(‘USERNAME’, ‘someusername’); 
define(‘PASSWORD’, ‘somepassword’); 

websitesのルートディレクトリにアップロードし、Webブラウザでアクセスします。
次のような結果が出力されます。

3. PHP エラーログ

Windows AzureのPHPランタイムは、サイトのFTPルートは以下の/LogFilesにアプリケーションエラーログが格納されるように設定されています。

アプリケーションが動作していなかったり、ブランクページを表示する場合、エラーの詳細を確認するために、このファイルを参照してください。また運用時も定期的に確認するようにすると良いです。

デフォルトのエラーログ出力箇所を別の場所に変更することもできます。
.user.iniと呼ばれるファイルを作成し、次の行を追加します。

error_log=D:\Home\site\wwwroot\php_errors.log 

websaitsのルートディレクトリ(wwwroot)配下にファイルをアップロードします。

4. PHP display_errors

PHPランタイムのdisplay_errorsディレクティブは、HTTPレスポンスでえーらーを表示します。
プロダクション環境では、webサイト訪問者にエラーを見せないために、
OFFに設定しておくべきです。
開発、デバッグ目的で一時的に使用する際には、.user.iniファイルに次の内容を記載してください。

display_errors=On 
html_errors=On 
error_reporting = E_ALL 

アプリケーションでエラーがあると、Webブラウザにエラーが出力されます。

5. HTTPログ、詳細エラーメッセージ、失敗リクエストのトレース

デフォルトでは、HTTPロギング、詳細エラーメッセージ失敗リクエストのトレースはオフになっています。有効にするには、Windows AzureポータルでCONFIGUREページを使用します。

有効にすると、サイトのFTPルート配下のディレクトリにログが出力されます。

  • HTTPログファイル:/LogFiles/http/RawLogs;
  • 詳細エラーログ:/LogFiles/DetailedErrors;
  • 失敗リクエストのトレースログ:/LogFiles/W3SVC#########/;

6. XDebug PHP エクステンション

Xdebugは、数多くの有益なデバッグ情報を提供してくれるPHPスクリプトのプロファイリング、デバッグに役立つ、とても有名なPHPエクステンションです。
Windows AzureでXdebugを有効にするあために、ダウンロードページから適切にビルドされたXDebugエクステンションをダウンロードします。PHP 5.3を使用している場合は、「5.3 VC9 (32 bit)」をダウンロードします。PHP 5.4を使用している場合は、「5.4 VC9 (32 bit)」をダウンロードします。Windwos OSno64ビットを使用していても、32ビットでビルドされたものを使用します。
スレッドセーフ(TS)ビルドは使用しないでください。

/site/wwwroot/binディレクトリに、php_xdebug_####.dllファイルをアップロードしてください。
binディレクトリが存在しない場合は作成してください。
xdebugエクステンションを有効にするために、アップロード後Windows AzureポータルのCONFIGUREタブを使用します。

xdebugを有効にすると、詳細なエラーメッセージとコールスタックを取得できるようになります。

7. ClearDBのステータス

MYSQLデータベースのホスティングを提供するClearDBサービスはWindows Azureポータルに統合されています。ポータルからMySQLデータベースの管理と購入ができます。
課金も統合されており、ClearDBの課金はWindows Azureサブスクリプションに含まれています。

ADD-ONSタブを使用して、ClearDB管理ページにアクセスします。

ほかのデータベース管理情報にアクセスするのと同様、ClearDBクエリ情報ページが開きます。

データベースでのクエリの性能情報チャートが表示されます。

参考情報

PHP Troubleshooting in Windows Azure Web Sitesをざっくり抜粋して意訳した投稿です。

Windows Azure

SQL Server 2012 SP1 CU2で、バックアップ先/リストア元のストレージとしてWindows Azureストレージを選択できるようになりました。
T-SQLかSMO(Server Management Objects)で実行できます。

オンプレミスのSQL Server向けの機能強化ですが、Windows Azure VM上のSQL Serverでも使用できます。

前提条件

SQL Server 2012 SP1 CU2をインストールしている必要があります。
ダウンロードは、ここからできます。
当然、Windows Azureのアカウントが必要です。

Windows Azureストレージの作成

Windows Azure blobストレージにデータベースをバックアップするために、Windows Azureストレージアカウントを作成する必要があります。

  1. Windows Azure管理ポータルにログインします。
  2. 管理ポータルの下部の「New」ボタンをクリックします。
  3. リボン上で、[DATA SERVICES]‐[STORAGE]‐[QUICK CREATE]を選択します。
  4. [URL]にストレージアカウントのURLに使用するサブドメイン名を入力します。
    3~24文字の英数字を入力してください。
    [REGION/AFFINITY GROUP]に、地域とアフィニティグループを選択してください。
  5. [CREATE STORAGE ACCOUNT]をクリックします。

コンテナの作成

次にストレージアカウントにコンテナを作成します。
コンテナはblobをグルーピングする一塊です。

  1. 管理ポータルからストレージアカウントを選択します。ストレージアカウントのダッシュボードが開きます。
  2. [CONTAINERS]タブを選択し、コンテナ一覧を表示します。
    ストレージアカウントを作成した直後であれば、コンテナはありません。
    [CREATE A BLOB CONTAINER]か[ADD CONTAINER]ボタンをクリックします。
  3. 新しいBLOBコンテナを作成する画面が開きます。
    NAMEに、コンテナ名を入力します。ACCESSをPrivateに選択し、ボタンをクリックします。

SQL Serverで認証情報を作成する

SQL ServerにWindows Azure ストレージ認証情報を格納するために認証を作成する必要があります。SQL Server Manaement Studioを使用してSQL Serverに接続し、新しいクエリウィンドウを開きます。
次のT-SQLで、Windows Azureストレージ認証用の認証情報を作成します。

CREATE CREDENTIAL mycredential
WITH IDENTITY = ‘mystorageaccount’,SECRET = ‘<storage access key>’;

Windows Azure管理ポータルに戻り、ストレージのDASHBOARDで[MANAGE KEYS]ボタンをクリックします。

Manage Access Keysウィンドウが開きます。

ストレージアカウントの名前をコピーし、T-SQLの「mystorageaccount」部分に貼り付けます。[PRIMARY ACCESS KEY]か[SECONDARY ACCESS KEY]をコピーし、「Storage Access Key」部分に貼り付けます。

T-SQLを実行します。
「mycredential」認証の作成に成功したら、次のクエリで情報を確認することができます。

データベースのバックアップ

認証を作成した後、認証情報を使用してWindows Azure Blobストレージにデータベースをバックアップすることができます。次の例は、AdventureWorks2012データベースをWindows Azure Blobストレージサービスにバックアップしています。

BACKUP DATABASE AdventureWorks2012
TO URL = ‘https://pfestorageaccount.blob.core.windows.net/sqlbackup/AdventureWorks2012.bak’
WITH CREDENTIAL = ‘mycredential’
,STATS = 5;
GO

サードパーティのWindows Azureストレージの管理ツールで、バックアップファイルを確認することができます。

データベースのリストア

次のクエリでデータベースをリストアすることができます。

RESTORE DATABASE AdventureWorks2012
FROM URL = ‘https://pfestorageaccount.blob.core.windows.net/sqlbackup/AdventureWorks2012.bak’
WITH CREDENTIAL = ‘mycredential’
,STATS = 5;
GO

参考情報

詳細な情報が、MSDNライブラリで提供されています。
このチュートリアルを参照してください。

この投稿は、MSDNブログの韓国プレミアムフィールドエンジニブログに投稿された「How to backup and restore user database from SQL server to Windows Azure blob storage.」をざっくり違約した投稿です。