ほげぐらまの別館

プログラムに限らずてきとーに、ね?

ようやくIIS7.0+ARR(Application Request Routing)によるリバースプロクシの構成ができました。Webサーバの構成ってあまり表に出ない話、でもないとは思いますが若干情報量が少ないのと、確認が大変なので結構時間がかかってしまいました。

[確認方法]
最近のルータ全般的な仕様なのか、はたまた自分が悪いのか良くわかりませんが、ルータの内部ネットワークからその外部IPを指すホスト名をリクエストしてもなんか上手く要求が通らないのです。なので、スマートフォン(Skyfireなど)を駆使して望むページが表示されることを確認してと・・・。こゆときに2回線あると便利なのですけどね。テスト用にデフォルトゲートウェイを切り替えるだけなので。

とりあえず今回行った設定は以下の感じ。

routing_rule 

今回Regzaへの割り当ては行っていません。というのもDDNSを行うサービス側のフリーサービスを超える範囲になるのと、電源つけっぱなしではないと録画のWebサービスが起動されないのですが、つけっぱなしにすると夜が五月蝿いんです。図で一点補足するなれば、今回IIS用のWebサーバが用意できなかったのでリバースプロクシサーバと振り分け後のIIS-Webサーバを共用しています。後、振分けの名前解決に内部DNSを使用していますが多分、通常の名前解決(WINSなど)ができれば問題ないと思います。

[1.ARR追加モジュールのインストール]
ルーティング用のサーバ(Reverse Proxyサーバ)を用意します。デフォルト(*:80)でサービスを展開して、Microsoft Application Request Routingよりダウンロードした追加モジュールをインストールします。

[2. ARRの有効化]
Proxy動作できるように「アプリケーション要求ルーティング処理」を有効にします。管理画面のアイコンでサイト管理にも似たような表示がありますが、IISコンピュータの管理画面から変更します(ちなみに、これでハマった)。
arr_1

アプリケーション要求ルーティングに「プロキシを有効にする」とあるのでそれにチェックをつけます。HTTPバージョンは多分気にしなくていいのですがHTTP/1.1を指定してます。その他、カスタムヘッダーとかにフォワーダーを指定すべきなのでしょうが、一旦パスで(ソーシャルアプリで見られるGadgetサーバ経由アクセスを行う場合は無視できないカモ)。
arr_2

[3. URL書き換え規則(ルーティングルール)の作成]
2.に同様、IISコンピュータの管理画面から「URL書き換え」、操作ペインから「規則の追加」を選択します。表示されたダイアログでは「空の規則」を選択します。

規則の編集では(サンプルで)以下のような設定を行います。
arr_3 

幾つかの注意を払うべき部分を挙げておきます。

  • URLの一致で今回はホスト名以下のロケーションを問わない(=ホスト名でのルーティング)なので、全てのパターンをマッチングさせています。括弧が付いているのは書き換えでディレクトリ以下が指摘できるように(.*)キャプチャをしています。
  • 条件が一番ポイントだと思います。{HTTP_HOST}でクライアントが要求してきたホスト名に対して、自分が振り分けたいホスト名を指定します。例えば外部アクセスのホスト名が「hogehoge.mydomain.hoge」であれば、それの正規表現形式である「(hogehoge¥.mydomain¥.hoge)」となります(一応、キャプチャ有り)。
  • アクションのURL書き換えでホスト名を書き換えます。ディレクトリ以下のパスをキャプチャした文字列{R:1}で追加してあげます。

このルーティングルールを2つ其々のホスト名に作ってあげればホスト名によるルーティングが可能となります。最後にマッチングしない要求(IPベースでの要求)をGoogle様にリダイレクションします。

  • ホスト名{HTTP_HOST}のマッチパターンをIPv4ベースのマッチパターン「(¥d+¥.¥d+¥.¥d+¥.¥d+)」を指定します。
  • URLの書き換えでGoogle様検索の「http://www.google.com/search?q={C:1}+{R:1}」を指定します。
  • アクションの種類を「リダイレクト」にします。(=書き換えのままだとARRの警告にあるように自身のRPが外部サーバをホストします)

[4. 動作確認]
後は外部からアクセスしてホスト名により振り分けられることを確認します。正しく動いていれば恐らく大丈夫です。

とりあえず以上でIIS7.0+ARRによるリバースプロクシの構成が完了です。一度動いてしまえば何となくカスタマイズできるかと思います。特定のフォルダ以下のリクエストに対して別サーバにリクエストしたり、特定の拡張子(jpg/gif/pngなど)のファイルを静的コンテンツ用のサーバにまわしたり。
まぁ、果たしてmod_rewriteだったりvhostだったりapacheと比べてどちらが高性能か、設定が楽か、はわかりませんが。

次なる課題はsymfony2とIISサーバの準備ですね。

最後に参考にした各種ページ

これを書こうかどうか迷いましたがとりあえず書くことにしました。だって、映画の所感とかって人によって捉え方が違うので書いたところで意味があるのかな、と。ただ、blog(Web Log)でもあるしとりあえずログ的に残しておこうと。

ブラックスワンの所感を端的に挙げると。

  • 表現的に痛い (指のささくれを剥がそうとしたら腕あたりまで皮膚が剥がれたり、爪が割れたり)
  • 性的表現が強い (同性愛、自慰など)
  • カメラワークが苦手 (街中を歩くときなどはカメラが上下に揺れるので結構つらい)
  • ストーリー、配役、演出的には有り

2項目はもうね、blog初回の映画がこんなことになろうとは。ブラックスワンをご家族と見に行くことはおススメしません、多分気まずいです。ちなみに、意図的なものではないので悪しからず。既に映画の予定は結構決まっています。

気が向いたら書くでしょう。むしろ、こゆのも書かないとネタが続かない(汗

果たしてHyper-Vが何台のゲストPCを集約できるか、というものです。別に何台でも集約自体は可能なんですが著しくパフォーマンスが低下する部分ってどこなのかな~とか。

現在の私がサーバとして使っているPCスペックはこんな感じ。

  • M/B: GA-MA69GN-S2H
  • CPU: AMD の何か (TDP45W)
  • MEM: 8GB (dual channnel)
  • HDD: 1T
  • OS: Windows 2008 Server with Hyper-V

そして、集約したい7台(ホスト含む)はこんな感じ。(先日の図に沿いますが)

  • Hyper-V Host OS (Windows 2008 Server with Hyper-V)
  • Reverse Proxy Server (Windows 2008 Server)
  • Active Directory / WINS Server (Windows 2008 Server)
  • VPN(PPTP, L2PT) Gateway Server (Windows 2008 Server)
  • Web(IIS) Server (Windows 2008 Server)
  • Web(Apache) Server (CentOS or Ubuntu)
  • Client OS (Windows XP x64 Edition)

仮想が6台、Server系が1台1GB、Client計が1台512MBのメモリ割当てだとしても5.5MB/8MBを占有します。で、現状まだWeb(Apache)が存在しない状態で6.86MBを使っていると。このままでは間違いなくスワップしちゃいますね。

となると、VPNに関してはそこまでリソースがかかるサーバではない(=自分しか繋がない)のでこれがServerCoreになれば最小メモリ512MBで済むかな~とか。
# 一応Active Directoryとは切り分ける方向で、精神衛生上の都合で。

あと気になるのはCPU消費=ほぼDiskI/O消費っぽ動き。もちろん、サーバ群なんて非公開のローカル側にいるのでリソースを使うクライアントなんてたかが知れていますが、かといってディスクはある程度動いているかと思うんです。で、それが7台になるとこんなものかな、と。
追記 よく考えたらゲストOSのCPUパワーってホストOS上でどのようにでるのか(ユーザー時間 or カーネル時間)知らなかったです。ということで一旦削除。ただ、DiskI/Oの動きがゲストOS上で多いのは事実です、だってパッチ当てている時のグラフだから。

taskmgr

ま・・・、サーバに対して知識がないとこんなものかもしれません。サーバに限らずプログラムもほげってるんで(ry
それ以上に、24時間電源がついているなら普段使うデスクトップもHyper-Vで提供すればいいよね、とかサーバらしからぬ使いかたをしているとか、無茶な部分が山盛りたくさんです。だって、起動時間減らしたいし電気無駄に使いたくないし。

長くなったので分割してφ(。。)メモ

私が何を基準にして音を判断しているかというのでゲームサントラというのを挙げましたが、実際には4曲~5曲程度です。実名で挙げてしまえばこんな感じ。(YouTube/nico動リンクですが、実際に聴くのはCDからのロスレス圧縮です。そして、これらの楽曲全てが仕事の最中は常に聞いている楽曲だったりします)

全体的に目立つのは恐らくクリアな音が要求される楽曲ばかりなのだろうな、と。元々人の声の入った楽曲自体が好きではないのでそうなってしまうのでしょうけど。

高音が透き通るようなクリアな音でありながらも低音は深みのある重い音、それであって且つ、楽曲としての主旋律を奏でる中温が自然に感じられるような音、のバランスが私的に最高ですね。

聞き飽きる、というのがほとんど無いので現状困っていませんが、そろそろ新しい楽曲が欲しくも思います。直近で言えばTales Weaver – Reminiscenceと、9月発売予定のFalcom – 藍の軌跡(楽曲は未発表だけどJDKです)。

先日買ったVictor® HA-FXC51 (Red)においしさをしめて思わずVictor® HA-FXC71 (Black)を購入してしまいました。本来ならビックカメラで買うところですがちょっと忙しいのと体調があまり優れないのでAmazonぽちっとな。
で、待ちに待って、という言葉も空しいほど2日ほどの本日届いたというわけです。値段にして3,380円 vs 4,872円、1,500の差はいかほどか、と。

耳に装着して聞き比べて唖然としました。まさか上位モデルで・・・・しょぼ・・い・・・・
一応前回の形式にならって書けばこんな感じ。

[Victor HA-FXC71]
高音に対して非常にクリアな音を発します。一方でそれに伴う中音・低音のゲインが少なすぎて高級感あるシャリシャリとした特性のように思われます。モデル上はHA-FXC51の上位っぽい扱いとなりますが、音は完全に別物と思ったほうがいいです。ゲームサントラ(割と全音域が出ると思われる)ではこのヘッドホンは向かないでしょう。

ちなみに、先日書き忘れていたヘッドホンが2つあったのでそれも案内しておきます。

[Victor HP-D7] (生産終了)
3年近く前のモデルで5,980円前後だったと思います。オープンエアー型だと思われますが、音がかなり自然です。値段対比でいうなればこれも異常な位の良い音を発します。音も良いことながら、その重量をカバーすべく開発されたXホールドという形状(上からはAudio-Technicaで見られる2点式のパッド、下からはヘッドホン自身のパッドの4点サポート)により装着感は非常に良好です。ちなみに2つ買って1個壊れました。

[Pioneer SE-M870]
Pioneerならではのドンシャリ系ヘッドホンです。ただ、音のクリアさは正直あまりありません。全体的にこもったような重い音が私にはあまり好きになりません(オープンエアーではないから、だと思いますが)。音漏れとか気になるようならこれでいいのでしょうが、音を純粋に楽しむのであればお勧めはできません。

計8個のヘッドホンを持っていることになるのですね。ちなみに、これを私の純粋な音だけでの好み順に書くと以下の感じ。

1位 Pioneer SE-DIR2000
2位 Pioneer SE-EX9
3位 Bose on-ear headphones
4位 Victor HP-D7
5位 Victor HA-FXC51
6位 Victor HA-FXC71
7位 Pioneer SE-M870
8位 Victor HP-AL600

ちなみに私は兼ねてよりPioneer大好きっ子だとは言っていますが、これに関してはPioneerをひいきしている訳ではないので悪しからず。

ゼンハイザーのHD555/595が欲しいわけですが、流石にそこまでくると用途が重複するのですよね。今回の件もそうですし、書いてはいない過去の件も含めてもそうですが、必ずしも高いものが良い音(=自分にぴったり合う音)ではないのですよね。大衆がいい音だと思えばもちろんそれに越したことはないですが、最終的に判断するのは自分自身なので。

自分に合う音を出すデバイスを見つけるのも一苦労です。

PS. 個人的に思うことですがWalkmanの方がiPodより音だ、とか書かれるのをチラホラみますが結局ナンセンスな比較なのかなと思ったりもします。だって、音を出す音源デバイス、音を奏でる振動デバイス、音を伝える外耳内耳というデバイス、音を受動する鼓膜というデバイス、そして音を感じる脳というデバイス。これだけの相性が本当にに全てマッチングするのは難しいですし、どれかが変われば全てのバランスがまたずれる、と思うのですよね。
# もちろん、外耳内耳以降は一蓮托生なデバイスではありますが。