5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AZ-305】合格への道(DAY3) — バックアップとサイトリカバリ

5
Posted at

【AZ-305】合格への道(DAY3) — バックアップとサイトリカバリ

Microsoft Learn を教材にした AZ-305(Designing Microsoft Azure Infrastructure Solutions)の研修を4日間受講しています。
講師の解説のうち「Learn の本文だけでは拾えない判断基準」を中心に、受講メモとして整理しました。
前提知識として、AZ-104合格後です。

⚠️ 本記事は受講メモをベースにした個人の整理です。正確な仕様は必ず公式ドキュメントをご確認ください。


研修全体の構成

内容
DAY1 ID・ガバナンス
DAY2 ストレージアカウント、データベース
DAY3 バックアップとサイトリカバリ
DAY4 インフラストラクチャ ソリューション設計

day3-topics.png

1. ストレージ ソリューションの設計

1-1. アクセス層の自動最適化

利用頻度に応じて自動的にストレージ層を変更してくれる仕組みがあります。
AWS でいう S3 Intelligent-Tiering に相当するものだと理解すると早いです。

  • ライフサイクル管理は Premium では利用不可
  • Web App は Azure Files に マウント可能(ストレージアカウントを指定する)

参考: BLOB データのアクセス層の自動最適化 - Microsoft Learn

1-2. Azure File Sync でオンプレのファイルサーバをクラウドへ

構成の流れは以下の通りです。

  1. オンプレミスにファイルサーバを立てる
  2. そこに File Sync エージェント をインストールする
  3. クラウド側に Storage Sync Service を設定し、共有フォルダ(Azure Files)を作成する
  4. オンプレの File Sync からクラウドの共有フォルダへデータを格納する(自動レプリケーション)

ポイントは以下です。

  • HTTPS でアクセス可能なため、SMB を直接利用する必要がない
  • App Service からマウント可能
  • 「オンプレ → Azure → オンプレ」という経路で、Azure を介したオンプレファイルサーバ同士のレプリケーションが可能
  • クラウド側でバックアップも取れるため、オンプレ側のバックアップが不要になる

講師曰く、Microsoft の方針として「オンプレミスのサーバを無くしていこう」という方向で全体が動いている、とのこと。
企業内で作成した独自の Web アプリケーションについても、既存アプリは捨てて SharePoint に移行するなど、クラウドベースの別アプリケーションに乗り換えるという選択肢が提示されます。

1-3. ストレージアカウントのアクセス制御

大きく分けて、ネットワーク側の制限と ID 側の制御があります。

ネットワーク制限

  • パブリックエンドポイントの IP 制限
  • サービスエンドポイントの VNet 制限
  • プライベートエンドポイント

アクセス制御の方式

方式 内容
匿名読み取り許可 Blob の機能。BLOB 匿名アクセスを「許可」にする必要あり。認証なしでアクセス可
匿名制限付きアクセス(SAS) 共有アクセス署名。アクセスレベルは Blob 専用の匿名読み取りアクセス
Entra ID 認証 + RBAC 推奨される方式

1-4. SAS(共有アクセス署名)の生成

  • 署名キーを利用して生成する
  • 生成物は Blob SAS トークン と Blob SAS URL
  • URL を改ざんするとハッシュ値が合わずエラーになる(ここが SAS の肝)

アクセスポリシー

  • 「アクセスできる日程」を作るイメージ
  • Blob オブジェクトに対してアクセスポリシーを設定することが可能
  • シグネチャの中にポリシー名が含まれるため、改ざんするとハッシュ計算でエラーになる

2. リレーショナルデータ用のデータストレージ ソリューション

2-1. 3つの選択肢とネットワーク構成

SQL Server on VM(IaaS)

  • 仮想マシン
  • VNet の中にサブネットがあり、その中に VM がある

SQL Managed Instance(PaaS)

  • VNet 統合
  • 構成に時間がかかる
  • 互換性が高い
  • VNet の中に専用サブネットがあり、そこに SQL インスタンスがある(構成の見た目は SQL Server on VM に近い)

Azure SQL Database(PaaS)

  • 独立サービス
  • 手軽
  • 互換性に制限あり
  • VNet 外の Azure リソース上に SQL Database が存在する。VNet 上にプライベートエンドポイントを作ればアクセス可能

sql-deployment-options.png

image.png

2-2. データベースのスケーラビリティ

Azure SQL Database は、まず Database サーバを作成し、その上に Database を作成するという構成です。
SQL は無条件のパブリックアクセスはありません。

Elastic Pool(エラスティックプール)

複数のデータベースで CPU・メモリ・ストレージなどのリソースをまとめて共有できる仕組みです。

  • 1つのデータベースサーバに単純に複数データベースを置くのは得策ではない
  • 複数データベースを扱うなら Pool を使う方が良い
  • 中規模以下の負荷であれば、サーバをシェアするという考え方

サーバレスの設定も選択できます。

価格モデル

モデル 特徴
DTU パフォーマンスを指定(CPU・メモリなどは自動的に決まる)
仮想コア(vCore) コストパフォーマンスが一番良い。負荷が高いケース向け
サーバレス 負荷が低い / 負荷が分散しているケース向け

2-3. データベースの可用性(サービスレベル)

かつては「可用性の指標」「応答時間・パフォーマンス」で語られていた区分です。

General Purpose

  • コストと汎用性のバランス重視、SSD
  • レプリカ DB 側はコールドスタンバイ(昔は遅かったが、最近は速い)
  • リモート SSD のため Business Critical には劣る

Business Critical(Premium)

  • 高可用性・低遅延・高速復旧重視
  • フルローカル SSD のため速い
  • レプリカ DB 側はホットスタンバイ

image.png

Hyperscale

  • 大きなデータベースを対象とする
  • 価格が高い / 容量が大きい / バックアップ・復元が速い

★ Business Critical と Hyperscale の選択基準は「容量」で決めること。

image.png

2-4. リージョン間のフェールオーバーと負荷分散

  • 別リージョンに対してフェールオーバーしたい場合は、Traffic Manager が制御する
  • ロードバランサー(L4 / ネットワーク層)でデータベースの負荷分散もできるが、読み取りのみ。書き込みはできない
  • SQL Server で読み書きを同時には行えない

2-5. 選択基準まとめ(試験で問われやすい形)

要件 選ぶもの
データベースが 16TB を超える Hyperscale
オンプレミスからのデータベース移行 SQL Managed Instance
最小コストで既知のデータベースを動かす Azure SQL Database、Elastic Pool
リージョン間でレプリケートする 自動フェールオーバーグループ
複数のデータベースをまとめる Elastic Pool
パフォーマンス、読み取りレプリカが欲しい Business Critical
障害対策(可用性グループ) Always On
コストパフォーマンス重視 仮想コアベース(第1優先)、次に DTU

3. 保存データ・移動中のデータ・使用中のデータのセキュリティ設計

3-1. ネットワークセキュリティ

  • 仮想ネットワーク
  • ファイアウォール

3-2. ID とアクセス

Azure SQL データベースに対する認証の考え方です。

SQL Server の場合

  • master データベース(SQL Server 自身)への登録が login
  • Database(複数作成可能)側が User
  • AD DS のユーザと SQL のユーザを連携し、Windows ログインアカウントで SQL に対して認証する

クラウドの場合

  • Entra ID を利用する
  • Entra ID アカウントと SQL アカウントをマッピングできる(マッピングを作る必要あり)
  • Entra ID にマッピングしない SQL ユーザも作成可能(master データベースに新規登録される)
  • 管理者は「追加」ではなく「差し替え」。もし追加したい場合は master データベースを直接操作する必要がある

ユーザ名とパスワードだけでは今のご時世よろしくない、という前提の話でした。

sql-auth-model.png

3-3. 3つのサービスの機能比較

サービス 特徴的な機能
Azure SQL Database 自動バックアップ、アクティブ geo レプリケーション
Azure SQL Managed Instance データベース間クエリ、リンクサーバ、CLR(Common Language Runtime/DB 内で任意のプログラムを実行したいとき)、ネイティブ VNet サポート、自動バックアップ。作成に5〜6時間かかることも
SQL Server on VM OS レベルのアクセスが必要、古いバージョンのサポート、Reporting Services、Integration Services(Data Factory と統合)、Analysis Services

3-4. データ保護

VM のエフェメラルディスク以外は、ディスクは原則暗号化されます。

TDE(Transparent Data Encryption / 透過的データ暗号化)

  • Microsoft 管理の暗号化キー
  • Key Vault(カスタマーマネージドキー)

Always Encrypted

  • オンにするとメモリ上に展開されるときも暗号化されている
  • メモリ上の復号はアプリケーションが行うため、アプリが Key Vault のデータを読む必要がある
  • ネットワークを流れるとき、データベース上、すべて暗号化される
  • 暗号化は列単位
  • 暗号化の種類:決定論的 / ランダム化

★ データベース内のデータ自体を暗号化するのは Always Encrypted のみ。
処理中(使用中)のデータを守るのも Always Encrypted。

動的データマスク(DDM)

  • 特定の列に対してマスクをかける
  • データ自体をマスクするのではなく、クエリ結果がマスクされる
  • クレジットカード番号の下4桁だけ見せる、といった用途
  • データベース管理側で対応する必要がある

image.png

3-5. 演習で出てきた観点

地理的に遠隔地から利用し、アイテム数が多いと遅くなる — というケーススタディです。データ量に左右される問題に対して、以下のような打ち手が挙がりました。

  • Cosmos DB を入れる手もあるが、アプリケーション改修が必要
  • Azure Cache for Redis などのデータベースキャッシュを設ける
  • RDB の見直しは効果あり(インデックスを使って検索を高速化する見直し)
  • 透過的暗号化
  • プライベートエンドポイントは、Web サーバと Azure SQL をセットで考える
  • Azure ハイブリッド特典の利用(可能な場合)
  • Azure Defender for SQL → ワークロード保護(SQL 脆弱性評価などが利用できる)

参考: ケーススタディ: リレーショナルストレージ


4. Azure Cosmos DB

ChatGPT や Entra ID の裏側で Cosmos DB が使われている、という話から入りました。
Entra ID は世界中どこでも使えますが、それは世界各地にレプリカを持っており、それを Cosmos DB が支えているからです。

4-1. 特徴

  • 世界各地にレプリケーションし、クライアントから一番近いところが応答する
  • 整合性レベルを選択できる

4-2. 複数の API セット

API 用途
Azure Cosmos DB for NoSQL 半構造化データの管理(もともと DocumentDB として作られた経緯)
Azure Cosmos DB for MongoDB MongoDB と互換
Azure Cosmos DB for Table ストレージアカウントの Table 相当
Azure Cosmos DB for Apache Gremlin リレーションを表すグラフ DB。人・商品・組織・SNS のつながりなど、関係性が重要なデータ
Azure Cosmos DB for Apache Cassandra キーバリューストア
Azure Cosmos DB for PostgreSQL リレーショナルだが Cosmos に入っている例外扱い

基本は NoSQL(AWS でいう DynamoDB)で、Document(JSON など)/Key-Value/グラフ DB を扱うもの、という整理です。

4-3. 整合性レベル

レベル 内容
強固(Strong) すべてのレプリカが同期して読み込みができる
有界整合性制約(Bounded Staleness) 他のレプリカは遅れてもよいという考え方
セッション(Session) セッションによりレプリカは遅れてもよいという考え方
一貫性のあるプレフィックス(Consistent Prefix) 順序としての一貫性はあるが、時間的な遅れは分からない
最終的(Eventual) 順序と時間の保証なし。複数リージョンで同時書き込みができ、レプリケーションの中で自動的に決まる。世界的な SNS やネットワークゲームなどで使われる

image.png


5. データ統合ソリューションの設計

全体の流れは以下のイメージです。

Data Factory ─→ Data Lake ─→ Databricks
             └─────────────→ Synapse Analytics

やることは「データ移動を調整する」と「大規模なデータを変換する」の2つ。

5-1. Azure Data Factory

★ 覚えておきたい:統合ランタイム(IR)の3種類

  • Azure: Azure 上で処理
  • セルフホステッド: 利用者が用意したサーバ上で処理
  • Azure-SSIS: SQL Server Integration Services

image.png

5-2. Azure Data Lake

Hadoop(Google が開発した MapReduce の系譜)の考え方がベースです。

大きなデータを検索するとき、1つのファイルだと時間がかかるため、複数のファイルに分割します。ファイルとサーバを一体にし、分割することで同時に処理できるので速くなります。分割したものを分析して結果をまとめる、という流れです。
データをコピーするのではなく、Map(HDFS: Hadoop Distributed File System)で処理します。

  • 出来上がったものはほぼ Blob
  • Data Lake はテキストファイルに適している

image.png

5-3. Azure Databricks

分析を行うオープンソースベースのサービス。

  • コントロールプレーン:無料
  • コンピュートプレーン

5-4. Azure Synapse Analytics

Microsoft の分析サービス。SQL と Apache Spark が使えます。

主目的 データ変換機能
Data Factory データ取り込み あり
Synapse Analytics 分析 あり

使い分けの目安:

  • Databricks: Linux ベースの環境であれば利用
  • Synapse Analytics: Microsoft の環境であれば利用

image.png

5-5. 関連サービス

  • Microsoft Fabric: Synapse Analytics、Data Factory、Power BI をまとめたサービス
  • Azure Stream Analytics: リアルタイム分析。IoT などのデータ分析に使う

ホット / ウォーム / コールドの整理(データ処理の観点)

区分 内容
ウォーム 一般的なデータ(データ作成直後)
コールド データがほとんど変化しない
ホット 1秒間に何千・何万のデータ処理 → Stream Analytics

6. AZ-305: インフラストラクチャ ソリューションの設計

6-1. Azure コンピューティング サービスを選択する

まず前提として、仮想マシンはクラウド最適化ではないという立ち位置。

  • 可用性を高めたい・オートスケールさせたい場合は Kubernetes 一択
  • Azure Container Instances(ACI)にはその機能がない。単独でコンテナが動くだけ
  • ロードバランサーなどが必要なら ACI では自前で対応することになる。その点 AKS はオーケストレーション機能を持つ

コンテナ関連の理解

  • Container Instances: Docker
  • Kubernetes: コアの部分は Docker

ローカルで Docker コマンドを使って構築したコンテナは、Azure 上では ACI でも AKS でも動かせる。AKS は Docker コンテナを束ねる管理機能(オーケストレーション機能)である — この理解で正しい、との確認が取れました。

その他のポイント

  • ★ App Service に対して、コードではなくコンテナを指定することができる
    ただし本来の目的は Web サーバとして使うこと。マイクロサービス的な使い方は本来想定していない
  • ★ Container Apps 環境(Kubernetes の中間的サービス)
  • Azure Functions + Logic Apps も選択肢に入る

★ ここをおさえておきたい

image.png

参考: Choose a compute service - Microsoft Learn

6-2. Azure Virtual Machines ソリューション

Azure ホットパッチというオプションを選んでおくと、再起動なしで Windows Update が可能になります。

仮想マシンファミリの決定

ファミリ 用途
D シリーズ 汎用
F シリーズ コンピューティング最適化
E シリーズ メモリ最適化
L シリーズ ストレージ最適化
N シリーズ GPU
H シリーズ ハイパフォーマンスコンピューティング

仮想マシンスケールセット(VMSS)

  • 負荷に応じて台数の増減が可能
  • ただしロードバランサーが必要

6-3. Azure Batch ソリューション

image.png

6-4. Azure App Service ソリューション

  • 仮想マシンに相当する App Service プランを決定する
  • 本番とプレビュー環境を分けることができる
  • Entra ID の認証も容易に組み込める

image.png

6-5. Azure Container Instances ソリューション

  • テストと開発で使用されることが多い
  • マイクロサービス用に設計されていない

image.png

6-6. Azure Kubernetes Service ソリューション

用語の対応は以下の通り。

  • ノード = VM
  • ポッド = コンテナ

スケールの考え方:

  • 役割が違うのであればポッドを増やす
  • ポッドが追加できなければノードを増やす
  • ノード追加には時間がかかる(1〜2分)。そのつなぎとして ACI(Container Instances)を起動する

aks-node-pod-aci.png

image.png

6-7. Azure Functions ソリューション

AWS でいう Lambda。

  • コードの再利用
  • マイクロサービスに最適化されている
  • Durable Functions: 長時間かかる処理や複数ステップの処理を、状態を保持しながら実行できる仕組み
  • 関数アプリ作成時にプランを複数選択可能
  • 既存の言語を利用(Python など)

image.png

image.png

6-8. Azure Logic Apps ソリューション

Azure Functions とは作り方が違います(AWS でいう Step Functions)。

  • ワークフローで作るイメージ
  • ロジック アプリ デザイナーがあり、GUI ベースでワークフローを作成できる
  • ロジック アプリ コードビューもあり、コードベース(JSON 形式)で見ることも可能
  • 特に Office 製品との接続がやりやすい

image.png

image.png

functions-vs-logicapps.png


7. 試験対策メモ

講師から挙がった、出題傾向に関するコメントです。

  • 試験対策的に VM を選ばせる傾向が高い
  • Functions と Logic Apps の比較は出題頻度が高い
  • コンテナ関連もぼちぼち出る

あわせて、本文中で「★」を付けた以下は自分用の重点ポイントです。

  • Business Critical と Hyperscale の選択基準は「容量」
  • データベース内のデータ自体の暗号化は Always Encrypted のみ
  • Data Factory の統合ランタイム3種類(Azure / セルフホステッド / Azure-SSIS)
  • App Service にはコードではなくコンテナも指定できる

おわりに

AZ-104 では「サービスの使い方」が中心でしたが、AZ-305 は明確に「どれを選ぶか、なぜそれを選ぶか」を問われる内容になっています。
特にリレーショナルデータベースの3択(VM / Managed Instance / SQL Database)とコンピューティングの選定は、要件から逆引きできる状態にしておく必要があると感じました。

最終日も、整理でき次第まとめていきます。


注意事項

本記事に掲載している内容は、あくまで一般的な技術情報と個人の見解に基づくケーススタディであり、特定のサービスの品質を評価・断定するものではありません。また、所属する組織の立場や戦略、意見を代表するものでもありません。

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?