見出し画像

AZ-303/304おべんきょ

やったこと・お勉強メモ。過程。

  • MS ESIプログラムのトレーニング受講

  • 各サービス、「可用性」や「移行」等のテーマでMS Learnのモジュールをやる

  • 公式ドキュメントやいろんな人のブログを読みこむ

  • そもそも基本的な要素技術の復習もする

  • 知らなかったこと/覚えておきたいことをひたすらにメモしていく

※「★あとでみる」表記が残ってるところは、結局消化せずに試験に突っ込んだところ。

  • 303を1回受けて&304のトレーニングの3日目くらいで気づいたけど、300系の試験は「例外・制約を知る」ことがポイントなのではという印象。

    • でも303も304も3月で廃止っておいおい。。

To earn this certification, complete the following requirements:

Earn the Microsoft Certified: Azure Administrator Associate certification and pass Exam AZ-305, or
Pass Exam AZ-303 and Exam AZ-304 (before they retire on March 31, 2022), or
Pass Exam AZ-303 (before it retires on March 31, 2022) and Exam AZ-305
Please refer to this blog post for more details on certification pathways.

The content of this certification was updated on November 23, 2021. Please download the skills measured documents on the Exam AZ-303 and Exam AZ-304 pages to see what changed.

https://docs.microsoft.com/en-us/learn/certifications/azure-solutions-architect/

→22/3/28記 :AZ-303は671点(2回目)で不合格、AZ-304は710点で合格。いずれにしても認定条件が変わるので、2022年度は305とれるように頑張ります。


About Exam

https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4pCWz

「304と305は似てる」とのこと。by トレーニング講師

  • 下位資格の自分メモおさらい


以下はトレーニングを受講しながらセクション毎にメモ。MS Learnのモジュールをやって間の知識を埋めていく。
-----

  • いろんな設計参照サイトがあるの知らなかった。便利。


Compute

VM

  • トレーニングで貰ったサブスクリプションでRI購入のオペレーションだけでも試そう~っと思ったら、RIを買えるサブスクリプションの種類ってのが存在するのね。知らなかった。

  • EA管理者だけがRIを買えるようになってるらしい。

  • 1回の予約で買ったインスタンスを複数サブスクリプションに割り当てることができる。

  • コスト分析で見れる値に「実際のコスト」と「償却コスト」なるものが存在するらしい。 :実際のコスト=RI総額が買ったタイミングで積算される表示/償却コスト=RI総額が日割りで日次積算される表示。

  • 予約の適用範囲設定というのがあるそうでな。「共有スコープ

共有スコープ - 課金コンテキスト内にある有効なサブスクリプションの一致するリソースに予約割引を適用します。 あるサブスクリプションが別の課金コンテキストに移動された場合、特典はそのサブスクリプションには適用されなくなります。課金コンテキストの他のサブスクリプションには引き続き適用されます。

https://docs.microsoft.com/ja-jp/azure/cost-management-billing/reservations/prepare-buy-reservation#reservation-scoping-options
  • 実際の月々の課金額は、「Azure前払い(年額コミットメント)-RI金額」になる。これがマイナスとなる場合は、その分が課金される。(?)

組織のクレジットには、Azure 前払い (旧称: 年額コミットメント) が含まれています。 Azure 前払いとは、Azure サービスの使用に先立って組織が支払った金額です。 マイクロソフト エンタープライズ契約に Azure 前払いの資金を追加するには、Microsoft アカウント マネージャーまたはリセラーに連絡してください。

https://docs.microsoft.com/ja-jp/azure/cost-management-billing/understand/review-enterprise-agreement-bill
  • コストを見れるもの :Azure Cost Management(今あるリソースの中でどれが高いか), Azure Advisor(今あるリソースに対する節約アドバイス),料金計算ツール(これから使う分の試算)

  • SAとかライセンスの買い方もむずいんだこれ いろいろありすぎるんだわ

  • CAL/MLという概念を初めて知った…

  • LTSC/SACという概念も初めて知った…

  • スポットVMって社内で提供する運用回しきれものなのかしら。やるにしても相談ベースか。

  • 物理レベルで分離したい要件があるならこれか。VNetとかも完全に別になるのかしら? →そもそも作る画面でネットワークとか問われないのでそういうこと。

ていうか作ろうとしたらvCPUクオータ引っかかって何もできないな?w


App Service

  • デプロイソース(コードをどこから持ってくるか)を決める/確認する → ビルドパイプライン(コードのコンパイルとかどうやってやるか)を選ぶ → デプロイメカニズム(実際見せるコンテンツをwwwrootにどう配置するか)を選んでファイルやらなんやらを置く、というのがデプロイの大きな流れ。

なんかつよそうなのでサンドボックスonにして演習やってみたけどGitHub絡むところでよく分からなくなっちゃったのでまたの機会に…(´・ω・`)

  • デプロイスロットはプランstd以上で利用可能。(stdが5, PremiumとIsolatedは20)

  • スロットのスワップ時はダウンタイム無し/トラフィックのリダイレクトもシームレスにやってくれるそう。

  • スワップ時にスロット間で同じにできる設定とできない設定

https://docs.microsoft.com/ja-jp/learn/modules/understand-app-service-deployment-slots/3-app-service-slot-swapping
  • 自動スワップはLinuxではサポートされてない!

  • 別のスロットに一部トラフィックを向けることもできる(x-ms-routing-nameパラメータを使う)

  • 新しいスロットにはコンテンツが何も乗ってない状態で立ち上がってくるんですって!

新しいスロットに設定を複製することはできますが、コンテンツを複製することはできません。 新しいスロットは、常にコンテンツなしで始まります。 Git または別のデプロイ方法を使用して、コンテンツをデプロイする必要があります。 複製操作では、構成が新しいスロットにコピーされます。 設定を複製した後は、2 つのスロットの構成を個別に変更できます。

https://docs.microsoft.com/ja-jp/learn/modules/stage-deploy-app-service-deployment-slots/2-create-deployment-slots
  • Blobにバックアップを吐き出すこともできる

  • スロットをスワップするイメージ

https://docs.microsoft.com/ja-jp/azure/app-service/deploy-best-practices#continuously-deploy-code

  • ネットワーク制御いろいろできるんだねえ…(おぼえられない

  • ARRアフィニティ/スティッキーセッションをonにしていると、同じクライアントの接続は同じインスタンスにルーティングされる(デフォルト)

  • カスタムドメインはStandard以上

  • バックアップ/リストアもStandard以上

  • バックアップ対象のApp Serviceと同じサブスクリプション内にバックアップ保存先となるストレージアカウントが配置されていることが必須/このストレージアカウントにfirewallをくっつけることはできない

  • デフォルトはフルバックアップ

  • 自動スケーリングはStandard以上

  • スケーリングルールが複数あるとき、スケールアウトはどれか1つでも満たしたら実行/スケールインは全てが満たされたら実行される。

  • App ServiceログはWindowsじゃないとBlobに吐き出せない

  • ファイルシステムログについては12h後に勝手に取得無効化される。(アプリのパフォーマンスを低下させないため)

別画面で操作すると↓
オンプレマシンの方でMigrationツールの画面が遷移して、移行先のAzureリソースの情報が選べるようになると。
  • Spring Cloudってなにはじめて聞いた。

最近はJavaだけじゃなくて.NETとかのアプリケーションもSpring Cloud上にデプロイして使えるようになったんですって。

ぜんぜんわからないけどJavaアプリ(特にSpring Boot/Spring Cloudマイクロサービス)をデプロイするならこれもいいよ!って感じか。(適当

  • App Service上のアプリケーションでクライアント証明書を検証する必要がある場合は・・・

    • Production/Isolated planか確認する。

    • クライアント証明書モードを有効にする。

    • エンコードはBase64で。

  • App Serviceに証明書をアップロードしたら、その証明書を使えるのはプランと同じリソースグループ&リージョンのとこ。


Azure Functions

  • サーバーレスなのにステートフルな処理ができるの?!

うーん書いてあることが何も分からない。durable functionを知る前に普通にfunctionsのことを知った方がいい。

  • FunctionsとLogic Appsのすみわけis何? →コネクタ使ってワークフロー組みたいなら/宣言型でやりたいならLogic Apps。でもApplication Insightsでの監視はできない。

  • Functionsの特徴は、ステートレス/イベントドリブン/タイムアウト10分 ※タイムアウトなしで複数の関数の実行を調整できるのがdurable function

  • x-functions-keyをリクエストに組み込むことで、httpリクエストをトリガとする関数に不正なリクエストが送られてきても応答しない(この関数内でしか処理をしない)ようにできる。

  • Functionsの課金は、httpエンドポイントが呼び出されたとき。

↑はvscodeが必要だったので私用PCでやる。 ★あとでみる

  • Functionsプランはみっつ

    • 従量課金プラン :ふつうはこれ

    • Functions Premiumプラン :裏で動くインスタンスが①より強め

    • App Serviceプラン :時間のかかる関数を実行したいけどdurable functionsが使えないとき/常時接続(Always On)にしておきたいとき

↑はPCの容量あいたらやろう ★あとでみる


ACI

  • コンテナグループ--コンテナ

    • 1パブリックIP・1公開ポート・1FQDN/コンテナグループ

    • Nコンテナ/コンテナグループ(Linuxのみ)

  • Dockerの用語いろいろ

  • ACIのいいところ

    • サクッと起動できる

    • VMと同じレベルで分離できる

    • ACIサービス内には最小限のデータしか保存されない

    • CPUコア数とメモリ数を指定できる

    • Filesをマウントしてデータを格納・保存しておける。(Linuxのみ)

      • ※普通、コンテナはステートレス。

    • Windows/Linuxが混在していても同じAPIを使ってスケジュール設定ができる

      • ※複数コンテナでいろいろするならAKS

    • 秒単位で課金なのもあって、「プロセスが完了したらコンテナが停止する」ようにもできる。 with コンテナ再起動ポリシー

      • Always =すべからくいつでも全部再起動する。デフォルト値。

      • Never =再起動しない。

      • OnFailure =プロセスが失敗した時だけ再起動する。

  • az container attachでコンテナのイベントとログが見れる。az container logでログが見れる(起動イベントは見れない)。


AKS

  • kubernetesとかも謎

  • マイクロサービス化した一連のワークロードを複数のコンテナで動かすときに、このコンテナ達を管理するのに使うのがコンテナオーケストレータ。そしてそのひとつがk8s。

  • 1~メイン(コントロール)プレーン・1~ワーカーノード/k8sクラスタ

  • 1cluster作るとデフォルトで2node pool(node)が作られる。master nodeは無料。


Service Fabric

  • Service FabricはKubernetesではないコンテナオーケストレータ。MSサービスの裏側で動いていた仕組みなんですって。

専用のSDKを使わないといけないので、完全にAzure上で新規構築するケースにのみ有用なんですって。
(Service FabricのLearnモジュールなんもなくて草)


Batch

  • Batchはでっかい処理を並列でやらせたい時に使うもの。

  • コンポーネントのイメージとして分かりやすかったのはこれ


VMWare Solution

  • VMWareSolutionはクソ高いという結論

あとでやる★


Others

  • 各種コンピューティングサービスの選び方

リフトアンドシフト(ただクラウドに移すだけ) →App Service, VM, AKS, etc.
クラウドで新規構築 →App Service, VM, AKS, Batch, Functions, ACI, Service Fabric, etc.

  • マイクロサービスについて

使えるやつらはAKS, Service Fabric, ACI, Functionsあたり。

  • アプローチは場合によって考えた方がいいですよという話

  • AKS vs ACI →コンテナのオーケストレーションが必要な場合はAKS

※クラスタ上のノードで急激に増減するユースケースでは、AKSは向かない →追加のポッドを仮想ノード(ACI)上に建てることができる

  • App Service for Containers =App Service上でコンテナが使える

  • Azure Automation State Configuration =PowerShell DSCをAzure上で使うサービス。Azure内のプルサーバからVM/物理マシンに定義した構成をプッシュできる。※使い方としてGPOとのすみわけがわからんけど、「GPOを使わなくていい」ってことならADも消せるしそれはそれでよさそう

    • PowerShell DSC =こうあるべきという状態だけが記述されているスクリプト。宣言型(冪等ではない)。

    • Local Configuration Manager(LCM) =各ノードにいて、プルサーバからポーリングされる。必要に応じて構成を更新する。

  • VMの数が多いときはプルモードの方がいいんだって。

  • GPOとかDSCとかSCCMとか・・・


Network

Subnet/VNet

  • サブネットにくっつけられるのはNSG,ルートテーブル。(VNetにはくっつけられない)

  • NICにくっつけられるのはNSG。

  • 専用サブネットが必要になるサービスいろいろ

https://kogelog.com/2021/08/24/20210824-01/

  • リージョン内L4LBはAzure LB, リージョン内L7LBはApplication Gateway, リージョン間L7LBはFrontDoor, リージョン間LB(プロトコル非依存)はTraffic Manager

  • セグメンテーションの考え方


Azure DNS

  • AzureDNSの168.63.129.16について…

https://docs.microsoft.com/ja-jp/azure/virtual-network/what-is-ip-address-168-63-129-16

  • 外部/内部DNSどっちにもなれはするけど、、、

  • IP Anycast

https://jprs.jp/related-info/guide/005.pdf

https://www.janog.gr.jp/meeting/janog34/doc/janog34-acast-matsuzaki-1.pdf

https://jprs.jp/tech/material/rfc/RFC3258-ja.txt

  • DNSSEC・ゾーン転送・ドメイン名購入は非対応、デュアルスタック。

  • Packet Monitor/Pktmon.exeなる便利ツールがあるらしい。


NSG

  • NSGは戻り通信をわざわざ書かなくていい。(ステートフル)

  • NSGが付けられるのはsubnetとNIC。概念としてはsubnetのほうがNICよりも外側にあるイメージ。

  • inbound ruleのデフォルトは"src:VNET,dst:VNET,allow"、"src:LB,dst:LB,allow"と暗黙のdeny

  • outbound ruleのデフォルトは"src:VNET,dst:VNET,allow"と"dst:internet,allow"と暗黙のdeny

  • サービスエンドポイントを使う時は、サービスへのパブリックアクセスをオフにする→VNETにサービスエンドポイントを追加する。

  • うださんの強制トンネリングの記事


Application Gateway

  • AppGWは色々と細かいルーティングもできるんですって。(パスベースなど)

  • AppGW=WAF+L7LB・・・・っという解釈でいいのだろうか。

  • https->httpなリダイレクトもできる。httpヘッダも書き換えられる。カスタムエラーページも作れる。E2E暗号化もできる。オートスケールもできる。

  • 正常性プローブ=バックエンドのサーバとやるヘルスチェック。状態コードで判別。

  • 専用サブネットが必要。

  • E2E暗号化にも使えると。(AppGWの外側/内側とで別のTLSセッションになる) ※5タプルのAzureLBだと、TLSセッションは一通で同じ。

  • v2SKUだと、オートスケール/ゾーン上長、静的VIP、ヘッダ書き換え、KeyVault統合などなど使えるって。

  • リスナーのフロントエンドポート :http→クライアントとAppGW間のトラフィックが暗号化、https→TLS終端/E2E暗号化(リスナーに証明書を追加する必要あり)

  • Front Doorもありますね。L7GLBでAnycastで。AppGWはGlobalサービスじゃないとこ。

  • Front Door Std(Premium)=GW+CDN(+WAF)

  • SSLオフロードはApp GWでもFront Doorでも使える。

  • バックエンドとも暗号化通信をするときは、AppGWにも証明書を入れてあげないとですね。ルーティング規則のポートを443にする設定。

  • リスナー=指定のフロントエンドポートでGWへの受信トラフィックを待ってる子。AppGWのルーティング規則に則って、バックエンドに指定されたポートでトラフィックをルーティングする。あと指定された証明書で復号化する。バックエンドとの通信がhttpsなら、バックエンドのクライアント証明書を使ってまた暗号化される。

  • Key Vaultに証明書置いて使うときは、App GWと同じサブスクリプションにKVを置かないとダメって。

警告
現在、Azure Application Gateway でサポートされているのは、Application Gateway リソースと同じサブスクリプション内にある Key Vault アカウントのみです。 Application Gateway とは異なるサブスクリプションの Key Vault を選択すると、エラーが発生します。

https://docs.microsoft.com/ja-jp/azure/application-gateway/key-vault-certs


VNetPeering

  • VNetピアリングをしなきゃいけないケース/しなくていいケースがよくわかってない ★

  • VNetGWを置いてゲートウェイ転送を許可する&すべてのVNetでリモートゲートウェイの使用を許可すると、Spokeになってるネットワークにも推移的に接続できる。

  • Peeringは双方向で設定が必要。

  • 「グローバルピアリングを経由して、BasicロードバランサーのフロントエンドIP経由で、背後のリソースに接続することができない」って制約絶対忘れそう。(LBをStandardにする必要あり/LB前段のリソースで可用性ゾーンに対応してるSKUを選んでもできるかも。)

※しかも「裏で実はBasicが動いてます」なケースもあるの罠じゃん。

  • デフォルトでは[セッションの永続化]はオフ(どのトラフィックも等しく分散される)。

  • 内部LBと負荷分散するVMは同じVNetに存在する必要がある。

負荷分散使い分け
  • LBのSKUは変更できない。

  • Traffic Managerプロファイルは入れ子にできる。


Private link

  • あと、そういう時はグローバルピアリングじゃなくてPrivate link使うんでもいい。

  • VNet統合がかなりわからない・・・★


Express Route

  • オンプレと繋ぎたい時はER。…それ以上何を把握してればよいのやら?

  • 接続方法がいろいろあるけど違いがわかんない ★

  • ERの代替ソリューション :①S2SVPN(VPN GW/Private Endpoint)、②P2SVPN(VPN Client/Service Endpoint)

  • P2SVPNのルーティングについていろいろ

  • MS DC--<Regional Network Gateway>--MSEE(Microsoft Enterprise Edge router)--<Express Route回線>--PE(Partner Edge router):アット東京やTOKAI等--<VPN/広域Ether>--CE(Customer Edge router)

  • ER Global Reachを有効にすると、地理的に離れたそれぞれのローカルDC(それぞれER接続有)間の接続もMSバックボーンを通るようにできる。

  • ER Direct=プロバイダを介さずMS Edgeと直接Peeringできる。

  • ERでしゃべるBGPについていろいろ

  • ER上でIPsec張る構成もとれるよ。

  • ERを個人で試してみたい時は、OCIとつなぐのをやってみるのがいいかも?と。

どちゃくわしい


VPN Gateway

  • VPNGWのSKUいろいろ

    • *AZ :ゾーン冗長対応

    • (Gen1)Gw1/2/3 :スループットは650M/1G/1.25Gbps

    • (Gen2)Gw2/3/4/5 :スループットは1.25G/2.5G/5G/10Gbps

    • Gen1⇔2はできない。

    • BasicだけがポリシーベースVPNを実装できるけど、BGPは喋れない。

    • S2SVPNtunnelを100以上張りたいときは、VPNGWじゃなくてVirtual WAN。

  • VPNGWもBGP喋るよ。そうであれ。

  • デフォルトでact/stbになるよう2つのインスタンスが作成される。

  • Std SKUのパブリックIPはデフォルトでゾーン冗長。

  • 168.63.129.16はあくまでAzure内リソースがAzure内で名前解決をするためのrecursiveな問い合わせをするfull-service resolverでしかないと解釈・・

  • あんまり分かってなかったけど、Azureはデフォルトで設定されてるルートがなんか多めらしい。なので、UDRをちゃんと書かないとねと。

  • VNetGWのルート伝達=リモートNWをルート集約する的なやつですな。


Migration

Azure Migrate

  • 「機能の変遷を追うと理解深まるよ~」とのこと。

ホストに1つMigrate Appliance(ovaファイル)を

↑120分以上かかるかもって。 ★

  • 移行対象を利用中でもレプリケーションできるんですって。


Azure Data Migration Service

  • 無停止移行もものによっちゃ可能。

あとでやる★


AzCopy

  • robocopyのAzure版。差分同期が可。


Storage Explorer

  • GUIでやりたいならこれ

※sync(同期)を行うためにはSASトークンを使う必要がある

https://github.com/hiryamada/notes/blob/main/AZ-304/mod03-03-azcopy.md


Azure Import/Export(Data Box)

  • 物理ディスクを使ったFiles/Blobへの大量のデータ移動はこれ。

    • ①ジャーナルファイルdriveset.csv/dataset.csvを作ってディスクに移す

    • ②インポートジョブを作る

    • ③ディスクを物理送付


Azure内のリソース移動

  • 別のサブスクリプションにVMを移す方法

    • リソースグループブレードから対象のVMを選んで[リソースの移動]

    • Move-AzResourceコマンド

    • az resource moveコマンド

  • そもそも移動できるリソース

  • Azure Stack Hubを使っていたら移動はできない。

  • Azure Backupを使っているVMを別のリソースグループ/サブスクリプションに移動する方法

    • ①バックアップを止める

    • ②復元ポイントコレクション(スナップショット)をコンテナから消す

    • ③VMを移す

    • ④バックアップを再構成する

  • Azure Recovery Serviceコンテナを別のリソースグループ/サブスクリプションに移動するのは割とサクッとできる。けど後でバックアップの再構成は色々やんないとっぽい。

  • public IP Std SKUに関連付けられているVPNGWは移動できない。


ID Management, Authentication

ADDS

  • パスワードライトバック機能をonにしておけばオンプレAD<->AADとの同期は両方向で行われる。ライセンスはP1以上が必要。

    • 「同期:オンプレAD->AAD、ライトバック:AAD->オンプレAD、この両方が実現する」と言う意味で"両方向"。

ディシジョンツリーいいね。

図いいね。

  • パスワードハッシュ同期(PHS) :パスワードのハッシュ値をAADで比較検証。AAD Premium P2ライセンスが必要。

  • パススルー認証(PTA) :オンプレADDSで検証→AADで比較検証。

  • フェデレーション統合(Fed) :オンプレADFSで検証。sSSOと組み合わせて実装できない。


AAD


基本/先進認証、多要素認証

  • 基本認証の止め方など

  • 多要素認証

  • AADでセキュリティ強化、いろいろ

あとでやる★

(ID関連は特に、それぞれのサービスの特徴というよりは「使い分け」を問われている感じがするなあ…)

あとでみる★

あとでやる★


ハイブリッドID

  • 認証方式いろいろ(303の時もけっこう細かく聞かれたな~)

  • AADDS =ADDS on Azure!Azure上のVMをドメイン参加させられる。でも機能が色々絞られている。


sSSO

  • フェデレーション方式の認証だとADFSによるSSOを利用するので、AAD(C)のsSSOは使えない。

  • ADFSを使わずにPCをAD/AAD Joinさせて、PCにログインしたらその先のサービスもSSOできるというやつ。AADCで有効にする。


B2B collaboration, AADB2C

あとでやる★

あとでやる★


Governance, Risk, Compliance

RBACでの管理

  • 今こういろんな人にcontibutorを配る運用してるけどあれどうかと思うんだよなぁ…もうちょっとなんかあるんよ…

  • 「Azureロール」=Azureリソースへのロール、「AADロール」=これら全てを束ねるAADへのロール。

  • Azureロールの強い順 :所有者(他の人に権限を付けられる)>共同作成者>閲覧者

  • 「グローバル管理者」はデフォルトだとAzureリソースへのアクセス権は無し。 昇格すると「ユーザアクセス管理者」になれて、Azureリソースへのアクセス権を他の人に付けられる。

  • カスタムロールは管理グループを付与対象スコープにできない。(preview)

  • Azure Blueprintsの裏にはCosmosDBが動いてるんですって。BPが宣言型・半構造化データだからかね。

    • BP:何をデプロイする必要があるかを定義してる/何がデプロイされたかを見てる

    • BPの中でやる定義のひとつにPolicyを含むこともできる!

  • ポリシー定義×N(N>=1)=イニシアティブ定義 要はポリシー群。これをリソースや管理グループに当てる。


Governance

あとでやる★

  • ガバナンスを効かせる手段はAzure Policy, Azure Blueprints

あとでやる★

・Policyは管理グループに当てる、BlueprintはPolicy等をある程度パッケージ化したものをサブスクリプションに当てる。

  • PIM :P2ライセンスが必要。

    • JITとかできるやつ。

  • AADアクセスレビュー :P2ライセンス&グローバル管理者or特権ロール管理者ロールが必要。


Database

  • いろいろあるけど選び方

  • DBの世界のACID

    • Atomicity/原子性 :トランザクションが必ず1回だけ実行され、全て完了or完了していない状態である

    • Consistency/整合性 :トランザクションの実行前後でデータの整合性がとれている

    • Isolation/分離性 :あるトランザクションが別のトランザクションの影響を受けない

    • Durability/持続性 :トランザクションによって行われた変更がシステムに永続的に保存される


relational DB

  • Azure SQL DB

    • Azure Data Migration Serviceを使うと、既存のSQL Server DBを最小限のダウンタイムで移行できる。

  • Azure SQL Managed Instance

    • Azure SQL DBより機能が多め。

  • Azure DB for MySQL

    • Azure Data Migration Serviceを使うと、既存のSQL Server DBを最小限のダウンタイムで移行できる。

    • ポイントインタイムリストア機能により、35days前の状態に戻せる。

  • Azure DB for PostgreSQL

    • 2つのデプロイオプション :単一サーバー(必要な時は垂直スケーリングする)/ハイパースケール(複数のマシンでクエリを水平スケーリングできる。

  • Azure DB for MariaDB


KeyValue

  • Cosmos DB

  • Azure Table Storage

  • Azure Cache for Redis


DocumentDB

  • Cosmos DB(MongoDB API)


GraphDB

  • Cosmos DB(Gremlin API)

SQLくわしく
あとでやる★


encryption

DBのどこをどう暗号化するかという選択肢がクソほどある。

  • Azure SQL DB等は、デフォルトでデータ暗号化がされてはいる(TDE)。

  • 経路暗号化もできる(「負荷が上がるからどうしてもhttpで」という要件でオフにするケースもあるんだとか。)

このへん整理せんと あとでみる★


  • このラボではやらないけどAAD認証も組めるのね。

Defender for Cloud、無料版でもまあできることはあるとのことで有効化してみる。でも最初チュートリアル的な画面から始まってて気づいたら有料版が有効化されてておおなるほどっと。[管理]>[環境設定]で対象サブスクリプションとかリソースを選んでDefenderプランを選ぶ。

あとでやる★

  • 「データベース照合順序」が作るときにグレーアウトされてこれ何ってなったけど、まあなんか文字コードとソート順が決まってるものってことですね。

おや、はじかれた。DB作るときにIP許可するをonにしたと思うんだが。
許可して進む。
CloudShellのVMで.NETのアプリを立ち上げて(同じようにクエリ叩かせて)ok
  • 今回はPortalから取れる接続文字列をアプリにハードコーディングしてるけど、KeyVaultのシークレットにDB接続文字列情報を組み込んで、シークレットをハードコーディングするとセキュア。


Storage

Blob

  • アクセス層の違い

  • リハイドレートの制限 :archive->hot/cool層は同一ストレージアカウント内でのみok

  • ブロックblob/ページblob/追加blobの3種類がありますよという話

  • 不変ポリシーを設定すると、blobのストレージアカウントorコンテナレベルで読み取り専用にしておける。


Files

  • アクセス層の違い
    githubにまとめよ★

  • 共有スナップショットは増分バックアップ。

  • File Syncを実装すると、Azure Backupによってオンプレのデータがバックアップされる。

    • オンプレサーバにFile Syncエージェントをインストールして、Azure Portal上でもそのサーバを登録すると。


Data Platform

「どの機能を担えるサービスか」が色々違うんですって。


取り込み

  • Azure Event Hubs

後でやる★


  • Azure IoT Hub

あとでやる★


抽出・変換・読み込み

  • Azure Data Factory

後でやる★


蓄積

  • ストレージアカウントでもいいけど。

  • Azure Cosmos DB

  • Azure Data Lake Storage Gen2

あとでやる★


分析 for Data Scientist

  • Azure HD Insight

あとでやる★

  • Azure Data bricks

後でやる★


  • Azure Synapse Analytics

あとでやる★


分析 for EndUser

  • PowerBI


分類・機密データの検出

  • Azure Purview

後でやる★


他組織とのデータ共有

  • Azure Data Share
    あとでやる★


Logging

monitoring(application)

  • Application Insights(Azure Monitorの一機能)

Application Insights: Application Insights では、クラウドとオンプレミスのどちらにホストされているかにかかわらず、Web アプリケーションの可用性、パフォーマンス、使用状況が監視されます。 Azure Monitor の強力なデータ分析プラットフォームを利用すれば、アプリケーションの運用に関する詳しい分析情報が得られます。 ユーザーからのレポートを待たずにエラーを診断することが可能です。

https://docs.microsoft.com/ja-jp/learn/modules/monitor-app-performance/2-azure-monitor-overview
  • すごいねいろいろみれるじゃん

Application Insights は、開発チーム用のツールであり、アプリのパフォーマンスや使用状況を把握できるように支援します。 以下を監視します。

要求レート、応答時間、およびエラー率: 最も人気のあるページがどの時間帯にどの場所のユーザーからアクセスされているかを調べます。 最もパフォーマンスの高いページを確認します。 要求が多いときに、応答時間と失敗率が高くなる場合は、おそらくリソースに問題があります。
依存率、応答時間、およびエラー率: 外部サービスによって応答が遅くなっているかどうかを調べます。
例外: 集計された統計を分析します。または特定のインスタンスを選択し、スタック トレースと関連する要求を調べます。 サーバーとブラウザーの両方の例外が報告されます。
ページ ビューと読み込みのパフォーマンス: ユーザーのブラウザーから報告されます。
Web ページからの AJAX 呼び出し: レート、応答時間、およびエラー率。
ユーザー数とセッション数
Windows または Linux サーバー コンピューターの CPU、メモリ、ネットワーク使用率などの パフォーマンス カウンター
Docker または Azure の ホスト診断
アプリの 診断トレース ログ: これにより、トレース イベントを要求に関連付けることができます。
販売された品目や勝利したゲームなどのビジネス イベントを追跡するためにクライアントまたはサーバーのコード内に書き込んだ カスタム イベントとメトリック

https://docs.microsoft.com/ja-jp/learn/modules/monitor-app-performance/3-application-insights-overview
  • 可用性テスト

  1. URL pingテスト…エンドポイントの応答確認

  2. 標準テスト…証明書有効性、http request、カスタムヘッダなどの確認(preview)

  3. カスタムTrackAvailabilityテスト…TrackAvailability()メソッドで取れる結果の確認

実はこれをやる前日にAppInsightのインスタンスをなぜかEastAsiaに建てており、ここで有効化して取り込む先を指定したら"WebAppsの場所と違う!"っとご丁寧に注意されたので直してきた。

(C#のコード修正がミスったっぽくて途中。)★


monitoring(compute)

  • VM Insights(Azure Monitorの一機能)

VM Insights: VM Insights では、Azure Virtual Machines (VM) の大規模な監視を行います。 Windows VM と Linux VM のパフォーマンスと正常性が分析され、そのさまざまなプロセス、そして相互に関連し合う外部プロセスへの依存関係が特定されます。

https://docs.microsoft.com/ja-jp/learn/modules/monitor-app-performance/2-azure-monitor-overview
  • Azure MonitorのContainer Insights

Container Insights: Container Insights では、Azure Kubernetes Service (AKS) と Azure Container Instances でホストされているマネージド Kubernetes クラスターにデプロイされたコンテナー ワークロードのパフォーマンスを監視します。 Kubernetes で使用可能なコントローラー、ノード、およびコンテナーから Metrics API 経由でメトリックを収集することにより、パフォーマンスを可視化します。 コンテナーのログも収集されます。

https://docs.microsoft.com/ja-jp/learn/modules/monitor-app-performance/2-azure-monitor-overview


monitoring(network)

  • Network Watcher

あとでやる★


Azure Monitor

  • 1ルールにつき条件は1個!


Log Analytics

  • HeartBeat/Syslog/event

  • Monitorログはテーブルに整理される。


Application Insights

↑で無駄に触れてるけどこっちに何かをまとめておいたほうがよければあとで書く。


Microsoft Defender for Cloud

SQLのところで無駄に触れてるけどこっちに何かをまとめておいたほうがよければあとで書く。


Microsoft Sentinel

あとでやる★

https://docs.microsoft.com/ja-jp/learn/modules/azure-sentinel-deploy-configure/


Backup, Recovery

  • エクスポネンシャルバックオフということば

  • 回復性を高めるための各種ソリューション

あとでよむ★


  • 可用性セット、可用性ゾーンについてはAZ-900の時のnoteを復習。

ちょっとあんまり聞きなれない言葉がいっぱい

Hyper-V VMで可用性を高める方法

  • ホストクラスタリング

  • ゲストクラスタリング

  • VM内でNLBの使用

なにこれ!

  • SQL ServerのHADR機能いろいろ

    • Always On フェールオーバークラスタインスタンス :インスタンス単位のDR。クラスタリングされたノードのひとつが完全停止すると他のノードが起動してくる。

    • Always On 可用性グループ :DB単位のDR

    • ログ配布 :DB単位のDR

  • 信頼性を高めるためのソリューションいろいろ

  • VMSS =VMの自動スケーリンググループ。

  • スケーリングした時にVMの中に入ってるアプリケーションを更新したりもできる。


Design


演習1-タスク1-2のエラー

Parameter Password has been removed, customized password is not supported anymore, server assigns secret text when creation

https://docs.microsoft.com/en-us/powershell/azure/azps-msgraph-migration-changes?view=azps-7.2.0#new-azadapplication

ほう…そもそもパスワードベースのがもう無理やんけ。しょうがないからGUIで作った。

タスク1-2~1-4を省略。
演習2-タスク1-2 無駄にloganaを有効にしてみる。

outlookにサインインができない。いったんとめ。


Others

QnA Maker

  • bot作成ツールみっつ

    • Power Virtual Agents :会話形式で動くchatbotが作れる。GUI。

    • QnA Maker :自然言語処理を使用して会話ができるchatbotが作れる。

    • Bot Framework Composer, Azure Bot Service :すてきなIDE。ビジュアルデザイナー有。


この記事が気に入ったらサポートをしてみませんか?