読者です 読者をやめる 読者になる 読者になる

しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

Surface Pro 4 が価格改定で安くなっていたので買ってみた

Windows

今日、突然の価格改定で Surface Pro 4 がかなり安くなりました。SKU によって異なってますが 1.3 万から 7.8 万の値引きはかなりインパクトのあるものでした。

型落ち寸前とはいえ Skylake で NVMe な SSD なので、普段使いには十分のはずです。

運悪くツイートを見てしまったので、蛎殻町を抜け出してアキヨドに実物を見に行きました。

15 分後、蛎殻町に戻った時には Surface Pro 4 の Core i5 / 256GB / 8GB *1のモデルを手にしていました。このモデルは 3 万ほど値下げされていたので 14 万ちょいです。

f:id:shiba-yan:20170116164124j:plain

とりあえずセットアップを終わらせて、Windows Hello がやはり最高と思ったりしてました。手持ちの MacBook Pro も全て Windows Hello 対応にしてあります。

f:id:shiba-yan:20170116234434p:plain:w600

ふと、流石に 1 年前とは異なるハードにアップデートされているのでは、と思ったので SSD のパフォーマンスだけ調べました。これまでの SSD の速度はいろんなメディアに上がっていました。

Write が遅いのが特徴のようですが、今日買ったモデルは明らかに Write のパフォーマンスが向上していました。メーカはこれまでとは異なり東芝製が使われていました。

f:id:shiba-yan:20170116175201p:plain:w450

後期型になるとちょいちょいとアップデートされているみたいなので、少し得した気分です。Surface Pro 5 が出たとしても、あまり変化は無いと思うので良い買い物をしたと思ってます。

この Surface Pro 4 には主にゲームを入れていく予定です。ピンボールとか。

*1:一般的には 1 かずあきと呼ばれる容量

App Service on Linux 向けに独自の Runtime Stack を作成する

Azure Web Apps

前に書いた /home のマウントがカスタムイメージの時だけ狂うバグが修正されたようです。ちゃんとコンテナ内の /home がファイルサーバー上の正しいパスにマウントされるようになりました。

バグでカスタムランタイムが作りにくいと書いてましたが、Built-in と同じように作れるようになりました。

早速 Built-in の PHP 7 と同じように扱える nginx + php7 な Runtime Stack を作成しました。ビルドに必要なファイルは全て GitHub で公開しています。

これまでブログに書いてきたように nginx と php-fpm を supervisor で実行する形です。

Docker Hub に shibayan/appsvc-php7-nginx という名前でイメージを公開しているので、App Service on Linux の設定から指定すると使えます。

f:id:shiba-yan:20170116005902p:plain

このイメージで新しく Web App on Linux を作成すると、デフォルトで作成されている hostingstart.html が表示されています。作成したイメージから /home がちゃんと見えていることが分かります。

f:id:shiba-yan:20170116011250p:plain

とりあえず phpinfo を表示してみます。Web App に LocalGit を追加して index.php を追加します。

f:id:shiba-yan:20170116011639p:plain

デプロイ完了後、リロードすると phpinfo が表示されるようになります。Server API が FPM/FastCGI なので、Apache が使われている Built-in のイメージとは異なっていることが分かります。

f:id:shiba-yan:20170116011713p:plain

/home/site/wwwroot にあるコンテンツを共有するので、これまでの Web App と全く同じように Git を使ったデプロイを使いつつ、独自の Runtime Stack を用意して実行することが出来るようになりました。

環境の構築は Docker Image を使うのがかなり楽なので、必要な PHP の extensions などがあればデフォルトのイメージをベースにすると、カスタマイズが簡単に出来ます。

Built-in イメージを使って拡張する

App Service on Linux で使われているイメージは Docker Hub で公開されています。

https://hub.docker.com/u/appsvc/

PHP 7 のイメージに対してカスタマイズしたい場合には、FROM に指定してビルドすれば問題ないです。

FROM appsvc/php-7.0

# 何かする

イメージを作成してしまえば、Docker Hub などに公開すれば App Service で使えるようになります。

Runtime Stack の作り方

完全に真っ新な状態から独自の Runtime Stack を作成する場合、基本的には wwwroot をドキュメントルートとして扱うように Dockerfile を書くだけです。nginx の場合は以下のように書いています。

RUN rm -rf /var/www/html \
    && ln -s /home/site/wwwroot /var/www/html

EXPOSE 80

nginx の設定で /var/www/html をドキュメントルートにして、実体は共有されている wwwroot のシンボリックリンクとしています。ポートはデフォルトでは 80 になっているので、EXPOSE しておきます。

ログは /home/LogFiles 以下に書き出すようにすれば永続化されます。割とシンプルに実装できます。

Windows の場合は Site Extensions を使って無理やりランタイムをインストールしていましたが、Docker を使う方が筋が良いですね。Windows Server Containers 対応を待ってます。

2017 年 4 月から Azure Web Apps の SSL/TLS 暗号スイートから 3DES が削除されます

Azure Web Apps

久し振りに英語の MSDN Forums を見ると、当該のアナウンスを発見しました。メールでも通知が飛んでいるらしいですが、自分のサブスクリプションにはメールが届いていなかったです。

Currently, Azure Web Apps supports 3DES cipher, for TLS/SSL although it is prioritized at the bottom of the list. The new cipher suite order will remove the 3DES cipher and will look like the following:

We are updating our TLS/SSL cipher suites to improve security

Web Apps と書きましたが、それ以外の Mobile Apps や Azure Functions もバックエンドは Web Apps なので影響を受けるものだと思っています。

やっと 3DES が暗号スイートから削除されるらしいです。2 年ほど前にも 3DES と RC4 が削除されるという話がありましたが、何故か結果としては 3DES だけ残っていました。

以前に RC4 が削除された時と同じように、テストサイトが公開されています。今回のアップデートでの影響が心配な方は、予め確認しておいた方がいいかもしれません。基本は問題ないと思いますが。

https://appsvcssl.trafficmanager.net

実際のアップデートは 4/3 から 4 週間かけて行われるみたいです。

今更 3DES しか使えない環境はありえないという感じですが、3DES が削除されることで影響の出るユーザーは Windows XP で IE8 を使っている場合だけのようです。

f:id:shiba-yan:20170114200731p:plain

サポートが切れた OS でインターネットにアクセスしている時点でセキュアではないです。

App Service と暗号スイートの絡みで調べていたら、App Service Environment では TLS 1.0 を無効化したり、暗号スイートの順序が変更できるようになっていることを知りました。

例によってポータルから変更できるようなものではなく、Azure Resource Explorer を使って直接クラスタ設定を書いていく形になるようですが、エンプラ系では使いどころがありそうですね。

ちなみに PCI DSS 的には TLS 1.0 を落としておかないといけないのは初めて知りました。