Get-SubscriptionDetails を大幅アップデートしました


冬休みの宿題がようやく終わったので、GSD 最新版公開しましたよ。

Get-SubscriptionDetails (https://github.com/ShuheiUda/Get-SubscriptionDetails)

Azure PowerShell 3.3.0 に含まれる IaaS / Network 系 Get 系コマンドは大体網羅したつもり。
あと、クリックすると詳細ビューが開くようになったので、主要パラメーターは全部見れるはずです。

手っ取り早く試したい人は以下の 2 行でどうぞ。

Invoke-WebRequest "https://raw.githubusercontent.com/ShuheiUda/Get-SubscriptionDetails/master/Get-SubscriptionDetails.ps1" -OutFile "$env:USERPROFILE\Desktop\Get-SubscriptionDetails.ps1"
. "$env:USERPROFILE\Desktop\Get-SubscriptionDetails.ps1" -SubscriptionID "サブスクリプション ID"

これで IP レンジの重複とか、NSG の設定ミスとかも一発で分かりますね。便利!

バグ報告・フィードバックはお気軽にコメントくださいー。

 


そうだコンテナー データセンターを作ろう (Part 2. 用地選定編の補足)


前回のあらすじ

半年くらいかけて土地を物色したけど、どこも使い物にならなかったよ!的な。
(次回 Part 3. 用地買収編に続く)

安い土地に電源・ネットは引けるのか

安い土地は探せばいくらでもあるけど、電源やらネットどーすんの (フレッツすら引き込めないんじゃね) というご指摘がありましたが、当然事前にチェックはしてます。

例えば、先の 2 つめの土地を例に挙げますが…

  1. 住所を確認
    XX 市 XX 町 XX (X 丁目まで記載がある物件も)
  2. 接道をチェック
    (この物件は、南東 4.1 m なので、道路の北西にある)
    fudousan2
  3. Google 先生の衛星画像でそれらしき場所を物色
    (4m 幅で、北西に土地がある、すなわち南西から北東に斜めに伸びている道路を探します)
    fudousan3
  4. Google ストリートビューで、現地に行ったつもりで近辺を巡回
    (Google 先生、本当にありがとうございます)
    fudousan4

といった感じで、30 分かからずに現地が見つかります。 (ストリートビュー未対応地域とか、細い路地裏だと若干苦労しますが、首都圏近郊なら割とどうにかなります)

 

あとは簡単で、少し見渡して電柱があるかを確認するだけ。(というか、近くに民家があれば、電柱くらいはありますよね。)
fudousan5

フレッツについては、NTT のサイトで住所を入れれば対応エリアかどうかすぐ確認できます。
https://flets.com/app2/cao/prefselect/index/

余談ですが、アパート・マンションの場合には建物名まで一覧に表示されるので、MDF から部屋まで光ファイバーが伸びている物件 (ギガが引ける) か、古くてメタル (B フレッツのみ対応) しか配線されていない物件かが確認できて便利です。新築物件だと情報が載っていないこともありますが、電話するとすでに居住した人が申し込んで、「現地調査したらフレッツ引き込めない物件だった」とか丁寧に教えてもらったこともあるので、この DB は外部に API 公開してほしい所です。

flets

 

さらに言うと、ストリートビューで電線をズームして目を凝らすと、NTT のクロージャーが見つかったりします。これが見つけられれば、ほぼ間違いなくファイバーは来ていると判断できるはず。

121016_002

121016_002_1

※ 画像はこちらのサイトから拝借しています。とても参考にさせていただきました。

 

建造物が建てられない土地について

土地にこだわらず、中古の戸建てを物色していると、「再建築不可」と書かれた物件や、「市街化調整区域」という記載がある物件もチラホラみかけます。道路に面している幅が小さい (いわゆる旗竿地) だとか、都市計画で立てちゃダメ (申請して許可がもらえれば OK?) となっているため、比較的安い価格で売りに出ていることが多いです。こういう表記がある時点で、コンテナを運ぶための 4m 以上の幅がある道路が期待できないので、ほぼ却下になります。

ただし、コンテナ データセンターは一定の条件を満たせば、法的には「建築物」ではなく「貯蔵槽その他これらに類する施設」として取り扱われます。(超重要。テストに出ます。)

読めばわかりますが、「稼働時は無人で、機器の重大な障害発生時等を除いて内部に人が立ち入らないもの」かつ「複数積み重ねないもの」については、「建築基準法第2条第1号に規定する貯蔵槽その他これらに類する施設」ということで、建築物の扱いはされません。(念のため市役所にも確認取りましたが、条件さえ満たせば問題ないとのこと。)

この件いろいろ調べると、国内のベンダーさん達が国内でコンテナ データセンターを普及させるために法律が足かせになるからって、建築確認申請とかで時間とられず済むように要望だした結果のようで、実にありがたいことです。先人に感謝。

詳しい背景とかは、以下の資料がよくまとまってたので適当に目を通してください。この報告書が平成 22 年 3 月発行で、先の通達が平成 23 年 3 月なので、報告書の内容を受けて、法律を変えずに解釈だけ変えて対処した感じですかね。

notification

 

といった感じで、だいぶ脱線しましたが、無人運用かつ積み重ねないコンテナ データセンターは建築物ではありません。 (一方で、いわゆるコンテナ ハウスは建築確認申請を取らないと違法建築物になるので気をつけましょう。あと、仮設で二年以内に撤去するのであれば、建築基準法 施行令 第 147 条の通り、緩和されると思います。)

 

今度こそ、Part 3. 用地買収編へ続く。(はず)
※ なお、あくまでも趣味の話であり、所属する組織とは一切関係ございませんのでご承知おきください。


そうだコンテナー データセンターを作ろう (Part1. 用地選定編)


そうだコンテナー データセンターを作ろう

20 歳で Azure をさわり始めて、早いもので 6 年経ちました。新卒で日本マイクロソフトに入社してもうすぐ 4 年、クラウドの中の人なはずなのに、我が家には何故か大量の NUC 8 台 (4 台 x 2 世代) と、512 GB の RAM を積んだサーバーがベッドの下で鎮座して、年々検証機が増える一方です。

そんな私ですが、ついカッとなった結果、タイトルの通りコンテナ (物理) データセンターを建てるに至ったので、何度かに分けて書いていこうと思います。変態 (誉め言葉) の皆さんはどうか生暖かい目で見守ってくださいませ。(※なお、あくまでも趣味の話であり、所属する組織とは一切関係ございませんのでご承知おきください。)

ちょっとだけ真面目な話をすると、大学のころから Show and Tell をする (目の前で実際に動くものを見せながら発表すること) 環境におかれ、MS のサポートという仕事柄「自分で検証した結果や、過去に自分で作ったことのあるもの以外は信用できない」というのが染みついた結果、「データセンターくらい一度は作っておかないと」と思い立った次第(ということにしておいてください)。あと、自宅ラック勢のお約束的な「どこのご家庭にもあるサーバーラックが~」というネタも使い古されてきた感じがしたので、「どこのご家庭の庭にもあるコンテナが~」とかネタとして面白そうですし。

inside

(画像は Wired より、Boydton の Azure DC です)

 

データセンター用地の一次選定

コンテナ DC を建てようと思っても、そもそも建てる場所がないので、まずは安くて首都圏近郊の土地を物色します。

不動産の DB といえばレインズが有名ですが、最近はこれに近い「不動産ジャパン」というサイトがあるようです。運営母体はレインズと同じで、情報量も多く、扱っている不動産屋もわかるので結構いい感じ。(売主に近い不動産屋と話したほうが早いし無駄なコストもかからないので。)ただ、検索機能だけはクソなので、最低限の条件で絞って、あとは価格の安い物件から毎週しらみつぶしに見ていきます。

数か月チェックし続けた感触からいうと、千葉・埼玉・横須賀の近辺は 250 万以下でも物件がそれなりに見つかりますが、都内から 1 時間以内や最寄り駅から徒歩 10 分の物件はほとんど出てきませんでした。(千葉の九十九里とかだと 50 万で結構ありましたが、いかんせん遠い…。)

この他にも、大体同じ物件ばかりですが、一般的な不動産検索サイトを一通りチェックしたり、条件設定をしてヒットした物件をメール通知するようにして気長に待ちます。あらゆる手段を網羅しつつ気長に物色していると、都内なのに 100 万とかで売られている変な物件も極稀に見つかったりして、これが結構楽しいです。崖のような傾斜地だったり、奥に民家がある私道だったり (お隣さんに買い取ってもらうために売りに出した物件) 、残念ながらどれも訳ありでダメでしたが…。

そして最後に、競売に出た物件も安く手に入る場合があるので、数は少ないですがダメもとでチェックしておきます。競売物件は、わざわざ裁判所まで出向かなくても Web で全国の情報が探せます。

 

データセンター用地の条件

物色を続けること数か月、5 件ほど候補地が見つかりましたが、データセンターを作るうえで避けては通れない条件がいくつかあり、下見にも行きましたが全てボツに…。

  • 200 万以内 (コンテナー等の費用は別)
  • 電気とネットが引き込めること
    (最低でもフレッツのギガ回線、欲を言えば Nuro の 10 G が引けるエリアがいい)
  • 前面道路が 4 m 幅以上
    (コンテナーの搬入に必要なので、旗竿地や細い私道や入り組んだ場所は NG)

候補地 1. 千葉県某所の駐車場跡地

道路の突き当りにある駐車場用地っぽいところですが、途中邪魔なゴミ捨て場?があって乗り入れ不可っぽいので断念。

dsc_0054-1 dsc_0055

候補地 2. 千葉県某所の住宅街

住宅街の真ん中に余ったらしい謎の一角。安かったのですが、搬入経路が確保できそうになく断念。

dsc_0066

候補地 3. 千葉県某所の山林

駅から遠いうえに、木が生い茂っていてかなり無理があったので却下。

dsc_0074 dsc_0075

 

といった感じで、現地に行くと思いのほかダメなパターンが多く、半年くらい経過したのでした。

Part 2. 用地選定編の補足」へ続く。

 


Azure Automation のモジュールを更新する


先日から Azure Automation で定期実行しているジョブが動かなくなったのですが、ローカルでも事象が再現して、どうも Azure PowerShell のモジュール依存という事がわかりました。

そんなこともあり、Azure Automation のモジュールを更新してみたので、ポータルでの手順をメモっておこうと思います。

 

最終更新日をみると、9 月くらいの古いモジュールになっています。(Azure PowerShell の 1.x のようです。)

これを最新版へ更新したいと思いますので、ギャラリーを参照からインポートします。

automation

モジュールに依存関係があるので、AzureRm.Profile を入れてから、AzureRm.Compute / Storage / Network をいれます。

automation2

モジュールを更新 (ないし追加) している際には、[アクティビティを抽出しています…] と表示されます。

おそらく PowerShell のコマンドレットを抽出しているのだと思いますが、終わるまでおとなしく待ちましょう。

automation3

 

というわけで、最新版にしたら幸せになれました。

もし特定のバージョンを突っ込みたい場合は、ローカルから ZIP でモジュール追加もできると思いますので、適宜切り分けましょう。


VPN Gateway のデフォルト サイトについて


Azure で S2S VPN を構成した際に、デフォルト サイト (デフォルト ゲートウェイ) を設定するパラメーターがあります。
通常ポータル等には出てこないので、Azure PowerShell を使わないと設定できないんですが、知らないとたまに困るのでメモ。

どういったタイミングで使うかというと…

  • VPN で強制トンネリングを使う場合
    (ローカル ネットワーク ゲートウェイで指定したアドレス空間以外もオンプレにルーティングする場合)
  • マルチ サイトと VPN 接続をした場合
    (アドレス空間が重複する場合に、どれを優先させるか指定したい場合)
# 既存の設定を取得
$VnetGw = Get-AzureRmVirtualNetworkGateway -Name "<仮想ネットワーク ゲートウェイ名>" -ResourceGroupName "<リソース グループ名>"
$LocalGw = Get-AzureRmLocalNetworkGateway -Name "<デフォルト サイトとして設定するローカル ネットワーク ゲートウェイ名>" -ResourceGroupName "<リソース グループ名>"

# デフォルト サイトのパラメーターを設定、保存
$VnetGw.GatewayDefaultSite = $LocalGw
Set-AzureRmVirtualNetworkGateway -VirtualNetworkGateway $VnetGw

こんな感じで、GatewayDefaultSite といパラメーターに、デフォルト サイトとして使うローカル ネットワーク ゲートウェイを指定してあげてください。


日本語化した Azure VM で .NET Framework 3.5 のインストールに失敗する


タイトルの通りですが、Azure VM をテンプレートの英語版で作成したのち、日本語化した環境で .NET Framework 3.5 等のインストールに失敗することがあります。

1 つ以上の役割、役割サービス、または機能のインストールに失敗しました。
ソース ファイルが見つかりませんでした。役割と機能の追加ウィザードの新しいセッションで役割、役割サービス、または機能のインストールを再実行し、ウィザードの [確認] ページで [大体ソース パスの指定] をクリックして、インストールに必要なソース ファイルの有効な場所を指定してください。指定する場所は、インストール先サーバーのコンピューター アカウントによってアクセスできる必要があります。

installfailed

通常、インターネットに接続できる環境であれば、必要なモジュールは適宜ダウンロードされるので、上記のエラーは発生しないと思います。ただ、外部接続を NSG や Firewall で制限している場合、ExpressRoute の構成をしていたりする場合には、ダウンロードできず上記のエラーになることがあります。

ここでエラーにも書いてある通り、代替ソース パスを指定してインストールしようとするのですが、これもエラーで失敗します。(SxS は適当に Windows Server の評価版なり MSDN から ISO をダウンロードしてきて、Source フォルダ内の SxS をコピーします。)

sxs

installfailed

明示的にインストール ファイルを指定しても失敗するのは何故かというと、英語 OS を日本語化しているからです。つまり、.NET Framework 3.5 の日本語・英語の両モジュールがないとインストールができません。

日本語の ISO と英語の ISO をそれぞれ用意して、両方の SxS フォルダーを統合し、代替ソース パスとして指定することで、以下の通り無事にインストールが完了します。

installsuccessfully

 

Azure というより、Windows OS のお作法的な話なので、知らないと意外にハマります。

元々日本語の OS を使えば問題ないですし、インターネットにつながればダウンロードしてくれるので、めったに遭遇することはありませんが、似た症状に遭遇したら試してみてください。