さらばAzureまた逢う日まで

基盤:Azure の VM を止めたいと思います。

社長:そうして下さい。

開発:アクセスは完全に止まったのですか?

基盤:6/26にAWSに移行して数日でほぼ止まっています。今来ているのは、もう古い IP アドレスが記憶に焼き付いたロボットだけではないかと。それはそれで観察して面白いですが。コストに合わないかと。

経理:左側が300円/日時代、右側が100円/日時代ということですね。

基盤:そして今はAWSで20円/日時代。アクセス数はほぼ等量から増加傾向です。

開発:こうして見ると、4月30日にサーバを引き継いでドメインを delegate9.org へ変更した後はがっくりとアクセスが減って、delegate.org を復活した5月中旬からほぼ復旧したという感じですね。

社長:そういう意味では、delegate.org というドメイン名がロボットの長期記憶に焼き付いているということかも知れません。というか、ハイパーリンクや人間様の記憶に残っているのでしょうね。

経理:実質的な活動は2ヶ月、一日100円で、6,000円の生涯でした。

基盤:ディスクが小さくて高い。ずっと綱渡りでした。

基盤:通信速度にも難がある。まあ、あのコスト分析ツールは面白いと思いますが。

開発:AWS では100% Amazon Linux 採用という方針ですね。

社長:あの時、これからは Ubuntu と何思ひけむって感じですかね…

基盤:ただ実用は無しとしても、性能の比較とかのためにたまには来たい気はあります。Azure は止めておけば、マシンには課金されませんから、壊さずに保管しておくという手はあるかも知れません。一応止めるまえに、リブートして身ぎれいに… … … あれ?立ち上がらなってしましました。ping にも答えないから、マシンとして終わってる?

基盤:どうしましたかね。接続のトラブルシューティング>接続のテスト>接続を調べています… ただSSHに繋がるかに何分かかるのかな… ああ、なにやらデプロイしてたんですね。

基盤:おーっと復活、ssh ログインできました。22:13:46にリブートかけて22:15:50に立ち上がってますから、2分かかったんですね。

開発:これは、どうかしちゃったと普通思いますよね。

基盤:再度リブート…

基盤:今度は30秒で立ち上がりました。たぶん状態が溜まってない時のリブートだけは、AWSより速い。

基盤:ああ、ping に答えないと思ったら ICMP を通してませんでした。受信ポートの規則を追加する…ぶちっと… … なんでこれしきのことに10秒もかかるのか。やれやれ。

基盤:では ping します。まず Azure。東アジアのどこか。

基盤:xso。たぶん東京?

基盤:AWSライトセール。東京。

基盤:AWSオーストラリア。

基盤:AWSオレゴン。

基盤:AWSインド、ムンバイ。

基盤:AWSドイツ、フランクフルト。

開発:ふーむ。Azure の RTT 50ms は微妙ですね。東アジアって韓国あたりですかね?

基盤:Azureでもリソースによっては「東日本」も選べたような気がするんですが、基本、一番近いリージョンは East Asia なんです。

基盤:部品の料金はこう。

基盤:現状のvnetの構成はこう。

基盤:というわけで部品を全部はずします。まず仮想マシンを停止。… セカンダリのネットワークインタフェースをデタッチ。削除。IPアドレスを削除。セキュリティグループを削除。さっぱりしました。

基盤:プライマリのIPアドレスを切り離し。削除。スナップショットを削除。DNSゾーンを削除。

基盤:これで最小構成になったかと思います。

基盤:仮想マシンを止めれば、課金対象は、1日25円のストレージのみになるはず。で、一応起動して接続をテスト… しまった、パブリックIPアドレスを切って島たので、Azureの外からアクセスできません(笑)

基盤:これは確か、静的アドレスでなければ無料なんです。作成して関連付け。ssh でログイン。OKです。

基盤:では再び停止。おっと、興味深いことを聞いてきましたよ。

社長:私はこのことを理解してなかったので、何度か痛い目にあいました。昔からこういうメッセージを出していくれてれば。

経理:予約て、お金がかかるわけですよね。

開発:おそらく。✓して停止したら、割当が動的から静的に変わりました。

経理:Azure IP 静的 料金 でぐぐる…

経理:なんかよくわからないですね。

基盤:ふっふっふ。このARMというのはあのARMでは無いのですよw

開発:なんで人間がこういう表を読んで理解しないといけないのか。どういう理由でそういう料金になってるのかもわかりませんが。クリックしたときに、そのクリックはいくらいくらですって出してくれるだけで良いのに。

基盤:あほらしいので脳みそを使うのはやめましょう。たしか動的IP一つは無料です。動的に戻します。だめか。再起動して、動的に戻して、、あれ?関連付けを解除して、動的に戻して、関連付けて。これでいいかな。明日からたぶん、25円/日になると思います。

経理:何も使ってないのにですか。

開発:ディスクはHDDを試してみると良いかもね。いくらか知りませんが。

基盤:OSのストレージってHDDには出来なかったような記憶が…

社長:お役所系の提出書類って基本的にこういう風なんですよね。機械でなら簡単に計算できるところを、わざわざ人間を苦しめるようにできている。

基盤:ライトセールの天国さ加減を改めて実感します。おっとやばい、停止するのを忘れました。仮想マシンの停止をぷちっと… … … 「正常に停止されました」

開発:それにしてもサイドバーで Virtual Machines て書いたり、メッセージは仮想マシンだったりですね…

社長:プロビジョニングとデプロイを日本語にしたら褒めてあげたい。

基盤:次に来るのは完全に廃棄する時か、Azure版ライトセールが出来たときでね。

— 2020-0715 SatoxITS

ブラウザ達のShow All Windows

社長:こないだ Terminal の Show All Windows に感銘を受けたので、今日ははじめてブラウザを総視察しました。まず今現在の Vivaldi。

基盤:黒いのが目立ちますね。

社長:これは「自分」とは別のユーザ(ログインなどの状態を共有しない)として開いているウィンドウです。これがデフォルトの配色かどうかは忘れました。かといって通りすがりの「ゲスト」では無いので、ブックマークとか履歴とかはちゃんと残ります。目立つ黒帯はVivaldiのサイドバーですが、おもに履歴表示に使っています。何時そのページを見たかがパッとがわかるので重宝しています。

社長:次がOpera。

基盤:今もかなり使ってるんですね。

社長:1ヶ月以上前に開いたままのタブがほとんどですが。

社長:次にChrome。

基盤:これもかなり使ってますね。

社長:Vivaldi が固まった時の代打とか。Googleで検索したい時につい開きますね。OperaはVivaldiにかなり近いのでかぶってしまうのですが、Chromeは明らかに別なので、使い分ける意味があります。あっさりしているので口直し的にもなります。

社長:Firefox。特に意図があって開いたわけではありません。

社長:Safari。これは client-side CSSのテストとか、キャッシュの振る舞いを確認した時に開いたものですね。SafariはPDFにした時の色合いとか型式が独自で好ましい事があります。特に印刷のプレビューは良いと思います。

社長:Show All Windows については、右クリックのコンテクストメニューで呼び出せると良いなと思います。Show All Tabs もあると良い。さらに各タブの中の履歴にあるページを重ねて表示してくれるとありがたい。でマウスホイールでぱらぱらめくれるか、MacのMailみたいにスクロールできるみたいな。検索もできると良い。

社長:とにかくこれは現状を全貌したり一つを選択する表示モードとして便利なものだとは思うのですが、選択の方法がクリックだけでつまらない。コンテクストメニューでいろいろできるとか、複数を選択して、選択の結果をどうするとか、デスクトップ上の表示位置を移動できたり、選択したものを拡大縮小できるとか、とにかくいろんな可能性が秘められていると思います。

社長:それにやはり、これを一時的なメニュー的な表示という位置づけではなくて、もうこの表示モードのままで実際に使いたいこともあるわけです。そうすると、以前Opera にはまったころに試したような、多数のミニチュアウィンドウを常時表示というようなものも、アプリによらない統一的な操作で実現できるのにと思います。

社長:これは仮想デスクトップと深く関係していると思うんです。仮想デスクトップには、それぞれある作業を行うためのツールのセットを割り付けて、記憶させて、呼び出したい。その一つとして、特定の作業とは関係なく横断的に全部のウィンドウを表示するデスクトップというのもあって良い。そういう意味では、特定のアプリに関する全ウィンドウ表示ではなくて、とにかく全部とか、日付とかの条件で検索するとか、特定のタグをツケたものだけ表示するとか…

社長:あれ?そういえばタグって使ったことないですが、ひょっとしたらそういうふうに使えるものですかね?

社長:ともかく、ブラウザごとに、ウィンドウ毎に現在のタブのセットを記憶しておいて後から呼び出したりとか、デスクトップの状態に名前をつけて記憶しておいてあとから呼び出せるとか。検索できるとか。アプリによらず同じモデルで実現して欲しい。そういうふうになっているとうれしいと思います。

— 2020-0715 SatoxITS

QRパッチ

社長:帰りましたー

経理:酒臭いですね。

社長:今日はあの、よくわからない定食屋系のお店に行ってきました。

開発:あそこのマスター、夜は必殺仕事人とかしてそうな気配を感じますね。

基盤:世を忍ぶ仮の姿。

社長:めずらしく今日のお昼時は急がったらしく、もうごはん無いよーとか、ぐったりしてたんですが。まあ、私は飲むだけですからって押し入って。

社長:で飲んで食って。いくらっですかて聞いたら、あー5LSUでいいよって。その後に一瞬考え直して、いや4LSUでいいわ。って。

社長:で、私的には、他の店なら7〜9LSU相当かなと思ったので、いや5LSU払います。いや4LSUでいいからって押し問答。

開発:不思議な問答ですね。

基盤:食後に値段交渉の出来る定食屋w

社長:食事中ですが、今週末に消化器が必要なんだよねー、どういうのがいいかなって聞くから、アマゾンで検索したら3,000円くらいからあるんですね。これプレゼントしましょうかプライムだしって言ったんですが、いやジョイフルで買うからいいわって。

経理:まさか火災保険…

社長:いや、商店街の?イベントでー、って言うことでした。消火訓練とは言ってなかったけど、当局?か誰かが来てなんかコメントするみたいな。

社長:それで帰りは例の血痕ロードをてくてく来たのですが。昨夜来の雨で血溜まりは消えてましたが、血の点々は健在でした。で、穴の空いたズボンとか、シミのついたシャツとか考えているうちに、ああこれはいっそ、派手なパッチで覆うといいかもって。

社長:わたしはあのオンボロBMWが来た時に、内装がボロボロだったんで、一旦全部剥がして、自分でスプレーして改装したんです。で、あの隅っこにワンポイントした青が今でも気に入っているのです。同じノリで、シャツの裾とかに三角形のパッチでもあててやろうかと。

開発:新選組みたいなだんだらにするとか。

基盤:ていうかあの咳込みおばさん、保健所に通報しましょうかね?

社長:ですが当社の技術的には、やはりQRかなと。遠目にはユニクロみたいなんだけど、近づいてみたらQRだったみたいな。よく低学年の児童とか名札を貼ってるけど、あれはセキュリティ上あまりよろしくない。暗号化して署名してQRにしてプリントするのが良いのではないだろうかとか。

開発:錦織とかフェデラーがあのマークをツケてるとがっかりします。

基盤:昔はアップリケ(Applique)と言ったそうな。

社長:それでQRで衣類に精細プリントするなら、そういうTシャツとか、小紋のようにびっしりQRが書いてあるとかも良いかなと。

社長:QRパッチ、アップリケ、ワッペン、小紋、メモメモ。

開発:commonや点描と通ずるものがあります。

基盤:NHKの日本人のおなまえっみたいな。

開発:え、MC桑子さんになったんですかね?パイロット版?見なくては。

経理:もう3ヶ月テレビの電源抜けてますね。そのおかげなのか、電気代も低値安定。一方でケーブルテレビ料金に8LSUが無駄に流出。

基盤:QRでタトゥーしている人とか居そうですね。

経理:そういえば車検が近いですって自動車やさんからハガキが。

社長:その件は会社とは関係ありません。あー、でもいずれ、社用車が持てると良いですね。

基盤:コロナの特例で車検を猶予してくれると良いですね。

— 2020-0715 SatoxITS

DNSサーバの改訂

基盤:どうも新設した de.its-more.net と us.its-more.net へのアクセスが不安定だと思ったら、DNSの応答のAレコードが2つ返ってました。

基盤:このため、アプリから見るとどっちかのアドレスで行ったり来たりします。

基盤:この応答は、このデフォルトのマッチングルールのためと思われます。

開発:おや。でも7月5日のドメインの一斉引っ越し時に問題は起きてなかったような…

基盤:それは、それらのドメインがこのデフォルトルールに「のみ」マッチしたからだと思います。要するに、xso で取得してこちらにネームサーバを向け変えたドメインについてのAレコードは一切定義されていません。結局全て、デフォルトのアドレスに向けられていた。そもそもの私がDeleGate DNSサーバの仕様を勘違いしていたわけですが。

 投稿者: SATOXITS
ネームサーバ独立記念日

基盤:あ、hosts に 1.2.3.4 * って書いとけば、デフォルトが 1.2.3.4 になりますね。当面はこれで良さそうです。

開発:完全マッチが見つかったらそれ以上探さないという仕様では無いんですね?

社長:うーん、そうだったかな。何にしても、マニュアルに書かなかったってことは、決心が付いてなかったのかな。というか、DNSのオリジンサーバ部分ってほぼ自家用のつもりだったし…

社長:ちょっとソースコードを確認します。ああ、resolvy/reshosts.c の中の、RES_matchLine から呼んでる rexpmatchX でマッチングしてますね。この関数は hosts file と nis のマッチングで呼ばれている… マッチしたらそのさきは探さないというようなコードは無い。だからそういう振る舞いになります。

社長:それにしてもこの reshosts.c というソースファイル、19950817 created で 、CHANGES によるとワイルドカードを入れたのが 9.2.3 20060615です。その後 9.9.2 20090310 でユーザの要望に答えて小さな拡張、9.9.8 20140506 で yp_match にタイムアウトを入れた、となっています。足掛け20年間。青春の思い出ですね。

開発:それはそうと、今回どう対処しましょう。選択肢としては bind あたりに乗り換える。Goでシンプルなのを作る。これは小さなパッケージを作ってくれてる人がいますね。それか、DeleGateに手を入れる。

基盤:このDNSサーバが残すログとか検索カウンターとは、DeleGateの他のサービスに利用できる部分もあるので、DeleGate で行く線が有益な感じがします。

社長:そうですね。これは出身組織の知財なので、、、まあでもそれは調整します。うーん。一番簡単に実現するには。とりえあず “*” という最強ワイルドカードに対するマッチングを抑制できれば良いのかなと思いますね。これを適用するかどうかはドメイン名によるから、名前のフィールドにそういう指示を入れるのが良いでしょう。

社長:いや、ちょっと待った!CHANGESによるとこうです。

9.9.2 090310 new reshost.c: “#!max=N” in hosts-file to limit results

社長:つまり、hosts に #!max=1 って書けば、最初の一つしか結果を返さないのでは。

基盤:なるほど。やってみます。

基盤:大当たり。

開発:解決しちゃいましたね。

基盤:これはこれでとりあえず良いと思います。ただ別件ですが、例えば全ドメイン名に us. というのを頭につけたら、ドメイン名によらず xx.xx.xx.xx になるように出来ると楽なのですが。

社長:hosts に xx.xx.xx.xx us.* って書けばよいかも。

基盤:やってみます。

基盤:大当たり。

開発:けっこう気合を入れていたんですが、気が抜けてしまいました。返す最大レコード数を制限するという回避方法は、DNS/DNS や NIS/DNS の中継ではうまくいくとは限らないですが、ローカルのhostsファイルなら、単に上に書いたのが残るので確実ですね。

社長:DNSのプロキシというかリゾルバは、マッチングの結果でフィルタしたり、複数のソースからの情報を統合するのに便利なんですよね。ミクロなマウントですね。どこから聞かれたらどこを見せるとか。ドメイン名限定ですが、名前の空間を歪めたいという我社の方向性には有用なツールなんだと思います。

社長:午後までかかると思ってたんですが、終わっちゃったんでゆっくり飲んできます。

— 2020-0715 SatoxITS