Microsoftが提供するAzureのセミナ「Microsoft Azure Virtual Training Day」に参加したので、その内容を備忘録としてメモしておきます。Azure(というよりはクラウド全般)を最近使い始めた自分のような人間にはちょうどいい感じで、基礎的なことを網羅しつつ、気を付けないといけないポイントを押さえるような内容だったと思います。
ハンズオンによる演習付きのやつもあったようですが、僕が参加したのは演習がない半日2日間のタイプでした。
基本的、Azure資格のAZ-900のMicrosoftの解説資料をMSの社員の方が解説してくださるという流れです。興味のある方はそちらもどうぞ。
1日目
クラウドの概念について理解する | 15~20% |
コアAzureサービスを理解する | 30~35% |
セキュリティ、プライバシー、コンプライアンス、信頼性について理解する | 30~35% |
Azureの価格体系とサポートについて理解する | 25~30% |
↑AZ-900での配点
クラウドの概念
クラウドの利点
クラウドの持つ利点は以下の5つ。
- 高可用性(アベイラビリティ)・・・いつでも使える
- スケーラビリティ・・・どこからでも、どこのサーバーも使える
- 弾力性・・・大きさを変えられる
- 俊敏性・・・即座位に変更が
- フォールトトレランス・・・予備を用意しておいて一部故障しても大丈夫
それ以外の利点
規模の経済(クラウドベンダーが一括して安くサーバーを調達・管理できる)、基本的支出(CapEx)がほぼない、運営支出(OpEx)だけ支払えばよいので初期投資を節約できる。
クラウドの種類
- パブリッククラウド・・・AWSとかMSとかgoogleが公に提供している誰でも使えるクラウド(OpeExのみ)←簡単に拡張できて、使わなくなったら縮小できるのが最大の利点、さらに物理的なサーバーの保守もやってくれる。
- プライベートクラウド・・・どこかのベンダーのデータセンターに専用のサーバーを用意してもらう(そこそこのCapExが必要、ハードの種類やセキュリティを指定することもできる)。オンプレも含む。Azure互換のオンプレ環境を提供するAzure Stackというサービスもある。
- ハイブリッドクラウド・・・セキュリティに応じて上の2つを組み合わせる←プライベートからもパブリックからも移行は可能。
IaaS、PaaS、SaaSと共同管理
IaaS、PaaS、SaaSは管理責任が違う。
↑引用:https://www.microlink.co.jp/azure/ 株式会社マイクロリンク
- Iaasは仮想化までOSからはユーザー責任を持って管理←柔軟性が最も高い
- PaaSはランタイム、OSまで、データ、アプリケーションはユーザー責任←開発に集中できる
- SaaSは全部ベンダー側が責任をもって見るけど、セキュリティの設定はユーザーが行うところもある
コアのAzureサービス
リージョンとリソース
リソース・・・複数あるAzureのサービスの実体(仮想マシン、仮想ネットワーク、ストレージアカウントなど物理的に存在するものもしないものもMSから借りるものはすべてリソースと呼ばれる)
リージョン・・・物理的に存在するAzureのデータセンターに地域的なまとまり、ユーザーはVMをデータセンターやラック単位で指定できないが、このリージョンで自分のVMが展開される大体の地域を指定できる。
引用:https://news.microsoft.com/
Azureのリージョンにはペアがある(東日本と西日本)ってそれぞれ300マイル離れた位置にあり、ペアの両方にリソースを展開したりバックアップををとることで大規模な災害が起きた時にもサービスが完全に止まらない(課金が必要)。
さらに、SLA(可用性のレベル)を上げるためにGeoという概念があってGeo(アジア、ヨーロッパなどの地域)内でデーターを守ることも可能(課金が必要)。
VMの作り方
Azure portalにアクセスしてサブスクリプションを選んでリソースグループを選ぶ
仮想マシン名を選んで、リージョン(東日本など)を選ぶ。リージョン内に複数のデータセンターがあるがどこのデータセンターにVMが展開されるかはわからない。
可用性オプションを選び、
可用性セットを選ぶとVMが配置されるラックを分散してくれる(データセンターが全部落ちたらおしまい)。
可用性ゾーンを選ぶとVMが配置されるデータセンターを分散してくれる(リージョン全体が落ちたらおしまい)。
例えば、同じサービスを分散して担うVM1とVM2を可用性ゾーンを選らんで展開すると、VM1のデータセンターが死んでもVM2は違うデータセンターにあるので、サービスが完全に停止することはない。
可用性セットで選ぶ項目は下の2つ、
障害ドメイン・・・障害(災害や停電)が起きた際にすべてのリソースが固まらないように分けてもらえる数。これを設定しなくても複数のデータセンターに分かれてVMが展開される可能性はあるが指定しておけば最低限その数は分散される(たぶん分散の仕方などは指定できない?)。最大3まで。
更新ドメイン・・・OSのアップデートなどのVMのメンテナンスが同時に走らないように指定した数だけ分けてメンテナンスが実施されるようになる(実行される時間などは指定できない?)。最大20まで。
リージョンとAZ
AZ (Availability Zone、可用性ゾーン)・・・リージョンとデータセンターの中間に存在する概念。一つのリージョンには一つ以上のAZがあり、一つのAZは一つ以上のデータセンターを持つ(AWSといった他のサービスとは違うような・・・)。AZは電源などは独立しているが、地理的に離れた場所にあるとは限らない(災害などでは同時にダウンする可能性がある)。
つまり、2つ以上のデータセンターに確実にデプロイする際は、2つ以上のAZにデプロイする必要がある。
リージョン内の通信は無料、リージョン間は送信のみ有料。
グローバル仮想ネットワーク ピアリング・・・リージョンを超えたVPNを構築。
リソースグループ
リソース(VNなど)は1つのリソースグループに所属する。一括管理する機能と、ユーザーの権限を制限(RBAC※セキュリティで説明)する機能がある。
Azure PortalやCLIからの命令はAzure Resource Manager(ARM)に行くが、ARMは認証(AAD※これもセキュリティで説明)に問い合わせてリソースグループに対してユーザーの権限的に正しい命令か判断してからリソースに変更を加える。
リソースグループは一つのサブスクリプションに属している。リソースからサブスクリプションまで基本下位の要素が上位の一つの要素に対応していて、階層構造をとることはないので、リソースグループが複数のサブスクリプションに属するのは不可能。サブスクリプション間の移動は可能。
引用:Azure Resource Manager公式ドキュメント
ARMテンプレート
リソースの構成を文章化(JSON)してテンプレートに保存するもの。テンプレートをARMに読み込ませることで自動でその通りのリソースを展開してくれる。
個人的に以前使ったとき、設定項目があまりにもおおくてわけわからんとなったが、ARMテンプレートのテンプレートが一から人間が書くものじゃないらしい。
ARMを操作する方法はAzure portal、ARMテンプレート以外にもたくさんある(Azure管理ツールで説明)。
Azureコンピューティングサービス
Azure VM・・・仮想マシンを運用
VM Scale Sets・・・同じVMをセットで提供
App Services ・・・PaaSでコードだけをデプロイ。自動でどっかサーバー上でプログラムが動く
Azure Functions・・・同じくPaaSでプログラムをデプロイ(App ServicesとAzure Functionsは今流行りのサーバーレス)
Azure Container Instance・・・提供されたコンテナエンジンにコンテナをデプロイできるサービス。
Azure Kubernetes Service・・・クーバネティスが使える。
Azure Virtual Network・・・仮想ネットワークとサブネットを提供する。リージョンをまたいで複数のリソースを展開したとしても、まるで一つのLANに存在しているように一つのipでまとめるという理解。この仮想ネットワークをオンプレ環境やプライベートのネットワークとVPNでつなげることも可能
Azure Load Balancer・・・ロードバランサー。外部からアクセスを先頭で受け取ってL4のpoer番号を読み取って適切なリソース(VM)に仕事を割りふる。
VPN Gateway・・・サブネット上にVPN Gatewayを配置してAzure Virtual NetworkとオンプレのネットワークをVPNで接続する例が紹介されてた。
Azure Application Gateway・・・WAF。L7でのルーティング?の話も紹介されてた。
Content Delivery Network・・・動画などの重めのファイルをインターネット上のVMとは別の場所から送信できるファイルの置き場所。
Azure Storage サービス
IaaS
ディスク・・・VMの永続ディスク。プレミアムストレージなどがある
ファイル・・・ファイル共有。SMB(Windowsのファイル共有プロトコル)やREST(HTTPでファイルをやり取りする)でファイルを共有できる。
PaaS
コンテナ・・・BLOBと呼ばれる。非構造データでテキストファイルもしくはバイナリファイルを保存する。
テーブル・・・NoSQLデータ。構造化データ。スケーリング機能アリ
キュー・・・数珠つなぎでメッセージを保存する。連続したリクエストをアプリケーションが順番に処理するために一時的に保存する。
Azure ストレージアカウントではプライマリリージョン内でデータが3つにコピーされて、同期的に維持される。
Azureのソリューション(PaaS、SaaS)
IoT関連
Azure IoT Central・・・Azure IoT Central Application ManagerでポチっとIoTデバイスを管理できる。
Azure IoT Hub・・・離れた箇所にある二つのIoTのデバイスの間を取り持つ。ネットワークを通じて安全かつ安定な通信を可能にする。
IoT Edge・・・複数のAIエッジデバイスにモデルを同時にデプロイするためのサービス。
構造化データ保存先(Azure Database Service)
Azure Cosmos DB・・・リージョン超えて全世界から高速でアクセスでき、自動でスケールアウトできる講師の人一押しの高性能DB
Azure SQL Database・・・Microsoft SQL Serverで動くRDB(PaaS)
Azure Database Migration・・・オンプレから自動でAzureにDBを上げるためのツール
Azure Databricks・・・Apache Spark環境を提供
ビックデータ関連
Azure SQL Data Warehouse(Synapse Analytics)・・・データベースとPyhtonやScalaなどによるデータ分析がセット。 Azure Data Lakeとの連帯が可能で、ビックデータをSQLを用いて解析することが可能。
HDInsight・・・Hadoop、Spark、kafkaなどでデータ解析できる。
Azure Data Lake Analytics・・・ペタバイト級のデータを解析
機械学習関連
Azure Machine Learning service・・・Pythonでメジャーなライブラリを動かして機械学習
Azure Machine Leaning Studio・・・Azure MLをGUIで操作しながら機械学習できるAzure portalとは独立したwebサイト。共同編集のためのプラットフォームでもある。
サーバーレス関連(サーバーの管理しなくていい)
Azure Function・・・コードをだけをデプロイするだけでAPIなどの機能を実装
Azure Logic Apps・・・サーバレスかつコードレスでAPI実装
Azure Event Grid・・・さまざまなAzureのリソースをイベントトリガーとして、Azure Functions、Power Automateを動かす仕組み。
DevOps関連
Azure DevOps Services・・・
Azure DevTest Labs・・・自動で結果を返してくれるテスト環境を実装。仮想マシン(VM)やその他のPaaSリソースを効率的に管理できる。
Azure Repos・・・gitのレポジトリ
Azure管理ツール
Azure Portal・・・Azureのアカウント作ったら最初に行くところ、ぽちっとリソースを管理、設定できる。
Azure PowerShell&CLI・・・コマンドでかっこよく管理できる。模擬試験でAzure PowerShellはubuntuやmacで使用できるかという問題が出るがインストールすれば使用可能。
Azure Cloud Shell・・・portal上でCLI使える
Azure mobil app・・・個人的にVMの立ち上げ立ち下げに便利
Azure REST API・・・APIをたたいてARMを直に操作
コンプライアンス マネージャー・・・ISO27001などの基準を順守できているかスコアで確認できる。
Azure Adiviser・・・可用性とかセキュリティとかコストを評価してくれる
二日目
セキュリティとコンプライアンス
ゼロトラスト・・・これまでの境界で守る考え方から、性悪説ですべてのトラフィックを監視する考え方。
共有責任・・・セキュリティの設定はクラウドのベンダー(Microsoft)とユーザーが責任を共有して行う。IaaS、PaaS、SaaSによって範囲は異なる。
Azure Firewall・・・WAFとは異なりすべてのプロトコルで攻撃からサービスを守る。DDoSはしたのDDoS保護がおこなうのでAzure Firewallとは別機能となっている。
DDoS保護(Azure DDoS Protection Standard)・・・DDoS保護はデフォルトでついてくる。攻撃のログやレポートが欲しい場合は課金が必要
ネットワークセキュリティグループ・・・サブネットやNICを守るシンプルなファイヤーウォール。外部から接続可能なIPやportの設定、プロトコルの監視ができる。Just In TimeやAzure Bastionといった機能も提供する
nic・・・デバイスがインターネットにつながるための部品(カード)
認証と認可
認証された人にアクセス権を付与することを認可(承認)するという
Azure Active Directory(Azure AD)・・・インタネット上の不特定多数のipに存在するデバイスを認証しアプリケーションにアクセスするために認可をする。一度AADに認可されてしまえば紐づけられたサービスをシングルサインオンでアクセスできる。アクセス権がない人を一時的に招待することも可能。BtoC向けにSNSのidでADDで認証する機能もある。ユーザーの要求に対して正しい場合は毎回トークンを発行し、ユーザーはそのトークンをアプリケーションにもっていくことでサービスを利用できる。
Synchronization Service Manager・・・オンプレミス AD 上のユーザー情報を利用して Azure AD 上のアプリケーションを利用可能にする無料の同期ツール。GUIアプリとして、Azure AD ConnectによるAD間の同期状況を確認できる。
Identity Protection・・・匿名IPアドレスを使用してインターネットから署名するユーザーは、パスワードの変更を求めることができる。そのほかに海外からのアクセスや匿名IPなどに対しても指定したポリシーを適応できる。
- ID ベースのリスクの検出と修復を自動化します。
- ポータルのデータを使用してリスクを調査します。
- 詳細な分析のために、サードパーティ製ユーティリティにリスク検出データをエクスポートします。
Identity Federation・・・企業内のオンプレのネットワークを丸ごと認証する
Multi-Factor Authentication・・・多要素認証
Azure Active Directory ID Protection・・・多要素認証(MFA)を適応するためのサービス
Azure Security Center・・・セキュリティ的に対策できていないことを教えてくれる。全部守ればベストプラクティス。Azure Adviserの豪華版(一部課金が必要)
Azure Key Vault・・・キーの保管庫。シークレット、キー、証明書などを格納できる金庫。専用のライブラリでプログラムから接続できる。SQLのユーザー情報なども入れて置ける
Azure Infomation Protection・・・AIPタグを電子メールなどにつけることによって、コピーや転送などで情報拡散することおw防げる
ポリシー・・・セキュリティのレベルを設定し、リソース、リソースグループなどにポリシーを付与することにより、準拠していないリソースを炙る出せる。ただ、準拠していないからといって、リソースが停止したり削除されることはない。
Role Based Access Centre(RBAC)・・・リソースやユーザーに直接アクセス権を与えるのではなくて、ロールを割り当てていちいちロールを照らし合わせてそれおぞれの行動がセキュリティ的に正しいかチェックする
ロック・・・ユーザーが間違った操作によってリソースを削除しないように権限を一部制限
Azure Blueprints・・・再利用可能な環境の定義を保存。定義できる設定は以下の4つ。
・ロールベースのアクセス許可
・ポリシーの割り当て
・Azure Resource Manager テンプレート (ARM テンプレート)
・リソース グループ
監視とレポート
タグ・・・所有者や所属などをタグ付けすることができる。ポリシーによってタグ付けを強制することもできる。すべてのリソースはタグによって管理することもできるし、利用額などをタグごとに監視することもできる。
Azure Monitor・・・Adviser、Security Centerにならぶ第3の監視ツール。パフォーマンス(CPUの使用率やストレージの容量)、イベント(VMの作成削除など)のログを可視化しアラートを出すこともできる。アプリケーションのエラーやボトルネックなども見れる(App insights)。
Azure Service Health・・・サービスの正常性をモニタリング
Azure Advanced Threat Protection(ATP)・・・Azureネットワーク全体のユーザーアクティビティを監視し不正アクセスなどの脅威を検出することができる。
Azure Log Analytics・・・あらゆるリソースからあらゆる情報を集めてダッシュボードに表示。
Compliance Manager・・・組織のコンプライアンス要件を管理し、さまざまな基準や法律へのコンプライアンスを追跡することができる。
マイクロソフトが準拠しているコンプライアンス
- アメリカ国立標準技術研究所(NIST)
- CJIS
- HIPAA
- ISO
- GDPR
など
トラストセンター・・・https://www.microsoft.com/ja-jp/trust-center
プライバシーポリシー・・・https://privacy.microsoft.com/ja-jp/privacystatement
Service Trust Portal・・・技術的、非技術的含めてコンプライアンス的に正しいかどうかそれぞれの規格(ISOやNIST)に合わせて評価してくれるコンプライアンスマネジャーという機能を利用できる(なおすべて英語)
Azure Government・・・アメリカの行政向けの隔離されたリージョン
Azure China・・・中国の法律に準拠したリージョン。他国からのアクセスは不可。
Azure Germany・・・ドイツの法律に準拠したリージョン。他国からのアクセスは可能だがデータの持ち出しは不可。
料金とサブスクリプション
一人のユーザーが複数のサブスクリプション持つことは可能
Pay as you go・・・使った分だけ翌月支払い
Enterprise・・・企業と年間契約
Student・・・学生が安く使える
この他にフリーアカウントがある。
サブスクリプションの階層
それぞれのサブスクリプションは管理グループに所属している。管理グループも階層構造を持ち、上位の管理グループにポリシーを適応していけば下層のサブスクリプションを含めたリソースに適用される。
階層構造をとれるのは管理グループだけ
CSP・・・ソリューションプロバイダーによって提供されたリソースはプロバイダーを通じて請求されることもある
VMを予約して料金を前払いすると割引料金で使える。
コスト
コストに影響を与える要因・・・リソースの種類、サービス、場所、ゾーン
ゾーン・・・可用性ゾーンとは関係ない。サービスのデプロイによってAzure内で通信が発生した場合、ゾーンの組み合わせによって通信費を課金するための概念。例えば東日本と中南米間で通信した場合お互いのゾーンの組み合わせに決まている料金が請求される
TCO計算ツール・・オンプレミスのデータセンターではなく、Azure でソリューションを運用した場合の、時間の経過に伴うコストを見積もることができます。 TCO計算ツールを利用してAzureを利用したコストとオンプレミス環境とのコスト比較が実施できます。
コストの最小化・・・実行→モニター→使用→選択→最新情報→選択
Cost Manager・・・使用者、目的、タグごとにコストを分析して今後のコストを予想することができる。また、あらかじめ決めた閾値を超えるとアラートを出すことができる。
サポート
サポートとして複数のサービスが存在し、サブスクリプションのランク(課金額)によって使用できるサービスが異なる。
課金してないとメールと電話での技術的サポートは受けられない。
そんな時はMSDNやスタックオーバーフローなどで聞く
Azure サポート チケット REST API・・・プログラムからAPIを叩いてサポートを要求できる。
ヘルプとサポート・・・計画されたメンテナンスに関する詳細が閲覧できる。
SLA
月間稼働率がSLAを下回った場合は月額の使用量を割り引かれる(翌月に使用できるクレジットが提供される)。
複合SLA・・・ここのSLAを掛け算した値
アプリケーションのSLA・・・回復性(RTO、RPO)、可用性(MTTR、MTBF)からユーザーが計算しないとしけない。
プレビュー
プライベートプレビュー・・・MSから事前に頼まれたユーザーのみが試せる新機能
パブリックプレビュー・・・誰もが試せる新機能、タダもしくはお安く使える。もし不具合を見つけたらMSに報告することになっている。
GA(General Availability)・・・製品。正規の価格で利用しないといけなくなる。
逆にサービスを終了する場合は12か月前に通知が来る
その他
後から追加した分でどこに分類すればいいわからない項目です。
Azure DevTest Labs・・・開発/テスト環境を構築できます。事前に必要な仮想マシン台数と設定を構成したAzure Resource Managerテンプレートを利用して、仮想マシン台数を設定することが可能となります。
グローバルインフラストラクチャー・・・世界中のリージョンを利用することにより、瞬時に様々な地域にリソースを展開できること。
Azure Express Route・・・オンプレミスのデータセンターからAzure PublicCloudにデータを転送できる。Azure Express Routeを利用するとユーザーはインバウンドデータ転送の料金が無料になる。
Azure App Service・・・PaaSで簡単にwebアプリをデプロイできる。
Azure Notification Hubs・・・プッシュ通知を送信できる。
LinuxでPowerShellによるAzureのリソースの管理を行う場合はPowerShell CoreとAzure PowerShell モジュール(AZコマンド)をインストールする。
という感じです。受講中に目盛っただけなのでかなり雑ですが、AZ-900ののカンペとしては使えるのではないでしょうか?
それでは。