【読書ログ】Azureネットワーク設計・構築入門
今月4日に発売されたAzureの新刊本です。Azure関連の書籍は基本的に読むようにしており、早速購入して読んでみましたので、ご紹介も兼ね読書ログとして記事にしてみました。
尚、記事とは言っても読書時のメモ的なものなので、記事の体を成していない点はご容赦下さい。
「ああ、こんなことが書いてあるんだな」と興味を持たれた方は是非手に取って読んでみてもらえればと思います。
1章 クラウドとネットワーク
1-1 企業ネットワークの変遷
1950年代から2010年代の企業ネットワークの変遷について構成図を交えて説明されています。
この時代にこんな技術が生まれていたのね。など新たな学びもありました。
メモ
◇1950、60年代
・高価で大型なコンピューター
・自営通信網や専用の電話回線
◇1970年代
・小型化(ダウンサイジング)
・企業体同士が企業ネットワークで相互接続
TCP/IP、VPNなどが登場★★
◇1980年代
・さらなる技術革新、法整備
・専用のデジタル専用線(通信機能の向上)
・汎用コンピュータの普及
・VANなどのネットワークサービスを介した企業間接続と業務の連携★★
◇1990年代
・Windows95の登場→個人利用の加速
・クライアント/サーバー方式での利用
◇2000年代
・ADSLやPONを用いた光アクセス回線の普及
・データセンターの普及(災害対策・電力安定供給・セキュリティ)
・クラウドの登場
・Google Mapsのリリース
◇2010年代
・LTE(Long Term Evolution)によるモバイル回線の高スループット・回線利用料の低下
・モバイル端末でのシステム利用が加速
1-2 クラウドコンピューティングの特性
NIST(National Institute of Standards and Technology)によるクラウドコンピューティングの定義(3つのサービスモデルと4つの実装モデル)やクラウド移行についての戦略について語られています。
- 3つのサービスモデル(SaaS/PaaS/IaaS)
- 実装モデル(プライベートクラウド/コミュティティクラウド/パブリッククラウド/ハイブリットクラウド)
- クラウドの基本的な特徴
・オンデマンド・セルフサービス(On-demand Self-service)
・幅広いネットワークアクセス(Broadnetwork access)
・リソースの共用(Resource Pool)
・スピーディな拡張性(Rapid elastictiy)
・サービスが計測可能であること(Managed Service)
クラウドの特性を全面的に取り入れたアプリケーションアーキテクチャはクラウドネイティブアーキテクチャと呼ばれ、PaaSの様々な機能に支えられている。
●4つの移行戦略
戦略 | 内容 |
---|---|
リホスト (Rehost) |
物理サーバで稼働するシステムを、IaaSの仮想サーバーサービスに移行する戦略。クラウドリフト&シフトと呼ばれる。OSレイヤ以上をそのままクラウドに移行させる。 |
リファクター (Refactor) |
システムの一部にPaaSを取り入れることで、運用コストに関する課題解決も視野に入れる戦略 例)仮想サーバで稼働していたDBをPaaS化/アプリケーションの実行基盤をPaaS化 |
リアーキテクト (Rearchitect) |
既存のアプリケーションに対して、よりビジネスに合わせたスケーラビリティ(拡張性)や迅速性を取り入れることを目的に最適化を行うことを主眼とした戦略 例)モノリシックなアーキテクチャを機能毎に分解して、マイクロサービス化 |
リビルド (Rebuild) |
パブリッククラウドを活用することを前提にアプリケーションを再構築する戦略 |
2章 IPネットワークの基礎
OSI参照モデルや、TCP/IPのネットワークモデル、ネットワークアドレス構造やルーティングなどネットワークの基本が学べる章です。
メモ
- ネットワークアドレス
・MACアドレス
・IPv4とは
・アドレス構造
・サブネット(CIDR表記)
・クラスアドレス
・パケットフォーマット
・プライベートIPとグローバルIP
・IPv6の概要と構造 - ルーティング
・ルーティングテーブル
・ゲートウェイ
・ルーティングの種類
スタティック
ダイナミック(RIP、OSPF、BGP)
・AzureではExpressRouteで接続する際にBGPを利用する場合がある。
・ロンゲストマッチの法則
あて先アドレスのプレフィックス長に応じてルーティングされる。
3章 ネットワークの通信制御
3-1 トランスポート層プロトコル
トラスポート層プロトコルとして最も有名な、「TCP」「UDP」について説明されています。
メモ
- ICMP(Ping)やtracert コマンドによる経路調査
2023年のアップデートがあり、Azure Load BalancerがICMPをサポートするようになり、pingやtracertが使えるようになった。 - TCP
セッションとコネクション
・TCPセグメント
・ポート番号
・シーケンス番号と確認応答番号
・制御ビット
・SYN
・ACK
・FIN
・ウィンドウサイズ
・3ウェイハンドシェイク
・クローズ - UDP
RFC768によって既定されている、コネクションレス型のトランスポート層プロトコル
3-2 NAT(ネットワークドレス変換)
パケットのIPアドレスを別のIPアドレスに書き換えることでネットワークを制御するNAT(Network Address Translate)について説明されています。
メモ
- IPアドレスの枯渇問題が背景
- NATによるインターネットアクセス
送信元IPアドレスを書き換えるSNAT
あて先アドレスを書き換えるDNAT
その両方を書き換える双方向NAT - NAPT(IPマスカレード)
3-3 Webアプリケーションを支える技術
World Wide Webについて歴史的変遷と技術要素について説明されています。
メモ
・WWW(World Wide Web)
・リソース識別子
URIとURL
・HTTPプロトコル
・認証と暗号化
・プロキシサーバー
3-4 DNS(ドメインネームシステム)
DNS(Domain Name System)についての歴史的変遷と技術要素について説明されています。
メモ
・名前解決
・リゾルバーとネームサーバー
サーバーから情報を引き出すクライアントソフトウェアをリゾルバー(resolver)
4章 Azureネットワークを支える技術
Auzreネットワークサービスの特徴やサービス内容、ベストプラクティスについて語られています。
5章 Azureネットワークサービス
Azureのネットワークサービスについて、各サービスの説明だけではなく、各サービスのSKUの選定基準、可用性ゾーンの対応可否、SLAをわかりやすく整理し、さらに課金の考え方についてまとめられています。
5-1 接続サービス
Azureとオンプレミスネットワークを接続するための、Azureネットワークサービスが紹介されています。
サービス | 説明 |
---|---|
Azure Express Route | 接続プロバイダーが提供するプライベート接続を介して、オンプレミスネットワークをAzureに拡張できる |
Virtual Network Gateway | VNetをVPNやExpressRouteに接続するためのゲートウェイ |
Azure Virtual WAN | VNet、ExpressRoute、VPNを組み合わせて総合的なWANサービスを提供する大規模拠点間接続サービス |
Azure DNS | DNAゾーンをホストしたり、AzureでドメインのDNSレコードを管理したりできるサービス |
Azure Bastion | マネージドな踏み台サービス |
Azure NAT Gateway | Azureで提供されているNATゲートウェイ |
Azure Peering Service | Microsoftが提供するクラウドサービスに対して、特定のISP経由で接続するためのサービス |
Route Table | ルーディングの経路情報を手動で設定・更新する、いわゆるスタティックルート |
Azure Route Server | BGPの経路情報を中継するマネージドサービス |
5-2 アプリケーション保護サービス
以下のアプリケーションを保護するAzureサービスについて説明されています。
- Azure DDoS Protection
- Azure Private Link
→ Private Endpointの稼働時間および送受信データ量に対しても課金が発生する。 - サービスエンドポイント
- Azure Firewall
- Azure WAF
5-3 アプリケーション配信サービス
以下のアプリケーションを配信するネットワークサービスについて説明されています。
- Azure CDN
- Azure Front Door
- Azure Traffic Manager:DNSロードバランサー
- Azure Load Balancer
- Azure Application Gateway
5-4 ネットワーク監視
以下のネットワーク監視サービスについて説明されています。
- Azure Network Watcher
監視:接続モニター、トポロジー
診断:NSG診断、IPフロー検証、など
ログ記録:フローログ - Azure Monitor Network Insight ★★
IaaS製品のネットワーク正常性を監視する為に設計
6章 シナリオ別ユースケース
Azureネットワークサービスの基本的な使い方が、実際によくある以下のシナリオに合わせて解説されています。
- オンプリミス To Azure
- Azure To Azure
- Azure To インターネット
メモ
アウトバウンド通信
送信元 NAT(SNAT)を使う
信頼性やセキュリティを担保する為に、ネットワーク仮想アプライアンス(NAV)と呼ばれる専用の製品で構成することが一般的
7章 発展的なユースケース
Azureのネットワークサービスのパフォーマンスを引き出し、セキュリティを保って利用するために必要な発展的な利用方法が語られている。
7-1 パフォーマンス最適化
ネットワークパフォーマンスを引き出すには、以下の3点について考える必要がある。
- スループット:単位時間あたりにたくさんのパケットを、できるだけ長いパケット長で送ること
- レイテンシ:パケットの転送時間を短くすること
- パケット損失率:パケットの損失率を低減させること
7-2 ルーティング、負荷分散
ルーディング、負荷分散は、「ユーザーに近いところにトラフィックを流す」「サーバー一台当たりのトラフィック量を減らす」という観点でパフォーマンスに影響する。
- リージョン間負荷分散
Azure Front Door、Azure Traffic Manager - リージョン内負荷分散
Application Gateway
7-3 ネットワークセキュリティ
Azure ネットワークの多層防御
- DDoS Protection
- Azure Front Door、Applicatoin GatewayのWAF
- Azure Firewall
- NSG
7-4 PaaSとの連携
大きく分けて次の2種類がある。
- VNet外にデプロイするタイプのPaaS
① インターネットへのアウトバウンドと同様の送信元NATを使ったアクセス
② サービスエンドポイントを経由してのアクセス
③ プライベートエンドポイントを経由してのアクセス - VNet内にデプロイするタイプのPaaS
8章 Azureを使ったエンタープライズネットワークのベストプラクティス
8-1 クラウド活用のためのフレームワークや考え方
クラウド導入フレームワーク(CAF)や Well-Architected Framework(WAF)、Azureランディングゾーンの紹介がされています。
メモ
8-2 Azure権限管理(EntraIDとサブスクリプション)
Azureの権限管理とベストプラクティスについて語られています。
ユーザーに割り当てられるID
ユーザーに割り当てられるID(ユーザープリンシパル)→ 多要素認証
アプリケーションに割り当てられるID(サービスプリンシパル) → OAuth2.0 / OpenID Connect
・権限管理のベストプラクティス
・サブスクリプションの所有者の数を制限する。(最大3名)
・PIMを使う
・ユーザーではなくグループに権限を割り当てる
・ID保護・管理のベストプラクティス
・ID管理の一元化
→ 1つの組織で、1つのEntraIDとする。
・シングルサインオンの有効化
→ サードパーティのIDプロバイダと連携して、シングルサインオンを有効化する。
・条件付きアクセスをオンにする。
・ユーザーにMFAを適用する。
→ EntraIDセキュリティの規定値を使用する
・複数サブスクリプションが存在する場合の権限管理
→ 管理グループを活用する。
8-3 Azureサンディングゾーン(ALZ)の全体像
ALZは以下の2種類から構成される。
・プラットフォームサンディングゾーン
→ 共通利用基盤全体で利用するサービスや機能を提供するためにデプロイされたサブスクリプションを指す。
・ID管理(EntraIDと連携するADDS)
・インターネットからのインバウンドゲートウェイ
・インターネットへのアウトバウンドゲートウェイ
・セキュリティ機能(SEIM)
・アプリケーションランディングゾーン
・ワークロード毎の管理
・一元管理
・テクノロジープラットフォーム毎の管理
ALZでは、概念アーキテクチャとワークロード毎のアーキテクチャを定めている。
ALZの実装例
・ネットワークトポロジー
・ハブアンドスポークトポロジーを採用することが推奨
・歴史的な経緯から以下の2種類がある。
①Virtual WAMを利用した構成
②Virtual Networkだけを利用する構成
・①は大規模ネットワーク、②は小・中規模ネットワーク向け
①からはじめて②へ移行するシナリオが一般的
→ 移行のユースケースがかなり詳細に記載せれている。
8-5 WAFからみたALZの利点
・信頼性の観点
・セキュリティの観点
・コスト最適化の観点
・オペレーショナルエクセレンスの観点
・パフォーマンスの観点
9章 Azureランディングゾーンを使ったユースケース
以下の4つのシナリオに則った解説がされている。
1.Azure Migrate を使ったオンプレミスからAzureへのシステム移行
2.PaaSを使ったWebアプリケーションの構築
3.AKSを使ったコンテナ基盤の構築
4.Azure Virtual Desktopを使ったVDI基盤の構築
9-1 Azure Migrate を使ったオンプレミスからAzureへのシステム移行
Azure Migrateの機能の説明が詳細にされています。
① Discovery and Assessment
検出と評価
VMやディスクの種類
費用の見積もり
②Server Migration
評価結果を元にAzure VMへサーバーを移行
③Data Migration Assistant
SQL Serverのアセスメント
④Azure Database Migration Service
オンプレミスのデータベースを、Azure データベースサービスへ移行する。
SQL Serverだけでなく、MySQLやPostgreSQL、MongoDBにも対応している。
⑤Web App Migration Assistant
ASP.NETで作成された Webアプリケーションを Azure App Serviceへ移行する。
※評価結果をうのみにするのではなく、前提条件を確認する。
例)LVMは非推奨/swapパーティションのOSディスクへの配置は非推奨
Windowsは、DHCP、Right management、BitLocker RRASなどが非推奨
Failover Cluster Instance(FCI)もサポートするが、あまりお勧めしない。
9-2 App Serviceなど PaaSとの統合
AzureのPaaSをネットワーク的な観点で分類すると以下の2つのサービスに分類される。
① VNetの外部にデプロイする。
② VNetの内部にデプロイする。(VNetインジェクションというデプロイ方式)★★
プライベートエンドポイントは、VNet内部からPaaS方向へトラフィックをルーティングする。
VNet統合は、AppServiceから、VNet内に専用のエンドポイントを設定し、エンドポイントを介してVNet内のリソースにアクセスする。
本番ではカスタムドメインを利用し、Application GatewayのリスナーとなっているFQDNとApp Serviceが利用できるカスタムドメインを一致させること。
App Serviceは、Kuduのエンドポイントも許可してやること。★★
9-3 Azure Kubernetes Serviceとの接続
AKSの基本を理解しないと、理解が厳しい印象
9-4 Azure Virtual Desktopのデプロイ
- ユーザーのデスクトップ環境が動作するVM(セッションホスト)
- ユーザープロファイルが格納されたファイルストレージ
- ユーザーからのアクセスを受け付けたり認証を行うコントロールプレーンから構成される。
設計上のポイント
・ID基盤をどうするか?
→ ADDS、 Microsoft EntraDS、Microsoft EntraID
9-5 BCDR戦略
BCDRとは、ビジネス継続性と災害復旧(Business Coninutiy and Disaster Recovery)
10章 運用と監視
10-1 ネットワークとシステムの運用項目
運用項目として挙げられるのは、以下の3つ
① インベントリの管理とシステムの監視
② システム構成のコンプライアンスの管理
③ システム障害からの保護と回復
メモ
監視対象として、
・Azureアクティビティログ
・Microsoft Defender for Cloud のレポート
検討事項
①アラートの通知先
②アラート通知先のグルーピング
③利用する監視システム
④アラートの分類
ベストプラクティス
①特別な要件がない限り、ワークロード毎にログスペースは分割せずに1つに集約する。
②7年を超えるような長期間、ログを保持する必要がある場合は、ストレージアカウントへログを退避する。
LogAnalyticesワークスペースのログの保存期間は、最長のアーカイブポリシーを適用した場合、7年 ★★
Blob Storageの不変ストレージを利用する。★★
③Network Watcher NSGフローログを利用してトラフィックフローも監視する。
④監視する対象として、Azure Service Health、Azure Resource Health も含め、Azureが正常に動作しているかも監視する。
◇コンプライアンスの管理
・Azure Policy
・Azure RBAC
・リソースロック
Azure Policyは、イニシアチブという機能でまとめることができる。
10-2 監視データの種類と取得方法
ネットワーク監視に必要となるログとメトリックについて説明されています。
メモ
基礎
・ログ:システム内で発生したイベント
・アクティビティログ:操作に関するログ
・リソースログ:Azureリソースが、Azureの内部に対して実行した操作に関するログ
・EntraIDログ:サインなど EntraIDログの監査ログ
・メトリック:特定の時点におけるシステムの何らかの側面を表す数値
・プラットフォームメトリック(標準メトリック):規定で収集されコストが発生せず利用できるメトリック
・カスタムメトリック:規定では収集されず、エージェントなどで利用して収集するメトリック
◇取得方法
①各リソースの診断設定
②AzureMonitorの診断設定
あて先は4種類用意されている。
①Log Analyticsワークスペースに送信
②ストレージアカウントへのアーカイブ
③イベントハブへのストリーム
④パートナーソリューションに送信
◇NSGフローログのベストプラクティス★★
・一般的なファイアウォールのログとして取り扱うことができる。
・ネットワークの使用状況を監視し、トラフィック量を予想し、将来的にネットワークを最適化するための判断材料とすることができる。
・デメリットとして、ログの量によって課金されるため、重要なサブネットでのみ有効化すること。
10-3 監視ツール
ネットワーク監視ツールである、AzureMonitorとNetwork Watcherについて説明されています。
メモ
1.Azure Monitor
Log Analytices と Netowrk Insights がある。
Network Insightの方が多くの可視化ツールが提供されている。
2.Network Watcher の2つがある。
Traffic Analytics★★
トラフィック分析を行うツール。トラフィックの状況を可視化できる。
さいごに
入門書と銘打っている為、前半は基礎的なネットワークやAzureのサービスについて語られており初学者向けの内容になっていますが、後半は一般的なユースケースに沿った具体的な構築の流れや、CAFやWAFといったAzure移行の設計の考え方やベストプラクティスにも言及されており、実践的な内容にもなっております。個人的には7章以降が学びが多かったなと思います。
尚、本記事の内容とは逸れますが、本書のレビューを担当されておりますマイクロソフト赤間信之さんが公開されております『日本語版 Azureランディングゾーン設計・構築ガイド』が有料級のすばらしい内容なのでご紹介させて頂きます。
Discussion