MNP7月分収支

MPN(Microsoft Partner Network)のAzure使用量と料金の7月版です。

Azure7月使用料

仮想マシン系(IPアドレスやデータ転送含む) ¥9492
ストレージ系(データ転送含む) ¥1235
合計 ¥10727

仮想マシンの使用量をさらに先月よりも増やし、全体で93.3%となりました。
95%ぐらいまでを目標にしたいと思います。

Azure VMをUbuntuからRHELに代えたら色々ハマった

セキュリティを強化しようということでAzure VMのLinuxのディストリビューションをUbuntuからRedHad Enterprize Linuxに代えた時に、セキュリティ周りで色々と違っていたのでハマりました。SELinuxをONにする前提です。

ハマった点は以下の2点です。

  1. 開放するポート
  2. sudo時のパス設定

1. 開放するポート

Azureのポータル等でNSG(Network Securiy Group)の設定を行い、受信するポートの許可設定を行うのですが、RHELの場合、マシン内部のファイアウォール設定も行わないとポートを開放したことになりませんでした。
firewalldのサービスを使ってポートを開放する必要があります。

2. sudo時のパス設定

sudoした時のパス設定に/usr/local/binが含まれていなかったため、docker-composeを使う前提のインストールスクリプトが途中で失敗していました。docker-composeの手動インストールは/usl/local/binに行う人が多いようです。そのため、sudo docker-composeというコマンドのパスが見つからないエラーになります。

MNP6月分収支

MPN(Microsoft Partner Network)のAzure使用量と料金の6月版です。

Azure6月使用料

仮想マシン系(IPアドレスやデータ転送含む) ¥8240
ストレージ系(データ転送含む) ¥1282
Azure Databricks系(仮想マシン含む) ¥132
Azure Data Lake系 ¥6
HDInsight系 ¥62
合計 ¥9722

仮想マシンの使用量を先月よりも増やしましたが、全体で84.5%とまだ行けそうです。
分析系を扱っていたので、それ系統の料金がかかりました。金額だけ見ると安く見えますが、1時間程度動かしてすぐに消去しているだけです。
本番で使う際にはきちんと考えた方がよさそうです。

Azure DatabricksのデータソースでAzure SQL Databaseに接続できない(Python)

Azure DatabricksのJDBCドライバを使ってAzure SQL Databaseにデータを保存したかったのですが、失敗してしばらく悩みました。Scala版はうまくいくのですが、Python版で失敗します。

これは結論から言うと、サンプルが間違っていたからでした。正しいコードを記述するとうまく接続できました。

具体的には

https://docs.azuredatabricks.net/spark/latest/data-sources/sql-databases.html

のPython Exampleの説明に従い、URLを以下のように定義していました。

jdbcUrl = "jdbc:sqlserver://{0}:{1}/{2}".format(jdbcHostname, jdbcPort, jdbcDatabase)
connectionProperties = {
  "user" : jdbcUsername,
  "password" : jdbcPassword,
  "driver" : "com.microsoft.sqlserver.jdbc.SQLServerDriver"
}

しかし、上記だとPort番号がおかしいと言うエラーになります。

正しくは、

jdbcUrl = "jdbc:sqlserver://{0};{1};database:{2}".format(jdbcHostname, jdbcPort, jdbcDatabase)
connectionProperties = {
  "user" : jdbcUsername,
  "password" : jdbcPassword,
  "driver" : "com.microsoft.sqlserver.jdbc.SQLServerDriver"
}

とすべきです。

これできちんとSQL Databaseに読み書きができました。

Azure Web Appの診断ログのエクスポート先が同じリージョンのストレージしか選べない

タイトル通りです。

複数あるWeb Appのログを同一のストレージBlobに出したかったのですが、特定のWeb Appのみ出力先のストレージが表示されませんでした。何故かと思い、きちんと表示されているものと見比べると、作成されたリージョンが違っていました。どうやらWeb Appは自身と同じリージョンにしかエクスポートできないみたいでした。

Web App自体のリージョンを動かせない仕様だったので、出力先も分散させることにしました。

Application Insightsなどは出力先のリージョン自体を選択できるので、それと同じようになってほしいと思います。

Azure Databricksを使おうとしてvCPUのクォータに引っかかる

MPNのサブスクリプションでAzure Databricksを試そうとしたらデフォルト設定でvCPUのコア数が足りなかったという話です。

データ分析プラットフォームの調査をしていて、HDInsightやData Lake AnalyticisとともにAzure Databricksを試そうとしました。HDInsightとAzure Databricksは動作基盤が仮想マシンなので、作成時にインスタンスを用意する必要があります。

HDInsightはHDInsight用の60コア分の確保領域?のようなものが用意されていたのですが、Azure Databricksは通常の仮想マシンと共用になっていました。

MPN自体はデフォルトで一つのリージョン当たり、10コアまでしか用意されておらず、Databricksを3台(12コア)で動かそうとしたらコア数が足りず、作成時にエラーになってしまいました。一応、最低条件では2台(8コア)で動かすことはできるのですが、それだと並列動作をさせることが出来ないので、サポートに頼んでコア数を増やしてもらい、動作させることが出来ました。

サポートは当日中に対応してくれたのでありがたかったです。

MNP5月分収支

Azureでは毎月の使用量と料金を明細としてダウンロードできるので、MPN(Microsoft Partner Network)で使用した分について大雑把にまとめてみました。

Azure5月使用料

仮想マシン系(IPアドレスやデータ転送含む) ¥7849
ストレージ系(データ転送含む) ¥956
Key Vault ¥0
合計 ¥8758

仮想マシンとストレージは2台で、A4やF8と言った通常のデスクトップ物理マシンに近いクラスにしていました。クレジット限界である¥11500を超えないようにちょくちょく電源をOFFにしていましが、全体としては76%程度の使用なので、もう少し使っていても良かったです。

ストレージやデータベースは一度作ってしまうと中々消せないので、固定費として考えた方がいいかもしれません。

Azure Event HubsのREST API送信でハマった

AzureのEvent HubsはHTTPSとAQMPのどちらかで入力を受け付けているのですが、HTTPSの使い方でハマりました。

Event Hubsとエンティティ(インスタンス)を扱う上で、URIと共有アクセスキーが作成できるのですが、HTTPS経由で使う場合にはSASトークンが必要になります。最初、共有アクセスキー自体がSASトークンなのだろうと思って

‘SharedAccessSignature sr=<URI>&sig=<共有アクセスキー>&se=<期限>&skn=<共有アクセスキーの名前>’

のように入れていました。何度やってもエラーになっていました。

正しくはここにあるようにあらかじめ自分でトークンを作成し、そのトークンを挿入して

‘SharedAccessSignature sr=<URI>&sig=<作成したトークン>&se=<期限>&skn=<共有アクセスキーの名前>`

のようにする必要がありました。

ハマったというよりは、使い方をよく理解していなかっただけなのでMS側には全く非がないのですが、数時間無駄に費やしてしまいました。

MPNアクションパックのAzureサブスクリプションの使用制限

MPNのAzureサブスクリプションを使って仮想マシンを立ち上げようとしたらリージョンや種類に制限がありました。

ここだけ見ても当然ながら全然分からないので、試していくしかなさそうえです。

少なくとも仮想マシンのリージョンに関してはサポートされているのが

  • 米国東部
  • 米国中南部
  • ヨーロッパ西部
  • 東南アジア
  • 米国西部2

のみで、なんだかサービス初期の頃のようでした。

あくまでもデモ用のサブスクリプションなのでしょう。

Microsoftパートナーネットワークのアクションパックに参加した

MPN(Microsoftパートナーネットワーク)のアクションパックを申し込み、使えるようになりました。

44,000円プラス消費税なので決して安い買い物ではありませんが、特典にあるMicrosoft Azure月額11,500円のクレジットに魅力を感じました。

パートナーメンバーシップセンターのサイトから申し込みを行うと、請求書がダウンロードできるようになります。この時点で支払いを行えばすぐに承認されるのですが、念のため紙の請求書が送られるのを待ちました。

相変わらず完了メールなどが一切来ないので、使えるようになったのか確認しにくいのですが、サイト上の「ご注文とライセンスキー」の「ライセンスキーの表示」で以下のように表示されており、完了していることが分かります。

早速Azureのクレジットを有効化しました。

Azureポータルからも確認できました。