sidetech

インフラエンジニアの寄り道メモ。

ネットワーク屋でもIoTの勉強(番外)-想定外?編

IoTトイレ・・・実際にリアルに動かしてみると、色々な課題点が見えてきますね。

すみません、次の記事が書けていなくて。画面キャプチャーが増えると大変になるのと、社内教育への再利用も考えているので中々(^^;

 

f:id:hunter1014:20180413202440p:plain

若干ミテクレを変えていますが、かなり発展途上中です。スマフォ用ちゃんと考えなくちゃ( ^ω^)・・・。

んで、実環境テストに移してから見えてきた課題点や問題点もチラホラ出てきました。

 

・上記の画像より

空室時間と経過時間を見る限り、19時台にトイレの利用があったはずなのに、記録されていません。

データを見たら、「空室フラグ」が2連続になっていました。

よくよく見ると、「満室フラグ」も2連続がありました…。

私の想定した仕様ではイレギュラーです。うーん。

空室(ドアオープン)が2連続になってしまう理由は直ぐに想像ついたのですが、使用中(ドアクローズ)が2連続はレアケースの想像範囲になります。

何が言いたいかというと・・・

用を済ませた方が、データ送信が終わる前に行動を起こした場合です。

現在、WiFiの接続に何十秒か必要なので、それが条件によって調子悪いのか・・・な。

このWiFi接続の不具合は2.4.0-rc2にどうやらあるようなので、やはり2.4.1にあげる方法を考える必要が出てきました。

他にもバグかもしれないというのもあるか。

ドアを閉めたけどすぐにドアを開けられてしまうと、リードスイッチの情報がオープンの情報として通信してしまうので、これが一つ悪さをしている気がします。

ドアの開閉の時間とWiFiの接続時間の改善はしないといけないですね・・・。

あとは、リードスイッチとマグネットの位置関係がナーバス過ぎるか・・・ですかね。

2連続、同じフラグ情報だったらどうするか・・・という処理を入れておかないと駄目かなぁ…。もう少し発生条件が絞り込めないと駄目っすね。。。

ここら辺はモノづくりな方々は当たり前の苦労なんでしょうね・・・m(_ _)m

 

あとは、今回は、リードスイッチの1か0かを毎回記録しているので、利用時間の割り出しのSQL文がどうしたらいいのか悩んでいるぐらいですかね…(汗)。

SQL初心者にはかなり厳しい構文になりそうです。

時間別集計も構文考えるのに結構苦労しましたが・・・これが沢山のデバイスが繋がってくるとなると…もっと表現を考えねばならないので、色々なSQL文を考えないとですね(涙)。

 

しかしやってみて面白いのは、そもそも使用中によく遭遇するから状況を知りたいと思ったんですが、そんなに時間帯での利用がないんすね。。。
人によっては20分以上籠られている方も居たのが分かったので、占有時間の問題かな?とか思ったんですが、そーすると、MIN/AVE/MAXな利用時間が調べたくなってきますよね。

でもそれを調べても、結局籠る方は籠ると思うんです。何時使用可になるのか・・・。
でもでもそこから先は「誰が」というような符号も増えてしまいそうでプライバシー的に踏み込めないですよね。

AIに?学習させるにしても誰がとかの情報が無いと厳しいだろうし・・・

時間帯的な利用時間のアベレージを出せばよいのかな?遠からず、ある程度時間傾向がでるルーティン族が多ければですが・・・。

 

あとは・・・予兆検知?!
予兆検知だと、モーションセンサーと収音マイク?が必要?!

水が流れる音とかパンツ履いてる音とか・・・(こわっ)

で、インジゲーターには「もうすぐ」とか表示されたり・・・(激汗)。

 

今後これにAI的要素を加えるとしたら・・・なんでしょうね。
気温・天気・湿度?条件付与とか・・・シーズン的な?とかですかね。

打合せ・会議とかのスケジュール情報とか?

それにより混みそうな予兆とか?

 

トイレIoTは奥が深いですね…ヘンタイになりそうです(汗)。

って、私何処までこれ踏み込んでいくんだろう・・・悩みの大半はSQL構文なんですけどぉ(涙)。

想定外の脱線内容になりましたのでここら辺で(笑)

なんとか完成?

なんとか・・・自作なIoTトイレ「スマートトイレ?」は予定の形まで出来ました・・・(手作り感がヤバイ)。

順序立てて記事書きたいのですが、あそこまで書いた以上完成させねばと・・・四苦八苦しておりました。

結局SQLの構文が大変だった・・・というか分かってない(^^;

f:id:hunter1014:20180410201341p:plain

まぁ勢いで作った割には動いている方じゃないかと。

いろいろ嵌らずに、ここまでのクオリティで良ければ1~2日分の時間で行けそうですが、土曜からチョイチョイ初めて、火曜にはここまで出来てるんだから、そら世の中色々早く生まれてくるわけっすね。

 

ただ、ここからのアレンジが大変かな・・・。

久々にPHPに触れて・・・まず色々忘れていたのと、SQLも複雑なのを書いた記憶がなく、書いていた記憶も約18年前・・・(^^;

HTMLも約18年前の知識をフル活用

今時も分からなければCSSも分からないんでシンプルなページしか作れないという。

 

でもよくわかった。色々あるけどキモはSQL(汗)

次の記事は纏めたら投稿しますm(_ _)m

参考にしたサイトが多すぎて、どれが助けになったのか・・・まとめねば・・・。
とりあえず初級編は突破出来ました報告ということで。

ネットワーク屋でもIoTの勉強(2)-環境準備編

今回は土日でやっつけている範囲がボチボチ多いので…ブログもかなり細切れです。

ということで、買い物準備は終わったので、環境準備です。

買い物が終わるとね・・・ちょっと寂しいですが、ここからが上り坂!

まずは・・・

Arduino - Donate :ここからArduino Softwareを入手して・・・(私は1.8.5)

esp_dev_arduino_ide – スイッチサイエンス でESP8266対応して・・・

で、ここでなのですが、ESP8266 Community のバージョンが2.4.1が出ているんですが、コンパイルエラーが出るので、2.4.0-rc2を私は使いました。

 

で、とりあえず、この段階で「Lチカ」をやっておきましょう。

とはいってもですね、

ESP-DOOR – スイッチサイエンス

上記の「動作確認用簡易サンプルスケッチ」をやればおkです。

サンプルスケッチに出てくる

>int LED = 4;
>int reed_sw = 5;

ですが、I/Oのピン番号を指しています。

で、Door Sensorは出来合いモノです。埋め込まれたLEDと最初からついているリードスイッチはすでにピンを消費しています。

なので、色々検索すると「ESP8266」や「ESP-WROOM-02」というのを使った例がでてくるのですが、それらともちょっと違う実装済みな部分があることに注意です。

コピペでやってみた系の方々でハマる最初のポイントになりますので・・・。

読み替え技術を備えるチャンスでもありますw

ということで、上記のintパラメータを見ながら

 

>pinMode(LED,OUTPUT);

これはI/OのpinモードをOUTPUT(出力)にセットしてます。LEDを光らせたいのでOUTPUTです。LEDは4番ピン配置なので、4番ピンをアウトプットに設定の意ですね。

 

>digitalRead(reed_sw)

これは、デジタルモードでリード(読み出し)するってことで、I/Oの5番の状態を0か1かを知りたいという命令ですね。

 

>digitalWrite(LED,HIGH);

>digitalWrite(LED,LOW); 

これは、HIGHがオンでLOWがオフで、I/Oの4番ポートにデジタル的出力をかますコマンドです。ここが皆さん大好きなLチカの部分になってきます。

 

今回のESP Door Sensorを使う場合は、他のプログラムのコピペをやる際でも、読み替えが必要な部分となるのでお気を付けください。

これわすれちゃうと、LEDが光らないとか言い出しますからね。

 

さらに実用サンプルスケッチも入手できますが、このサンプルではAzure IoT Hubと仲良くできません。

ESP.deepSleep(0, WAKE_RF_DEFAULT);

使いたいのはこれぐらいですかね。

大まかな流れは同じなのですが、HTTPでアクセスする部分が想定と違うのですが、この実用サンプルをベースにするよりはAzure IoT Hubをやられた方のサンプルスケッチをベースにした方が今回はラクチンでしたので、抽出するポイントだけ書きました。

 

さて、本丸?ですが・・・

こちらの記事で、私が伝えたいことはほぼ完ぺきですw

こちらの記事の「デバイスの設定」の所に「AzureIoTHubライブラリー」てのがありますので、記事通りにやっていただければ・・・(汗)

 

Azureの部分の説明もしっかりされているので出る幕はないんですけどね・・・。

このライブラリーがあるお陰で、私はだいぶ想定よりも楽出来ました♪

 

環境準備といいながら、この記事でコンプリートなんだけどな・・・。

どこをアレンジしたかは次回に。

ネットワーク屋でもIoTの勉強(1)-部材調達編

ということで”トイレIoT勉強”の続きです。

さて、組めても組めなくてもモノを買うときって何故か楽しいですよね。買って満足的な。人生でどれだけそーいう事があったことやら。ダイエットアイテムを買ってダイエット取り組み決意した感じと似ていますね。

まぁまぁまぁ。今回は主役であり、わき役でもあるので多くを(自分に)望みすぎないで行きましょう。
てことで「部材調達編」です。

欲求を叶えるために必要なモノを探していけばいいですね。
ここで大事なのは「割り切り」と「工夫」です。

Arduinoを収める箱が売っていないかを探しても見つからず途方にくれたり、「3Dプリンターで作る」とか大きく出たりしなくてよいです。カッコつけは後から考えましょう。でも今は昔よりも強い味方がいます。アイデア次第で目的と違った使い方が出来ますからね。既製品好きやブランド志向の人にはキツイかもね・・・。

想定してるのは、トイレのドアで、使用されていないときは、ドアが開く環境のものですね。もしもドアが閉まってしまうタイプだと、もういっちょ人感センサー的なのが必要になりそうです。

f:id:hunter1014:20180408172628p:plain

まずはArduinoなヤツからです。とにかく通信手段付きで、半田も使わずに苦労せずに実現できるものを探したらですね・・・さすがswitch scienceさん。

 

[スイッチサイエンス] ESPr® Door Sensor

[スイッチサイエンス] ESPr® Door Sensor

 

 狙ったでしょ?というような商品を開発販売していました。
長細い赤い部分が、リードスイッチになっているところで、磁石でスイッチが入る仕組みです。

さらなる狙いが消費を抑えてバッテリーでもロングランできるようにというのが狙いのようですが、その部分の考え方は私は今回は別の部分で使おうと思います。

しかし・・・このリードスイッチ付きのものは・・・ほかに何に応用できるかな。

[スイッチサイエンス] FTDI USBシリアル変換アダプター Rev.2

[スイッチサイエンス] FTDI USBシリアル変換アダプター Rev.2

 

さらにUSBシリアル通信させるアダプターも今回は購入です。プログラムを書き込むのに必要になるんで。

 

あとは、マグネットを買わねばーなのですが・・・

f:id:hunter1014:20180408173924p:plain

 まぁ磁石なら、なんでもいいんでしょうけど・・・ある程度の成形品で安いやつをね。最初から両面テープついているし。リードスイッチだけ位置をずらさねばならんかもしれないしと。すこし入荷に時間が掛った気がしますが・・・ま、ここは好みで。

 

f:id:hunter1014:20180408174028p:plain

あとは、100円均一の力を借ります。ヘアピンの入れ物とか画鋲の箱とか、何気ないケースが電子工作では使えたりします。電源も5Vが欲しいUSBと同じでよいという考えで、アダプタも昔よりも悩まなくなりましたね。MicroUSBもとりあえずだし。

ヘアピンの中身は娘か会社の女子にでもあげちゃってください・・・。

 

で、全部でいくらぐらいかな・・・(金額はかわるかもしれないので注意)。

[SWITCHSCIENCE]ESPr® Door Sensor ¥2,700
[SWITCHSCIENCE]FTDI USBシリアル変換アダプター Rev.2 ¥1,080
[SODIAL]ホワイトドア窓コンタクト磁気リードスイッチセンサー ¥249
[DAISO]USB充電ACアダプタ アンドロイドスマートフォン ¥200
[DAISO]USB-MicroB スマートフォン用急速充電専用ケーブル50cm ¥100
[DAISO]Hair Pin アメリカンピン約40g(ケース用として) ¥100
[DAISO]しっかり晴れてきれいにはがせる両面テープSサイズ8枚入り ¥100
合計 ¥4,529

 こんな感じですね。

2か所目からは大体¥3450ぐらいと思っておけばいいですね。

USB-MicroBが50cmしかないので、これはDAISOではなく、長くて安いのを別途調達した方がよいですね。

3mで500円とかあるんですね。ネットで何でもそろう時代ってすごいわぁ。

 

全体感でいうとDoor SensorなArduinoが一番お高いですね。ESP-WROOM-02が使いたいだけなので、もう少し安くできるかもですが、ハンダを一切しないでという条件からそれてしまいます。

両面テープも3Mのやつにした方がよいと思いますが、まずはということで。

 

これで20か所設置するようなことになっても大した金額にはならんで済みます。

問題はWiFi環境という意味で・・・トイレに電波が届いているかが最大の課題になりそうです。。。(汗)

 

とりあえず、どんな感じで動いたかだけ…。

f:id:hunter1014:20180408185019g:plain

LED点滅時はWiFiコネクションを頑張っています。

2秒のLED点灯はAzure IoT Hubにデータを送ってます。

今の所、リードスイッチがONになる時とOFFになる時に、WiFiに接続してAzure IoT Hubにデータを送った後、DEEP SLEEPさせてます。
DEEP SKEEPからの回復条件がリードスイッチの挙動で、その時に改めてWiFiの接続を行ってます。

プログラムの作りが甘いので、WiFiのコネクションが上手くいかないとずっと繰り返し施行するようになっています(^^;

Azure IoT Hubへの送信ですが、どうやら2秒程度待ってあげないと、データの送信が終わる前にDEEP SLEEPモードに入ってしまうような状況だったので、2秒間LEDを付けて、データ送信している風を演じていますw

 

ここまで動かすのに、2名から3名程度のブログ記事を参考にして、プログラムをミックスさせて動かしました。なのでパクリだけでAzure IoTとやり取りできました(汗

プログラムソース公開をためらう程、パクリなので悩んでいます(^^;

 

次回からいよいよ

・ESP8266の参考とパクリ改変ポイント

・Azure IoT Hubの参考文献ととりあえずやっちゃえの部分

・Azure Analyticsの参考ととりあえず動かしちゃえの部分

・Azure AnalyticsからとりまBLOBにJSONで格納の部分

ここまで、基本的に参考サイトのコピペになりそうなので、ちょっと悩みます(^^; 

ネットワーク屋でもIoTの勉強(0)-欲求定義編

前に土日を使ってArduinoの勉強をしていたんだけど、ちょっと間が空きすぎたというか、少し端折って行きたい事情が生まれまして・・・あんまり良いやり方ではないかもしれないけど、とにかく『IoT ready な俺』してみようと急遽始めました。

 

発端は同僚と飲んでいる時の事だったんですが、お酒を飲むとトイレがそこそこ近くなるのですが、まぁ例のごとく待たされるわけですね。

トイレの待ち時間がイラつくと。

「そーいあ、会社でもトイレが埋まっていて、別のトイレにいっても埋まっていると・・・ギリの時はヤバい」

こんな話、IT界隈のIoTをやっている人なら色々情報が溢れているし?IoTトイレで商売を始めちゃうキャリアさんも居るので、皆さんご存知じゃないかと。

何年前?2年前?IoTトイレブームって。

でも、世の中ちょっと馬鹿にしている部分があるようで、IoTトイレの普及率はイマイチな感じがします。

まぁあんなにお金を掛けてできないよねぇ...( = =) トオイメ目

でも今回、後後発ですが、やってみます「トイレIoT」

 

で、元々?ArduinoRaspberry Piを触りだしていた私、最近AWSよりもAzureの速習が忙しく、Azureの勉強中ではあるものの、基本的にネットワークと仮想マシンの部分とVPNを張るぐらいしかやっていないんですよね。IaaS領域ばかりで他サービスって使ったことなかった。

まぁプログラムは苦手だけど、ネットワーク屋さんでもどこまでいけるかやってみますか。。。いい感じの所までいけちゃえば、最悪アプリ屋に引き継いじゃえばいいかとw

あとは、上手くいけば入門教材ぽく出来るんじゃないかなと思いまして。

 

だってサーバーレス時代?それって他人のふんどしつかってやるってことっしょ。

だったらとことん他人様にご厄介になって、コピペでいいから動かしてみるか。。。

 

と、なりました(^^;

 

さて、じゃぁさ・・・ある程度は基本理想を立てて、完成モデルと暫定モデルを考えて、理想と現実上手くあわせてやっていきましょうと。
さて、前置きが長かったですが、「欲求定義編」です。

 

f:id:hunter1014:20180408164752p:plain

と、いうことで、欲求に沿った基本的な方針と流れは・・・

・なるべくサーバーレスで今どきっぽいのを活用

・楽する部分はとことん楽をする

・先輩方のライブラリを探して流用する(結構学生さんのやつが役立つ…)

・コストは可能な限り掛けない

・余計な時間を掛けすぎない(本来の目的からの脱線時間が長いときつい)

 

で、覚えなくちゃならないことだらけなんだけど・・・模範解答を徹底活用w

この中で私が一番苦しくなると思ったのが「web app」のあたり。

従来のApache+PHPSQLなら私も簡易レベルであればなんとかできるんですが、サーバーレスの理想でいうと、node.jsとかに行く方がいいのかな。。。最近JSONだのなんだとjsばかりよね。ちょっとそこを深堀するには時間キツイかもなぁ。

まぁとにかくデータの格納までしてしまえば後はどうにかなるだろうと。

で、上記の要件を叶えるため・・・

arduino(のESP-WROOM-02を使う、安い、そこそこ例がある)

・Azure IoT Hub(を使ってIoTした気分になる。Deviceから直接サーバーは勉強にならなくなるのであえて使う)

・Azure Stream Analyticsを使う。将来的にINとOUTの柔軟性確保。

SQL DatabaseとBLOBとcosmos DB<Nosql>にぶっこんでみる(よくわからないJSONの勉強になるはず)

JSONの使い方をおぼえきれなくてもMS-SQLにさえはいっていれば後はなんとかできるはず

 

きっと色々苦労はあるけど、2日間でどこまでいけるか。

てことで先にハードウェア面だけネタばらし。

f:id:hunter1014:20180408170240p:plain

最小限でしか盛り込んでいないけど、なんとか今必要な機能は達成。

設置場所でWiFiの電波が取れなかった場合についての別の手段を考えるのを忘れたぐらい。あとは、会社のトイレは未使用時はトイレのドアが開いていますが、多目的トイレなどでは扉がしまりっぱなので、その場合にはこれは使えないなと思うぐらい。

 

ここまで完成させたときに思ったこと。

『においセンサーとか他にもセンサーを付けてみたいなぁ』

ま、それは追々ね。

Cisco Meraki vMX100 仮想アプライアンスで楽してみた。

Azureネタが続きます。

やっと、念願?のMeraki vMX100を動かす時が来ました。

AzureでVPNする方法はいくつかあるのですが、その用意されたVPNゲートウェイを使わずに仮想アプライアンスゲートウェイに走るという・・・なんだか手抜きな仕事に感じます(激汗)。


まだAzureをまともに触りだして1カ月経ちませんが、勢いで組んでみたいと思います。

f:id:hunter1014:20180330193445p:plain

Meraki vMX100はライセンス購入のみで、ハードウェア費用にあたる部分は特にありません。AWSもAzureもそこら辺に違いはありません。

画像の通り、Internetポートだけオンラインになっていますね。コンセントレーターモードで動くという事らしいです。

 

セットアップについての・・・

vMX100 Setup Guide for Microsoft Azure - Cisco Meraki

参考情報はこれぐらいです(汗)。

細かいAzureでのデプロイとかトークンキーとかの部分は割愛します。

f:id:hunter1014:20180330193807p:plain

Site-to-Siteの設定が終わると、いつもの?感じ?で眺められます。

しかしAutoVPNの威力はスゴイ。相変わらずVPNを設定している感覚はありません。

赤い部分がちょっと長いですが、途中で中断して他の仕事したりだったんで・・・と言訳しておきます。
おまけに余計なVPN通信をしない様にもう少しVPNターゲットを絞っておきたいですね。

 

f:id:hunter1014:20180330194046p:plain

ちょっとポイントとしては、赤枠の所ですね。Localネットワークの部分を自分で明示的に入力する必要があるということぐらいです。

本来はLANポートがあってVLANの設定とかポートアサインとかネットワークセグメントを設定してある状態なので、その設定情報に対してVPNに通すか通さないかの設定をするだけなのですが、Azure側がルーティングのキモを握っているということもあり、明示的にする必要が出たという感じですね。

 

f:id:hunter1014:20180330194809p:plain

Azure側もチラリと。vMX100をデプロイすると、勝手に変なリソースグループを作成しやがります。ただ、ルート情報は、デプロイ時に作成したリソースグループを使うようです。

 

f:id:hunter1014:20180330195028p:plain

変な文字羅列付きの方に仮想マシンとか仮想ネットワークとかが展開されていますが、リードオンリーのリソースグループになっていました。

 

ルートテーブルに、他の拠点のネットワークセグメントの情報を書き出して行く感じですね。

今回は米国東にデプロイしています。日本との遅延は237msでした。うーん、思ったよりもありますね・・・。200ms以下だったらよかったのに。カナダのトロントが245msぐらい掛かるので、多少は良いというぐらいですね。まぁ日本からメインで使うわけではないので、今回は良しとします。

 

アメリカで何拠点か、このAzureへアクセスする必要があるのですが、既にセットアップ済みなので、MXをオンラインにしたら自動的にAzureにもつながると・・・。

 

いやぁ・・・手抜きな感じだなぁ・・・楽すぎる・・・。
Merakiに限らず、AWSやAzureのアプライアンスマーケットには色々な機器があるからね、みんなこんな感じなのかな?


Meraki MX使いの方でAWSやAzureを使う人でBGPが対応していないし~って嘆いていた人には良いかもしれないです。

(現在BGPはBetaプレビューとの噂も聞きましたが・・・)

Meraki vMX100の可用性については次回?!にでも。。。

Azure本を読んでも分からんから実践3(vNet-準備編)

多分ね、AWSもAzureもvNet(VPC)[仮想ネットワーク]から始めるべきっすね。。。アレコレやりたいと考えるならば。

取りあえずの手始めに、サーバーをさくっと建てて「ほら、簡単でしよ?」というのは反則に近いですね・・・AWSもAzureも。

分かりやすさの玄関なのかもしれませんが、1m進んだら深海に落ちるって誰か、ちゃんと説明していますかね…(^^;

仮想マシンのデプロイでも少し?ほにゃららで良くわからないのを無視してもとりあえず動きますが、ちゃんとデザインを考えると、事前知識がどれだけ必要なのよ…という状況です。。。

今回、私の理解が進みだしたのか、何気に本家のドキュメントが読みやすくなってきました。やっと求めている情報と脳内が噛み合い始めたようです。

f:id:hunter1014:20180320140508p:plain

ま、愚痴はこの位にして、Azure初心者な私が疑問に思いハマりそうだという所をピックアップです。

仮想ネットワークを初めになんとかしましょうというのは、

Azureテクノロジ入門 2018

Azureテクノロジ入門 2018

 

 こちらの本にも書かれているのですが、特にこの仮想ネットワークは最初に決めておかないと、後から変更が難しい・・・いあ変更はムリと思ったほうが良いかもです。
その為、ネットワークのサイズが/16とかデカくなっちゃうのでしょうかね。


さて最初の用語ですが、

アドレス空間(CIDR)

・アドレス範囲(Subnet)

という部分がありますが、CIDR「くらすいんたーどめいんるーてぃんぐ」と表記上はなりますが、会社で例えるなら、部署になりますかね。最初、拠点って表現しようと思ったんだけど、それはリージョンだなと。で、Subnetは課にあたりますかね。

この表現も適切に感じないなぁ・・・(でも次に進む)。

 

で、アドレス空間の中に「ゲートウェイサブネット」は1つ持てます。

急にゲートウェイサブネットって出てきたね。

Azureでは、Site対SiteのVPNやExpressRootを使う場合はサブネットゲートウェイを使いなさいという作法になっています。オンプレのVPN機器とIPSecで結んだりBGP使って繋いだりする部分ですね。

なので、VPNを組む予定がある場合は、ゲートウェイサブネットのアドレス範囲を確保(考慮)しておく必要があります。

ここら辺までは、必然とある程度はわかるかもしれない。

ということで先人のページを拝借して・・・・(汗)

ってことなんですよ。(^^;;;

 

でも、仮想マシンを使う「仮想アプライアンス」なファイアウォールルーターが出てくると・・・?これらもゲートウェイサブネットを使うんでしょうか?どうやら無理ポいすね。 仮想はなんでもありな分、作法が色々とうるさいです。

仮想アプライアンスを使うVPNは如何したらよいのかは、各サードパーティー製品の説明に委ねるとして、どうやら、仮想アプライアンス用のDMZ的なサブネットが必要そうです。でないとルーティングに困るようですね。

ムムム、一気に情報量多くなりましたね…(汗)。

 

まぁ、言いたかったことは、使うか使わないか分からないけど将来もしかしたらがあるかもしれない要素を、ほぼ最初の時に定義しておくことで、ある程度報われそうという話です(^^;

てことで、今回言いたいのは、

 

アドレス空間(CDIR)の決定

●仮想アプライアンス等のDMZ-Subnetの確保・決定

ゲートウェイサブネットのSubnet確保・決定(推奨? /27よりおっきく)

・フロントエンドSubnet/バックサイドSubnet/DB Subnet/MGT Subnetなどの決定

 

を、最初の最初でやらねばならないので、使わないと思っていても、ある程度のサブネット範囲を抑えておいた方が良いんじゃないかと思った次第です。事前の理解量も結構必要ね…(^^;

最初の要件になかったとしても、追加要件を食らった場合のお互いの損失を考えるとね・・・( ^ω^;)・・・

 

そろそろ、図を用意しないと駄目ね…。

Azure本を読んでも分からんから実践2(Compute-可用性編)

うーん、AWS知識をカタカナ英語な理解で進めると、やたらと躓きますね…こんにちは。

今回は、可用性な話です。

f:id:hunter1014:20180319154546p:plain

仮想マシンの作成時にすぐに「高可用性」という項目があって「可用性セット」てのが出てきます。これってどうやらデプロイ時にしか選択出来ないようで、後からやっぱりやると言っても駄目そうなんですね。

本来なら、デプロイなんて、するするする~っと出来ないと駄目なのに、実際には「これはなんだあれはなんだ」状態です。そして、あとから修正出来ないとか・・・いあー参ったね。

 

で、Azureでは色々な可用性の話が出てくるんですよ・・・。

仮想マシンの可用性とストレージの可用性・・・
・LRS [Local Redundant Storage] ローカル冗長ストレージ
・GRS [Geo Redundant Storage] 地理的冗長ストレージ

・Manage availability [可用性セット]
・Service Healing [ 仮想マシンの自動復旧]

くっそ~。彼方此方で可用性の話されてシンドイな。

サクッと理解できる方法ないのかなって思うけど、ここに輪を掛けて混乱するのがResourceやらロードバランスとの関係なんだろうな…。

 

とりあえず、やっつけやすい所から。

可用性セットがなしの場合でも、仮想マシンについては「Service Healing」という機能で、ホスト障害があっても別のホストに自動復旧する仕組みが標準であるんだって。

これはvmwareでいうHAな話と一緒だね。なので、自動復旧機能のダウンタイムの許容とセッション断やらデータリカバリが何とかなるなら、可用性セットは気にせんでもいいのかな。

Azure 仮想マシンにおける可用性の考え方 – ainaba's blog
↑のサービス復旧図の解説が分かりやすかった。

 

ただ、AWSとAzureの違いでいうと、AWSの場合は、Availability Zone(以下AZ)というのを指定して仮想マシンを構築するのに対して、Azureの場合はその指定は無し(将来対応するっぽいけど?)。なので、AZ-a,AZ-cに自己配置出来るAWSと違って、Azureの場合はWEBサーバーを2台用意しても同一のゾーンに配置されちゃうかもしれない訳です。
AWSのAZの場合はAZ毎のサブネットを作るので、同じサブネットでの可用性は無い感じに対してAzureの場合はサブネットは同一のものが利用できる感じね。

で、同じサブネット内に例えば2台のサーバーを建てちゃうと、AWS風にいうとAZ-aに配置する感じになっちゃう。これだとSLAが微妙ね?
てことでAzureでは「可用性セット」という考えがあるんだと解釈した(^^;

f:id:hunter1014:20180319163313p:plain

で、AzureではAZの事を「障害ドメイン」ていう表現になるぽいですね。
AWS : Availability Zone
Azure : Availability Domains ? Fault Domains

まぁメンドクサイ。更新ドメインは良いと思いますよ。同一グループの更新を一気にやらないで済む仕組みはいいんじゃない。

高可用性の可用性セットをしたら勝手に仮想マシンの複製が出来るのかと思ってたけどさ、違ってた。

プログラム的にいうと、可用性セットの宣言を行って、パラメータはこんな感じです・・・という流れなのかな。

宣言を行う事で、その可用性セットのグルーピング(障害ドメイン)は0と1に分かれていますね。これがAWSでいうところの、aとかcとかっていうやつですな。

f:id:hunter1014:20180319163326p:plain

こんなパターンも作ってみましたよ。


うーん、今回も結局やってみれば本の言っていることが分かってくるけど、どーにもAWSもAzureもローカライズに問題があるような・・・?大事な言葉はムリに翻訳しなくてイイさ~。

でもこれは色々参ったね。ある程度ちゃんと理解してからでないと設計しにくいぞ。
触っているお陰で前進はしている気はするんだけど、AWSを触り始めた頃よりも苦労している気がする。何が違うんだろう…。


分かっている事は、AWSもAzureも本家サイトの情報が一番わかりづらいのは共通しています :-)
これは英語の言い回しをそのまま翻訳するからなのかな?

 

GRSを活かした構成な設計が出来るようになるまで道のり長そうだ…(^^;

さて、次行ってみよう。

Azure本を読んでも分からんから実践1(Compute編)

最初に触れたのが2016年頃なんですが、結局ネットワーク周りのVPNまでを楽しんで終わっていたので、今回は真面目にAzureを触り始めました。
クラウドサービスという事もあって、画面の雰囲気が変わったり、古い機能と新しい機能が混在していたりして良くわからないなと思っていたのが2017年。

日々進化?するクラウドサービスなので、本記事も書いた瞬間から陳腐化が速いのは分かっちょるです。ただまぁAWSに比べてネットの情報も少ないので、少し書いてみようと思った次第です。

f:id:hunter1014:20180313185420p:plain

今回は、AWSの初心者向けの10分構築流にネットワーク周りの話は抜きで、兎に角サーバーを建てるだけ・・・なんですが、捉えにくい部分にフォーカスします。

今回、対象としたのが、”B2S”というコンピュートノードサイズです。”B1S”でも”B1MS”でも良かったんですが、Windowsって1コアだと色々シンドイもんで・・・。

まずもって、この画面からもAWSと流儀がちがいますね。AWS出身者もクラウドサービス初心者もいきなり勘違いしてつまづくかな?

 

まず、『ローカルSSD』という表現がとっつき難いですよね。これってOSのドライブの事なのでしょうか。それにしては容量が小さすぎです。
AWSもEBSという捉えにくい概念でしたが・・・AzureではEBSにあたる部分は「データディスク」になりますね。

で、「ローカルSSD」ですが、位置付けとしては、”仮想ネットワークストレージディスクではない”ので、ローカルらしいです。ストレージドライブは多少なり遅延がありますが、ローカルなので低遅延という事みたいです。ただしこのローカルSSDは停止とかすると消されちゃうよ・・・ということなので、テンポラリディスクとかWindowsだとページングファイルとかを置く場所になります。ページングファイルを置くという事だけを考えれば、メモリとのバランスをみてサイズ感はWindows慣れしている方は分かりますね。

あと、コンピュートノードの選択の仕方によって、CPUコアの数だけでは測れないIOPS性能の違いが色々でます。ネットワークにも影響があったりするので、どれを選ぶかは本当に難しいですね。

じゃぁ、Cドライブの容量は何時決めるねん?ってなる所で、「管理ディスク」と「非管理ディスク」の話が出てきます。

本や資料を読むと、「管理ディスク」と「非管理ディスク」という用語が出てきます。どうやら「管理ディスク」というのが2017年頃に追加された機能らしく、本にはディスクの管理が簡素化して楽になったんだよっていう内容が書かれています。
これは初めての人にとっては、何が何のことやらですね。簡素化されてんなら非管理なんてやめちゃえと言いたいのですが、そうもいかないようですね。

f:id:hunter1014:20180313191028p:plain

ここで、兎に角その違いを比較すりゃええのかなと思って、test01とtest02というのを作ってみました。
”test01”は管理ディスクで作成したもので、”test02”は非管理ディスクで作成しました。

先に結論をいうと、起動されたWindows2016の中身を見比べてもなんの違いもありませんでした。
しいていうなれば、管理ディスクは「スタンダードディスク(HDD)」と「プレミアムディスク(SSD)」が選べたことぐらいですかね。ストレージのディスクも本当は選べるのかな?

f:id:hunter1014:20180313191655p:plain

↑これが管理ディスクで作成した場合。OS入ってるってのも分かるわ。

 

f:id:hunter1014:20180313191744p:plain

↑これは非管理ディスクでの作成した場合。でもここまでは構築苦労の差はありませんでした・・・。
ちなみにCドライブの容量はどちらも128GBで作っています。

 

f:id:hunter1014:20180313191915p:plain

こんな感じで動いているのが見えて~の、

f:id:hunter1014:20180313192013p:plain

中を見てもフムフムって感じ。あ~English版なの?!っていうツッコミはとりあえず置いておいて、先ほど言った、ローカルSSDは最初からマッピングされています。

f:id:hunter1014:20180313192403p:plain

Ubuntuでも確認した所、ローカルSSDは「/dev/sdb1」の”/mnt"でマウントされていました(こちらは/dev/sda1は30GBで作成)。

 

さて、ここで2台のWindows、微妙に作り方を変えてきた訳ですが、追加のドライブ(ネットワークストレージ)を足してみましょうか。

f:id:hunter1014:20180313193201p:plain

データディスクの追加とやると「管理ディスクの作成」ってのが出てくるので、ディスクサイズとかを決めて、OKってすると、すぐに終わります。

あとはOS側からオンラインにするぐらいです。”ソースの種類”ってなんぞやって思うんですが、今回は無視。

 

非管理ディスクなtest02でデータディスクの追加をやると・・・

f:id:hunter1014:20180313193610p:plain

ちょっと一部の画面をはっしょりましたが、こんな感じで「管理されていないディスクの接続」なんてのが出てきて、ストレージコンテナはどこやねんとか、ストレージアカウント部分やらの設定をして、ストレージBLOBを突っ込むという様な流れになります。ちょっとメンドカッたです。この部分の簡素化なんやな~とやってみてやっとわかりました。ストレージアカウントだというぐらいなので、セキュリティとかの設定も気にしないとまずいかもですね。

ストレージアカウントも既存のを利用したほうがええのか、新規で別々にしたったらええのかちょっとまだよくわからへんです。

いやぁ、管理ディスク使いやす~いね。

あ、でも料金についてはちょいと注意です。

 


ストレージの場合は容量を使った分だけ・・・の課金体系だったと思いますが、

管理ディスクは一定容量毎で幾ら?ってなってますので計算はしやすいと思いますが、気を付けてください。

 

Azureテクノロジ入門 2018

Azureテクノロジ入門 2018

 
Microsoft Azure実践ガイド (impress top gear)

Microsoft Azure実践ガイド (impress top gear)

 

 

やっと本がいうてること分かってきたど・・・(^^;
しかし、リソースグループが無かった頃ってどうやって管理してたんやろ・・・。

AWSでもどのサーバーが何に紐づいているという情報が慣れないと分からないというか、判りにくいというか、idを見間違えるので、タグとかを活用しますが、Azureはリソースグループで見分けは何とかできそうですね。命名法則にも慣れんとですね。

さて、結構単純な流れできてしまいましたが、コンピュートノード構築時には他にもハテナな機能や役割盛りだくさんなので、ハマりそうだな?って思ったらまた書くっす。

Azureの情報は何が本当なのか・・・マヂギレしそう

久々に『イラっ』っときました。

AWSだけじゃなくてAzureもちゃんと理解しておかないとなと取り掛かり始めたのは良かったんですが・・・。
 
どうにも何時頃かわかりませんが、UIやら機能が大変身を遂げたようで・・・。
 
世の中の情報がどれが新しいのかが…サッパシわかんない。。。
 
MSの人に教えてもらったチュートリアルのような資料もですね・・・もう情報古いし。UIがちゃうし・・・。

まぁ読み替えれば良いかと思って進めてもですね・・・違い過ぎてピンときにくい・・・
 
最初は、「東日本」サイトでせっせこ作っていたんです。
んでとりまVPN張ってみよう・・・とYAMAHA RTX1210でトライしていたんです・・・していたんです・・・。
 
なんでか判らないけど、VPN設定でIKEのphase1しかつながらない…orz。phase2が起きない・・・。
色々調べてみると、どうにもYAMAHAさんは動作チェックリストから外れているではないか・・・こないだまでRTX810が居たと思ったんだけどな…ルートベースかポリシーベースか、静的か動的かと・・・色々な情報をまさぐったけど・・・どうにもいう事を聞かん。
そういや、世間の無償期間中のお試しマニュアルは西日本での例が多いな・・・東日本を一旦捨てて西日本でやれば上手く行くんかな・・・と思って、急遽東日本をつぶして西日本へ・・・。しかし、YAMAHA RTX1210は状況変わらず。先人の方々の情報にもみましたが・・・ここでYAMAHAを可愛がる時間がちょっとないもんで、仕方ない・・・
 
手持ちのJuniper SRX100なら行けるやもしれんと、試してみること数時間・・・。
Azurevpn01
やっとこ繋がった・・・。たった1本のVPNのバイパス組むだけでこんなに意味判らんのか・・・。AWSのほうがまだ設定Configサンプルくれるから組みやすいわ・・・。
 
おし、とりあえずやっとここまで来たら、サーバー立てて突っついてみよう。
どれどれ、とりあえずWin2012DCでも・・・ん・・・?
 
Azurevpn02
んんんん?!?!どゆこと~!!!
世の中の教本には西日本でサーバー建ててるやんっ!!!
 
なんでここまできて東日本っていうんだよ・・・orz...
 
その癖、SQLサーバーを建てようと思ってセットアップ進めて、サーバー選んでね…という所では西日本選べるんよ・・・。なんなん!?
 
仮想ネットワークゲートウェイ用サブネットが必要なのも全然つかめんし・・・。
 
まったく、先日はMSDNの手続きでイラっとさせられるし、ADFSは原因不明な悲鳴上げるし・・・Microsoft関係でずっとロクなことが起きてないっっ
 
あと3日で無料枠なくなっちゃうし・・・このままAzureはサヨナラかしら・・・。
とりあえず、AzureとVPNは別件でやらなきゃいけなかったんだけど、YAMAHAルーターじゃちょっち調子悪い事が分かった事だけは収穫なのかな・・・ポジに考えて・・・うん・・・そうだな・・・そういう事に・・・はい・・・。
 
はぁ。
ひと目でわかるAzure 基本から学ぶサーバー&ネットワーク構築 改訂新版

ひと目でわかるAzure 基本から学ぶサーバー&ネットワーク構築 改訂新版

 

閑話休題:これは依存じゃないアピール?

ネタがあるようでない様で。ちょっとバタバタなので・・・。

ちょっとAzureを覗いたときに簡単なビデオがありまして・・・それを眺めていた時の違和感がハンパない。
Azuremacchrome
ちょっと見づらいかもしれませんが・・・Microsoftのサイト内で、Azureのビデオなんですが・・・MACが動いていて更にChromeを利用しているという・・・。[E:coldsweats01]
Microsoftのサービスだけど・・・だけじゃないっていうアピールですかね?
はぁぁぁぁ・・・orz...
どうでもいい話でした・・・(きっと疲れているんだと思う)。
そういや、最近は目に見えてMAC利用者が増えましたね。。。
OS依存度が下がってきたという事でしょうかね・・・。
それにしても・・・クラウドって何が出来るの~ってのを調べるだけでも骨が折れます。
二兎以上追いかけていますが、追い付けません・・・[E:weep]
昔(今もだけど)、携帯3社の料金プランが良くわからないし、コロコロ変わるんでモーイヤって嘆いていましたが、クラウドサービスも超カオスです・・・。[E:sad]
DevOpsって世の中上手く行ってるんすかねぇ・・・疑問です。[E:wobbly]
てことで、ただのボヤキでした・・・。

Azureはじめ。。。るまいと思ってたのに

Azure


いやぁ・・・愚痴ブログな最近・・・読者が減るかも[E:coldsweats01]

触るまいと思っていたAzureですが・・・ついに手を出してしまいました・・・。
Googleの時もそうだったんですが・・・

「何から手をつけて良いのかわからない・・・orz」

AWSの初めての時も何処から手をつけるんだって思ったけど・・・
最近触ってきた中でわかった事は・・・AWSは良く出来てるなぁ・・・と[E:coldsweats01]

ただAzureも趣向の違いの部分というかMS製品群の強化はちゃんとされているようで、なるほどなるほどと思いました。

ちょっと書籍買わないと駄目っすね・・・勢いで始められるものではなさそうだ(^^;。
ちょっと検索して資料をみてもUIがガラッと違う参考サイトが・・・。
クラウド系は記録を残すのも難しいね。

あと、softlayerを触れば大御所はコンプですかね。[E:despair]

ベアメタルにも興味があるので、とりあえずなんでも試してみまっす。