■1.アーキテクチャとコンピューティング
・クラウドコンピューティング
3要素:コンピューティング、ネットワーク、ストレージ
・プライベートクラウド
自社データセンターのこと。専用物理。運用責任。ハード自前購入。自前メンテ。
・パブリッククラウド
物理を共用。最近はパブリックが主流。
よほどの要件(政治・法的要件)がない限り、セキュリティも高くなってきているし、
わざわざプライベートにせんでも。スケールアップ自由。利用した分のみ支払い。
・CapExとOpEx
前払い・減価償却 と 従量課金の違い
・消費ベースモデル
コスト予測と使った分だけの課金
・クラウドのメリット
①高可用性:障害が起きた時に使い続けられる(冗長・フェールオーバー・
クラスタリング・バックアップ)
②弾力性:自動的にスケーリング
③スケーラビリティ:
スケールアップ/ダウン(垂直):単一機能強化
スケールイン/アウト(水平):分散して数を増加、システム全体の能力向上
④信頼性
⑤予測可能性
⑥セキュリティ
⑦ガバナンス
⑧管理の容易さ
・IaaS:サーバー・ストレージ・ネットワーク・FW・セキュリティ・データセンター
→ハードの構成から可能
・PaaS:OS・開発ツール・DB・ビジネス分析
→アプリ開発を重視
・SaaS:アプリ
→出来合いのアプリをチューニングして利用
・共同責任モデル
常に客の責任:情報とデータ・デバイス・アカウントとID
種類によって異なる:IDおよびディレクトリインフラ・アプリ・ネットワーク制御・OS
(IaaSは全部客側の責任になる、SaaSはクラウドベンダーの責任、PaaSはその間)
クラウドベンダーの責任:物理
・リージョン
140か国以上:1つまたは近接した複数のデータセンターから構成(東日本リージョンは
東京と埼玉の3つのデータセンター。西日本リージョンは1つのデータセンター)
・可用性ゾーン
データセンターの障害によるダウンタイムから保護
同じリージョン内のデータセンターを物理的に分離
データセンターごとに独立した電力、冷却、ネットワークを装備
光ファイバーを使用したプライベートネットワークによる接続
・リージョンペア
ペア間は300マイル以上の距離
基本、自動レプリケーション
機能停止が発生した場合に優先されるリージョンの復旧
ダウンタイムを最小限に抑えるために更新を順次ロールアウト
(例 東日本リージョン⇔西日本リージョン)
・Azureソブリンリージョン
米国政府サービス
Azureの独立したインスタンス
政府機関以外の展開から物理的に分離
審査を受け、許可された担当者のみがアクセス可能
Azure China
21Vianetが運用する物理的に分離されたAzureクラウドサービスのインスタンス
データはすべて中国国内保管
・Azureリソース
仮想マシン、ストレージアカウント、仮想ネットワーク、AppService、SQLDatabase、
関数のコンポーネント
・リソースグループ
リソースを1つの単位で管理および集約するためのコンテナ
リソースは1つのリソースグループのみに存在可能
リソースはさまざまなリージョンに存在可能
リソースはさまざまなリソースグループに移動可能
アプリケーションでは、複数のリソースグループを使用可能
・Azureサブスクリプション
課金境界:サブスクリプション毎に課金請求
アクセス制御境界:ユーザーが特定のサブスクリプションでプロビジョニングできる
リソースへの管理および制御
・管理グループ(サブスクリプションの上位)
複数のサブスクリプションを含める
サブスクリプションは管理グループに適用された条件を継承
1つのディレクトリで10,000の管理グループをサポート
管理グループツリーは最大6レベルの階層をサポート
・Azureコンピューティングサービス
ディスク、プロセッサ、メモリ、ネットワーク、OSなどのコンピューティングリソースを
提供するオンデマンドサービス
・Azure Virtual Machines (VM)
・VM scale sets
scale sets ではリソースを自動的にスケーリングするために負荷分散を行うことができる
– リソースのニーズが高まった場合に、スケールアウトできる
– リソースのニーズが低くなった場合に、スケールインできます
・VM 可用性セット
複数のVMが異なる物理的なサーバーに配置されるため、単一の障害点が発生した場合でも
他のVMが稼働し続けることが可能
・Azure Virtual Desktop
デスクトップとアプリの仮想化
1.追加のゲートウェイサーバーを実行することなく、完全なデスクトップ仮想化環境を作成
2.リソースが取り残されるリスクを軽減
3.真のマルチセッション展開
・Azure Container Services
OSの管理を必要としない計量の仮想化環境でありオンデマンドで変更に対応可能
Azure Container Instances:Azureでコンテナやコンテナのポッドを実行するPaaS
Azure Container Apps:負荷分散とスケーリングが可能なコンテナ
インスタンスのようなPaaS
Azure Kubernetes Service:コンテナ用のオーケストレーションサービス。
分散アーキテクチャを使用し大量のコンテナを管理
ポッド (Pod) は、コンテナ化されたアプリケーションの単位であり、Kubernetesなどのコンテナオーケストレーションツールで使われる基本的な運用単位です。以下に、ポッドの主要な特徴を説明します:
- 単一または複数のコンテナ: ポッドは1つ以上のコンテナを含みます。これらのコンテナは同じネットワーク名前空間を共有し、共同で動作します。
- リソース共有: ポッド内のコンテナは、ストレージボリューム、ネットワーク設定、および他のリソースを共有します。これにより、相互に依存するサービスを簡単に実行できます。
- 短命で可動的: ポッドは一時的な存在であり、必要に応じて作成され、終了します。これにより、アプリケーションのスケーリングや更新が容易になります。
- IPアドレスの共有: ポッド内のすべてのコンテナは同じIPアドレスを共有し、互いにローカルホストとして通信します。
ポッドは、複雑なアプリケーションのデプロイや管理を簡素化するための強力なツールであり、効率的なリソース使用とスケーラビリティを実現します。
コンテナの概念は、ソフトウェア開発とデプロイの分野で非常に重要です。コンテナは、アプリケーションとその依存関係を一つのパッケージにまとめる技術です。以下はコンテナの主要な特徴です:
- 一貫性: コンテナは、開発環境と本番環境で一貫した動作を保証します。これにより、「動かない」という問題が発生しにくくなります。
- 軽量性: コンテナは仮想マシン(VM)よりも軽量で、起動時間が短く、リソースの利用効率が高いです。
- 隔離: 各コンテナは独立して実行され、他のコンテナやホストシステムから隔離されています。これにより、セキュリティと安定性が向上します。
- 移植性: コンテナは異なる環境間で容易に移動でき、どこでも同じように動作します。これにより、クラウド環境やオンプレミス環境間の移行が容易になります。
- スケーラビリティ: コンテナは必要に応じて容易にスケールアウト(横に増やす)やスケールイン(横に減らす)することができます。
コンテナは、特にマイクロサービスアーキテクチャを採用したアプリケーションで威力を発揮し、効率的なリソース管理と柔軟なデプロイを可能にします。
・Azureコンピューティングオプションの比較
仮想マシン:OS含むパッケージ
仮想デスクトップ:マルチクライアントでデスクトップ環境を提供
コンテナ:アプリケーションとサービスがコンテナにパッケージ化。
1つのOS上に複数のコンテナを配置。
オーケストレーションによるスケーラビリティと回復を考慮して設計。
Azureのコンテナを利用した実例についてお話ししますね。Azure Container Instances (ACI)やAzure Kubernetes Service (AKS)を使って、さまざまなアプリケーションを効率的にデプロイできます。以下にいくつかの実例を紹介します。
- Webアプリケーションのデプロイ: ACIを使って、簡単にWebアプリケーションをデプロイできます。例えば、Node.jsやPythonのアプリケーションをコンテナ化し、Azureにデプロイすることができます。
- データ処理: AKSを使って、大規模なデータ処理ジョブを実行することができます。例えば、データベースのバックアップやデータのクリーニングなどのバッチ処理を効率的に行うことができます。
- CI/CDパイプライン: Azure DevOpsやGitHub Actionsを使って、コンテナ化されたアプリケーションのビルド、テスト、デプロイを自動化することができます。これにより、開発プロセスがよりスムーズになります。
-
マイクロサービスのデプロイ: AKSを使って、マイクロサービスアーキテクチャを構築し、各サービスを個別のコンテナとしてデプロイすることができます。これにより、システム全体のスケーラビリティとメンテナンス性が向上します。
・Azure Functions
サーバーレスコンピューティング処理をサポートするPaaS。
イベントベースのコードが実行される
・Azure App Service
WebアプリやAPIをすばやく構築
.Net,Node.js,Java,Python,PHPで動作
■2.ネットワーク
・Azure Virtual Network (VNet)
– リソース間通信、リソースとインターネット、オンプレミス間通信
– インターネット上のどこからでもアクセス可能なパブリックエンドポイント
– ネットワーク内からのみアクセス可能なプライベートエンドポイント
- 仮想サブネット:ニーズに合わせてネットワークをセグメント化
- ネットワークピアリング:プライベートネットワーク同士を直接接続
・Azure VPN ゲートウェイ
AzureとオンプレミスでVPNを張れる
・Azure Express Route
専用線接続
・Azure DNS
DNSネームサーバーのグローバルネットワーク活用
Azure Resource Managerに基づくロールベースのアクセス制御、監視、ログ監視
・ストレージアカウント
グローバルに一意の名前が必要
冗長性オプションを特定する
・ストレージの冗長性
LRS:プライマリリージョンにある1つのデータセンター 11ナイン
ZRS:プライマリリージョンにある3つの可用性ゾーン 12ナイン
GRS:プライマリリージョンとセカンダリリージョンにある1つのデータセンター16ナイン
GZRS:プライマリリージョンにある3つの可用性ゾーン、
およびセカンダリリージョンにある1つのデータセンター 16ナイン
・Azure ストレージサービス
Azure Blob:テキストやバイナリデータ、大量の非構造化データ保存向き
Azure Disk:仮想マシン、アプリケーション、その他サービスにアクセスして
使用するためのディスク
Azure Queue:大量のメッセージの保存と取得に使用できるメッセージストレージ。
各メッセージの最大サイズは64KB
Azure Files:サーバーメッセージフロックプロトコルを使用してアクセスできる高可用性
ネットワークファイル共有
Azure Tables:スキーマレス設計に基づいて、構造化された非リレーショナルデータ
ストレージにキー/属性オプション
各ストレージサービスにはパブリックエンドポイントがある。グローバルで一意の名前が必要
・Azureストレージアクセス層
ホット、クール(アクセス頻度低・30日間)、コールド(アクセス頻度低・90日間)、
アーカイブ(アクセス頻度超低・180日間)
アクセス層はいつでも切替可能
・Azure Migrate
統合された移行プラットフォーム
・Azure Data Box
最大80TB、DRのバックアップをAzureに移動。
接続が制限されているまたは接続されていない遠隔地からAzureにデータ移行
・ファイル管理オプション
AzCopy:コマンドラインユーティリティ、ストレージアカウント間でコピー、一方向
Azure Storage Explorer:GUI(エクスプローラーと同様)
Azure File Sync:AzureとオンプレミスのWindowsファイルサーバーを双方向同期
・Microsoft Entra ID
クラウドベースのIDおよびアクセス管理。オンプレADのライト版のイメージ
認証・SSO・アプリケーション管理・企業間B2B・デバイス管理
・認証と承認の比較
認証:
リソースへのアクセスを求めているユーザーやサービスを識別
正当なアクセス資格情報が要求される
セキュリティで保護されたID管理とアクセス制御の原則を作成
承認:
認証されたユーザーやサービスのアクセスレベルを決定
ユーザーやサービスがアクセスできるデータ、およびそのデータで実行できる操作を定義
・Azure Multi-Factor Authentication
多要素認証。ユーザーが知っていること、ユーザーが持っているもの、ユーザー自身を特定
するもの
・Microsoft Entra External ID B2B
B2Bコラボレーション、テナント外ユーザーとのコラボ
・外部ID B2C
公開されたアプリの利用者。→サインアップ →B2Cテナント
・条件付きアクセス
シグナルをまとめて意思決定を行い、組織のポリシーを適用するために使用
– ユーザーまたはグループメンバーシップ
– IPの場所
– デバイス
– アプリケーション
– リスクの検出
・ロールベースのアクセス制御
きめ細やかなアクセス管理
チーム内で職務を分離し、業務の遂行に必要な範囲に限定したアクセス許可を
ユーザーに付与
Azure portalへのアクセスを可能にし、リソースへのアクセスを制御
・多層防御
コンピュータシステムを保護するための階層的なアプローチ
複数レベルの保護を提供
ある階層に対する攻撃を後続の階層から分離
階層:物理:ID:境界:ネットワーク:コンピューティング:アプリケーション:データ
・ゼロトラスト
従来のアプローチ:すべてのリソースへの接続をセキュリティで保護されたネットワーク
のみに制限
→一元的なポリシーを適用し、あらゆる場所の資産を保護
・Microsoft Defender for Cloud
Azureとオンプレミスのデータセンターの両方で脅威からの保護を実現する監視サービス
– セキュリティの推奨事項を提供
– マルウェアを検出してブロック
– 攻撃の可能性を分析して特定
– ポートに対するjust in time アクセス制御
■3.コスト管理
・コストに影響を与える要因
– リソースの種類
– 消費モデル(従量課金モデル)
– メンテナンス(不要なマシンをシャットダウン)
– 地理的要因(欧州より日本の方が安い、など)
– ネットワークトラフィック
– サブスクリプション(無料試用版など)
・Azure Marketplace
オープンソースコンテナプラットフォーム、仮想マシンイメージとデータベースイメージ
アプリケーションの構築と展開ソフトウェア、開発者ツール、10000を超える製品
・料金計算ツール
リージョン、レベル、課金オプション、サポートオプション、プログラムとオファー、
Azure開発/テスト価格
・総保有コスト計算ツール
オンプレからAzure移行したときにいくらかかるか?オンプレとAzureの比較
オンプレは一般的にデータセンター代(24h運営、ハード維持)が高いので総コストは
高くなる
・Azure TCO
コンソール内のコスト管理ツール
レポート機能、予算-支出管理、アラート、推奨事項
・タグ
Azureリソースのメタデータを提供
リソースを論理的に分類整理
名前と値のペアで構成
課金情報をまとめる場合に役立つ
■4.ガバナンス・リソース管理、監視サービス
・Microsoft Purview
データガバナンス、リスク、コンプライアンスソリューションを提供
1つに統合されたビューでデータを把握
オンプレ、マルチクラウド、SaaSのデータに関するインサイトを提供
– 自動データ検出
– 機密データの分類
– エンドツーエンドのデータ系列
・Azure Policy
組織の標準を適用し、大規模なコンプライアンスを評価するのに役立つ。
規制コンプラ、セキュリティ、コスト、管理に関するガバナンスとリソースの整合性を実行
– ポリシーに準拠していないAzureリソースを評価し特定
– ストレージ、ネットワーク、コンピューティング、Security Center、監視などのカテゴリ
に基づいてポリシーを搭載し、イニシアチブ定義を提供
・リソースロック
サブスクリプション、リソースグループ、個々のリソースレベルでロックを管理
読み取り 更新 削除
削除 可能 可能 不可能
読み取り専用 可能 不可能 不可能
・AzureのService Trust Portal
Microsoftのクラウドサービスの信頼性、セキュリティ、コンプライアンスに関する情報を
提供するポータルです。このポータルでは、Azureのサービスがどのように設計されている
か、どのように運用されているかについての詳細な情報を確認できます。また、Azureのセ
キュリティ対策やコンプライアンス取得のためのドキュメントも提供されています。
具体的には、次のような情報が含まれます:
- セキュリティ評価: Azureのセキュリティ対策に関する評価やレポート。
- コンプライアンス: Azureがどのように法規制や業界標準に準拠しているかについての情報。
- 監査レポート: Azureのサービスがどのように監査されているかについての詳細。
- サービスの透明性: Azureのサービスがどのように設計・運用されているかについての透明性情報。
このポータルは、Azureを利用する企業や組織が、サービスの信頼性やセキュリティについての理解を深めるために非常に役立ちます。
・Azureを操作するためのツール
Azure Portal
Azure Power Shell
Azure Cloud Shell
CLI(コマンドラインインターフェース)
・Azure Resource Manager(ARM:アーム) ツールとリソース間の管理レイヤー
上記ツールからARMを経由して、認証を経て
データストア、Webアプリ、VM、サービス管理、その他サービスにアクセスして設定変更
・コードとしてのインフラ
一貫性確保、大規模な構成管理、標準の構成とビルドに基づく
環境の迅速なプロビジョニング
・ARMテンプレート
JavaScript Object Notation (JSON)
プログラムコマンドを記述しなくても、Azureインフラの作成と展開に使用できる
– 定型構文
– 反復可能な結果
– オーケストレーション
– モジュール式のファイル
– 組み込みの検証
– エクスポート可能なコード
・Bicep
”Bicep” は、Microsoft Azureのテンプレート言語の一つです。Azure Resource Manager
(ARM) テンプレートをコードベースで記述し、よりシンプルで読みやすく、再利用可能な
コードを作成するためのものです。Bicepは、JSON形式のARMテンプレートを高レベルの
構文で表現することができます。
例えば、以下のようにBicepテンプレートを記述できます:
resource storageAccount 'Microsoft.Storage/storageAccounts'@{
name: 'mystorageaccount'
location: 'eastus'
sku: {
name: 'Standard_LRS'
}
}
このように、BicepはARMテンプレートよりもシンプルで直感的なコードを書くことが
できます。
BicepテンプレートをJSON形式のARMテンプレートで記述すると、次のようになります:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-04-01",
"name": "mystorageaccount",
"location": "eastus",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage"
}
]
}
このように、JSON形式のARMテンプレートは詳細で構造が明確ですが、Bicepを使うことで
より簡潔に記述することができます。
・Azure Arc
Azure管理をオンプレミス、マルチクラウド、エッジに拡張する
ARMをオンプレ側に横展開するイメージ
・Azure Advisor【推奨事項】
(Service Health・Monitorとの違いに注意!)
Azureリソースを分析し、Azure展開を最適化するための推奨事項を提示
– 信頼性
– セキュリティ
– パフォーマンス
– コスト
– オペレーショナルエクセレンス
・Azure Service Health【正常性確認】
(Advisor・Monitorとの違いに注意!)
Azureの状態:すべてのAzureリージョンを対象としたすべてのAzureサービスの正常性確認
Service Health:使用しているサービスとリージョンのみに焦点をあてたビューでの確認
Resource Health:個々のクラウドリソースの正常性に関する情報が表示
・Azure Monitor【監視】
(Advisor・Service Healthとの違いに注意!)
アプリケーションおよびサービスの可用性とパフォーマンスを最大化
– Application Insights
– Log Analytics
– スマートアラート
– 自動アクション
– カスタマイズされたダッシュボード
・Azureの最適化
戦略、準備、保護、管理、導入(CAF:クラウド導入フレームワーク)
管理と最適化(WAF:Well Architected フレームワーク)
FinOps:財務統制と管理
Azure Portal, Azure CLI, PowerShellに実装できる評価と推奨事項を活用して、
プラットフォームやワークロードレベルのリソースを最適化