FROM ME TO YOU

oh my bizarre life !!

Microsoft Azureの冗長性についてまとめてみる

仕事で少しずつAzureを利用する機会が増えてきました。 とはいえ僕の仕事の範囲ではかなり小規模な利用にとどまるので、構成を悩むほどの規模ではないのですが。

前から気になっていた冗長性について自分なりにとりまとめ。 この辺りの情報はちょっとググれば出てきますが、まとめないと忘れてしまうので…

(下記の情報は執筆時点の情報です。古くなっている場合があるのでご注意下さい)

リージョンやリージョンペア、可能性ゾーンについて

名前 英語 説明
地域(ジオ) Geography (Geo) 少なくとも 1 つの Azure リージョンを含む世界の定義済みの地域(日本、北米など)
リージョン Region geo に含まれる領域で、1つ以上のデータセンターが含まれる |東日本、西日本など
リージョンペア Regional Pair 同じgeo に含まれるリージョンで、ペアになっているリージョン。Azureの計画メンテナンスやアップデートなどは同時に実行されない(日本なら東日本と西日本)
可用性ゾーン Availability Zones 一つのリージョン内で、電源・冷却手段・ネットワークが独立したデータセンター。最低 3 つのゾーンが存在している (一部のリージョンのみ)
可用性セット Availability Set 複数のVMをグループ化できる。障害ドメインと更新ドメインがあり、それぞれのインスタンスに配置することで単一障害点を減らす。可用性ゾーンとの違いは、別のリージョン間で可用性セットのレプリカは非推奨となっている。

可用性セットがわかりにくい…

冗長オプションについて

名前 英語 説明
ローカル冗長ストレージ(LRS) Local Redundant Storage 同一リージョン内の同一ストレージ内にある3つのレプリカ。3本でRAID1のイメージ
ゾーン冗長ストレージ(ZRS) Zone Redundant Storage 同一リージョン内の可能性ゾーン間でレプリカを構築。可用性ゾーンが利用できるリージョンのみ
Geo冗長ストレージ(GRS) Geo Redundant Storage リージョンペアになっているリージョン間でレプリカを構築
読み取りアクセスGeo冗長ストレージ(RA-GRS) Read Access GRS GRSはフェールオーバーにダウンタイム(1時間程度?)を必要とするが、RA-GRSなら読み込みのみであればリアルタイムにフェールオーバーできる

GRSやRA-GRSのフェールオーバーは非同期で行われるため、最終同期時刻等を確認する必要がある。 この辺りの注意については別途調査してとりまとめたい。

Redundantって何て読むの… リダンダントゥ?

Paasサービスの冗長性

SQL Database

Web Apps

  • 調査中…

参考リンク

docs.microsoft.com

blogs.msdn.microsoft.com

docs.microsoft.com

docs.microsoft.com

cloud.nissho-ele.co.jp

docs.microsoft.com

docs.microsoft.com

西尾維新「余物語」を読了

余物語 (講談社BOX)

余物語 (講談社BOX)

斧乃木余接とも、思えば長い付き合いになった”

老倉育児童虐待の専門家に仕立て上げられた阿良々木暦は、家住准教授から相談を持ち掛けられる。 我が子を檻に入れたまま三日も家に帰っていないという。わけあって斧乃木余接と現場に急行した彼が、そこで見たものは。

これぞ現代の怪異! 怪異! 怪異!

物語シリーズ25冊目。大学生になった阿良々木君を描く「モンスターシーズン」の3冊目。最新刊の余物語を読了しました。

「だから部屋で檻に閉じ込めているあの子が、今どんなことになっているのか皆目見当がつかないの」という依頼から始まる、不思議で、辛くて、悲しい「家族」を描いた物語です。

前回の「宵物語」も家庭内虐待がメインテーマになっており、重たいテーマが続いているように思いましたが、考えてみると物語シリーズに登場する家庭は順風満帆な家庭はほとんど存在せず、ほぼ全てに問題を抱えている家庭環境なんですよね。

  • 羽川家…もはや家族としてなりたっていない
  • 八九寺(綱出)家…愛娘を事故で亡くす
  • 神原家…両親を事故で亡くす
  • 千石家…愛情という名の虐待に近い
  • 老倉家…家庭内暴力からの崩壊済み
  • その他の人々…みな天涯孤独の身

唯一、阿良々木家が家族全員揃ってはいるものの、いまだに阿良々木君と父親は不仲なようですし、順風満帆とは言いづらい家庭のようです。

物語シリーズ第一作目である「ひたぎクラブ」も母親の宗教への倒錯からくる家庭不和がきっかけですし、物語シリーズはある意味「家族」の物語なんだなと気付かされました。

今回の「余物語」も依頼者である「家住家」をめぐる家庭内の物語ですが、「宵物語」の「紅口家」に勝るとも劣らない、重くて暗くて怪異な物語でしたね。 読んでて少しつらくなる時もありました。

元々、愚物語以降は阿良々木君が吸血鬼に変化できないという制約があるので、「するがモンキー」や「つきひフェニックス」の時のようなバトルアクションは難しいですし、謎解きメインになるのも仕方のないところなのですが・・・

とはいえ、せっかくの「怪異」を取り扱う「物語シリーズ」なので、以前のようなバチバチの怪異譚も楽しみにしたいところです。(スーサイドマスターの登場回数が増えそうなのでそこは期待しています)

僕の愛しの羽川さんも登場したものの、高校卒業以降の羽川さんは「距離感」が以前とは異なるので僕も少し戸惑っているところ。ここはまだうまく言語化できていません。 結物語に繋がる伏線もいくつかあったので、そこは素直に楽しめましたね。

この「余物語」で西尾維新の刊行が99冊らしいです。 7月には100冊目が発売されるとのことで、どんな作品になるのか今から楽しみでなりません。

「業務システムデザイン勉強会」に参加してきた

マネーフォワード京都さんで開催された「業務システムデザイン勉強会」に参加してきました。

connpass.com

「デザイン」の勉強会の参加は(というよりデザイナーさんの話を聞く機会すら)初めてだったので、とても勉強になりました。 忘れないうちに自分の考えをまとめておこうかなと思います。

セッション

自分なりの要約なので、本質と違うよ!というご意見もあるかもしれませんが。 情報量が多すぎて要約できない。発表者の方のスライドをもう一回見たい…

みやすいデザインにするための基礎知識

  • @883_issanさん
  • 明度や彩度といった色・配色について。見やすさとは。

社内システムにおける「使いやすさ」の重要性

  • @furusin_oriver さん
  • システムの操作性、レスポンスの悪さにおける人的コストの損失問題。

アクセシビリティの改善について

  • ヌーラボ 中川さん
  • 視覚や色覚にハンディキャップのある方へのユーザービリティとその施策。

エンジニアのための情報設計

視覚言語とUI

  • @takuwologさん
  • CSSのプロパティ一つ一つに意味を持たせる(言語化
  • ボーダーライン一つに対しても言語化できるようなデザイン・ビジョンを持つ。

セッションを聞いて感じたこと

「デザイン」と聞くと、配色をどうするか、どんなデザインのアイコンにするか、といった「見た目」の話だけでなく、「業務をデザインする」「システム構成をどうデザインするか」という広義な意味も重要なのだなと感じました。

今日のセッションはシステム開発・運用において様々なセクションでの重要な知見が集まっており、セッション毎に独立した話ではなく、それぞれが繋がっている印象を受けました。

…うまく文章にできないのでざっくり表にしてみた。

f:id:fmty_keita:20190419003630p:plain

もちろん上の表はあくまで僕が受けた印象をセクション分けしただけで、それぞれのセッションはもっと広い内容に言及されていましたよ。

反省

勢いで書いてるので全くまとまってなくてウケる。文章書けなくなってるなぁ。

C#もくもく勉強会 (第一回)をやってきました

今日はフォロワーさん達と大阪でC#のもくもく勉強会をしてきました。

普段は一人でコツコツ独学しているだけなので、エンジニアさんに直接お教えてもらえるお話できる機会はとても貴重で、短い時間でしたが一人でやっている何倍も学べた気がします。

勉強会の目的とか

C#を利用したアプリ開発もくもく会。一人で開発してもいいし、チームで開発してもいい。基本はオンライン上でのやりとりだけど、たまに会って進捗確認とかできればいいなという感じ。 もしこの記事をみて興味を持たれた方がおられたらお声がけくださいー。

参加者さんへ謝辞

ふるしんさんにはMVVMの基礎を教えて頂いたり、C#Androidアプリの考え方の違いなど、興味深いお話を聞くことができました。多謝。

ぽんこつ氏にはAzureDevOpsやVisualStudioのセットアップをご指導頂いた。今後も色々と教えて頂くことも多いので、何かお返し(技術で)できるようになりたい。

みそまいさんとは開発環境のセットアップという点では同じくらいの知識レベルだったので一緒に進められて嬉しかった。 作るものも近しいみたいなので、色々と学びながら進めていきたいです。

場所

大阪でC#をメインに開発されているディーバさんのミーティグ用スペースをお借りしました! 淀屋橋駅から徒歩5分くらいなので立地も最高でした。

blog.divakk.co.jp

やったこと

今日は環境のセットアップで終わってしまった感…

  • AzureDevOpsのセットアップとブランチ作成
  • MVVMについて概要
  • 各自の作りたいものと今後の進め方の認識あわせ

僕の今後やること

  • WPFで1テーブルのデータをWPFCRUDできるアプリを作成する
  • EntityFrameworkでDB接続する
  • Prismを利用してMVVMで構築
  • テーブルをDatagridViewで一覧表示する
  • Update、Insert、Deleteの処理を作成する

今後の予定

AzureDevOpsのコミットとSlackでやりとりしていくのを基本として、月に1回くらいオフラインの場をもって進捗確認とかできるといいなと思っています

写真とか

f:id:fmty_keita:20181227001754j:plainf:id:fmty_keita:20181227001807j:plainf:id:fmty_keita:20181227001820j:plain

Entity Frameworkを試す

ずっと使っていたLINQ To SQLが非推奨になったらしいので前から気になってたEntity Frameworkを試してみた。

まずはコンソールアプリケーションでテスト。 とりあえずLocalDBに自動的にテーブルが生成されてデータの読み書きができるのは確認できた。

明日は普通のSQLServerへの接続方法を調べてみる。

    class Program
    {
        static void Main(string[] args)
        {
            using (var EF = new EFEduDBContext())
            {
                EF.Companies.Add(new Company
                {
                    CompanyName = "ABCOffice"
                });

                EF.SaveChanges();

                foreach(var n in EF.Companies)
                {
                    Console.WriteLine($"{n.CompanyName}");
                }

            }
        }
    }
    class EFEduDBContext : DbContext
    {
        public DbSet<Company> Companies { get; set; }
    }

    class Company
    {
        public int CompanyId { get; set; }
        public string CompanyName { get; set; }
    }

f:id:fmty_keita:20181207012603p:plain

www.keicode.com