浅草橋青空市場

Microsoft Azure のニュースや情報を中心にあれこれと

App Service 向けに、URL単位での認証機能がプレビュー

App Service 向けに、URL単位での認証機能がプレビューで提供され始めました。

▼URL Authorization Rules in App Service

https://azure.microsoft.com/en-us/updates/url-authorization-rules-in-app-service/

Web Apps の認証機能を設定した上で、authorization.json か authorization.yaml に認証ルールを記述しておくことで、たとえば特定ディレクトリだけ認証をかけたい、といったこともアプリ側の修正無しで実現できます。 web.config も書き換えずにすむので楽ですね。

詳しいやり方はこちら。 /admin に対して、未認証の場合はログインページにリダイレクトする、というルールをjsonに書いてドキュメントルートに置くだけ。

blogs.msdn.microsoft.com

Azure仮想マシンのシングルインスタンスSLAが提供開始

ついに、シングル構成の仮想マシンでもSLAが提供されるようになりましたね。 アタッチされているディスクが全てPremium Storageであることが条件です。可用性セットの内外は問わず。

複数インスタンスSLAは99.95%(約22分)、シングル構成だと99.9%(約45分)ということで、やはり少し落ちますがありがたいですね。

SLA for Virtual Machines

https://azure.microsoft.com/en-us/support/legal/sla/virtual-machines/v1_3/

アナウンスはこちら。HANAとかHUBと混ざってますが。

azure.microsoft.com

HANAの方は、新たに最大4TBメモリのインスタンスが登場したとのこと。 HUBの方は、HUB用のイメージがあらかじめ用意されたということですね。

AzureAD Domain Services がGA

AzureAD Domain Services がようやくGAしましたね。

▼#AzureAD Domain Services is now GA! Lift and shift to the cloud just got WAY easier! – Enterprise Mobility and Security Blog blogs.technet.microsoft.com

プレビューから比べて

  • カスタムOUをサポート
  • ドメイン用のDNSをマネージドで提供
  • Domain join for Linux

といったあたりが大きな変更点でしょうか。だいぶ実用的になりましたね。

ただ、残念ながらまだクラシックポータルからの管理になるようです。

GAしたのでSLAも適用(99.9%)、価格は12月からGA料金になるようです。まだリージョンが限定されていて、アジア圏では

  • 東南アジア
  • 東アジア
  • オーストラリア東部
  • オーストラリア南東部

ということで、日本はまだでした(残念)。

SLA https://azure.microsoft.com/ja-jp/support/legal/sla/active-directory-ds/v1_0/

▼価格 https://azure.microsoft.com/ja-jp/pricing/details/active-directory-ds/

▼リージョン https://azure.microsoft.com/ja-jp/regions/services/

Visual Studio CodeのMarkdownプレビューをカスタマイズする

(追記有り: 2016/10/20)

そろそろWindows環境でも文章を書く環境を整えようと思ったのですが、Markdownが快適に書ければ十分かなということでVisual Studio Codeに落ち着きました。
標準でMarkdownのプレビューに対応しているのがありがたいですね。ファイルの拡張子を.mdとすると、プレビューボタンが押せるようになります。
http://changesworlds.com/2015/05/how-to-use-the-visual-studio-code-as-markdown-editor/

標準状態だと見た目がちょっと寂しいので、こちらのブログを参考にしながらCSSのフォント周りを少し修正します。
http://kiyokura.hateblo.jp/entry/2016/04/20/150648

markdown.css の置き場所が変わっているようで、手元のバージョン(1.5.3)ではここに置いてありました。
C:\Program Files (x86)\Microsoft VS Code\resources\app\extensions\markdown\media

これを %USERPROFILE%\.vscode にコピーして以下のあたりを書き換えました。

body {
    font-family: "Meiryo";
    font-size: 18px;
    padding-left: 12px;
    line-height: 24px;
}

code {
    font-family: "Source Han Code JP";
    font-size: 16px;
    line-height: 19px;
}

最後に Preference -> User Settings から "markdown.styles" にmarkdown.cssのパスを指定しておしまいです。

(おまけ1: MarkdownからWordファイルを出力する)

こちらもありがたいことに先人の知恵がありました。
http://qiita.com/tsujimitsu/items/907d7a2fae2057d0fb1f

全ユーザー向けにインストールすれば特にパスを通す必要もなく、こんな感じで使えました。
pandoc input.md -o output.docx

いくつかのファイルで試してみたところ、書式が厳しめに判定されるようですね。

(おまけ2: キーバインドのカスタマイズ)

メニューから「File -> Preferences -> Keyboard Shortcuts」と選択して、keybindings.json に書き換えたいキーバインドを書き込んでいくだけです。
とりあえずカーソルまわりを快適にしたかったので、デフォルト定義からカーソルの上下左右、行頭、行末の移動とBackspace、Deleteあたりをコピーしてきて一段落。

ということで、こんな感じの keybindings.json になりました。

[
// カーソルを右に
{ "key": "ctrl+f",
  "command": "cursorRight",
  "when": "editorTextFocus && !editorReadonly" },
// カーソルを左に
{ "key": "ctrl+b",
  "command": "cursorLeft",
  "when": "editorTextFocus" },
// カーソルを上に
{ "key": "ctrl+p",
  "command": "cursorUp",
  "when": "editorTextFocus" },
// カーソルを下に
{ "key": "ctrl+n",
  "command": "cursorDown",
  "when": "editorTextFocus" },
// カーソルを行頭に
{ "key": "ctrl+a",
  "command": "cursorHome",
  "when": "editorTextFocus && !editorReadonly" },
// カーソルを行末に
{ "key": "ctrl+e",
  "command": "cursorEnd",
  "when": "editorTextFocus" },
// Backspace
{ "key": "ctrl+h",
  "command": "deleteLeft",
  "when": "editorTextFocus && !editorReadonly" },
// Delete
{ "key": "ctrl+d",
  "command": "deleteRight",
  "when": "editorTextFocus && !editorReadonly" }
]

(追記: 2016/10/20)

表を作るときにとても便利そうなツールがリリースされていました。

www.nuits.jp

Ignite 2016 で発表されたAzureネタの個人的なまとめ

Igniteで大量のアップデートがあったようですね。個人的に気になった発表を、このあたりのURLからいくつか抜粋してみました。

▼Cloud innovations empowering IT for business transformation | Blog | Microsoft Azure
https://azure.microsoft.com/en-us/blog/cloud-innovations-empowering-it-for-business-transformation/

仮想マシン関連のアップデート

  • 新しいインスタンスシリーズが登場しましたね(H、L)
    • HはHPC向けインスタンス、高速なCPUと高速なI/O。現時点で利用可能です。
    • Lは大きなローカルストレージを搭載(とはいえ揮発するのでは?)。間もなく登場とのこと。
  • Nシリーズ(GPUインスタンス)も申請無しで選べるようなのでパブリックプレビューということでしょうか。
  • SAP HANA on AzureがGAしたそうです。
    • 単一インスタンスでメモリ3TB。他の用途でも使いたいのですがHANA専用のようですね。
  • Azure Disk Encryption がLinux向け、Premium Storage向けにもGAしました。
  • 1つのNICに複数のIPアドレス(パブリック、プライベートとも)を割り当てられるようになりました。
  • 複数NICの接続についても、パブリックIPアドレスが割り当てられる等の向上があったようです。
  • 「Accelerated Networking」としてVM向けのネットワーク高速化が進められているようです。
    • まずは一部リージョンのD15v2、DS15v2から。
    • SR-IOV対応ドライバ組み込み済みのVMをデプロイする形なので、事前準備が必要です。
    • これに伴い、VMディスクのパフォーマンスも向上するようです。

ネットワーク関連のアップデート

  • Azure DNSがGAしました。SLA99.99%。Route53のためだけにAWSを使う必要はなくなりそうです。
  • 内部ロードバランサーに複数のIPアドレスを割り当てられるようになりました(確か外部LBは以前から)。
  • VNet PeeringがGAし、料金も設定されました(1.02円/GB、送受信とも)。
  • VPN Gatewayがアクティブ-アクティブ構成をサポートしました。
    • VNet間、VNet-オンプレミス間のどちらでも構成できるようです。
    • 可用性のためだけにExpressRouteを敷く必要は無くなりそうですね(要High Performance SKUっぽいのでそれなりに値が張りますが)。

セキュリティ関連

  • Application GatewayにWAF機能が追加されたようです。
    • OWASP Top10 あたりの主要な脆弱性を対象にして、検出のみかブロックかを選べるようです。
    • カスタムルールは今後対応とのこと。
    • AWS WAFはCloudFront統合なんですが、AzureはL7LBに乗せてきましたね。
  • Security Centerにいろいろと機能追加されたようです。
    • パートナーのセキュリティソリューション(WAFや脆弱性診断など)がポータル上から導入できるようになったとのこと。
    • ストレージアカウントに対するセキュリティ診断機能が導入されるようです。
    • 他にも、レポート系の機能がいろいろと強化されつつあるようですね。

Igniteのセッションをオンデマンドで見られます。

  • MyIgnite - On Demand

「App Service On Linux」がプレビューで提供され始めたようですね

「App Service On Linux」がプレビューで提供され始めたようですね。 …と思ったら、当初のドキュメントが消えていてGitHubにも見あたらなかったので、マーケットプレイスのリンクを貼っておきます。 (で、こっちはこっちで名称が「Web App On Linux」と微妙に違ってますね)

▼Web App On Linux on Microsoft Azure Marketplace

azure.microsoft.com

どういう状態か気になるところですが、マーケットプレイスのリンクから、もしくはポータル内で検索することでサービスの作成はできました。 Kuduも動いていて、Environmentを除くと結構面白いですね。 Debug console ではbashが動きます。 というところでお約束のコマンド実行結果。特に面白みのない結果(と言う状況自体が面白いのですが)。

/home>uname -a
Linux f12e154155a0 4.4.0-38-generic #57-Ubuntu SMP Tue Sep 6 15:42:33 UTC 2016 x86_64 GNU/Linux
/home>cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

apacheの設定ファイル等は /etc/apache2 以下に置いてありました。 このあたりも標準的な感じになっていて扱いやすそうですね。

当初はデフォルトドキュメントも無くディレクトリが見える状態だったようですが、いまデプロイしたらいつものが設定されるようになっていました。エラーページも同様のようでした。 f:id:yhara90:20161010011351p:plain

Azure VMのMACアドレスが固定化されるようになってました

各方面で「待望の」とつぶやかれているとおり、みんな待ち望んでいたMACアドレス固定化が実現されたようです。

blogs.technet.microsoft.com

completed
How can we improve Azure Virtual Machines?
  • 625 votes
  • 44 comments

Static MAC address

We need static MAC addresses on the vm's network cards due to the licensing model of the software we need to install.

We cant obtain new licenses every time the MAC address changes.

Having the ability to change the address back to the original might also work for us

feedback.azure.com

というわけで、どこまでちゃんと固定化されるのか試してみました。

まずは元のVMでifconfig。

$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0D:3A:40:92:37

VMをSTOP->STARTします。

Stop-AzureRmVM -Name [VM名] -ResourceGroupName [リソースグループ名]
Start-AzureRmVM -Name [VM名] -ResourceGroupName [リソースグループ名]
$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0D:3A:40:92:37

ちゃんと維持されていますね。

次にVMを再デプロイしてみましょう。ポータルからポチッと「再デプロイ」です。

$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0D:3A:40:92:37

VM(だけ)を削除したうえで同じVHDから再度生成、元のNICを割り当ててみます。

$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0D:3A:40:92:37

これでも維持されます。

駄目だとは思いますが、新しいNICを作って付け替えてみましょう。

$vm = Get-AzureRmVM -ResourceGroupName '[リソースグループ名]' -Name '[VM名]'
$nic_1 = Get-AzureRmNetworkInterface -ResourceGroupName '[リソースグループ名]' -Name '[NIC名(取り外す方)]'
$nic_2 = Get-AzureRmNetworkInterface -ResourceGroupName '[リソースグループ名]' -Name '[NIC名(取り付ける方)]'

$vm = Remove-AzureRmVMNetworkInterface -NetworkInterfaceIDs $nic_1.id -VM $vm
$vm = Add-AzureRmVMNetworkInterface -Id $nic_2.id -VM $vm
Update-AzureRmVM -ResourceGroupName '[リソースグループ名]' -VM $vm
$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0D:3A:40:9C:E1

当然ですが変わりますね。

元のNICに戻してみます。

$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0D:3A:40:92:37

ちゃんともとのMACアドレスが維持されています。

ということで、ごく普通の感覚でNICを取り扱っても大丈夫そうです。

(追記: Windows でもやってみました) ゴーストNICができなくなるということで改めて確認してみました。

元のMACアドレスf:id:yhara90:20160805174946p:plain

STOP/START後のMACアドレス。維持されてますね。 f:id:yhara90:20160805174949p:plain

ゴーストNICありません。 f:id:yhara90:20160805174952p:plain