Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築

Azure ArcBox を使った Azure Arc 対応 SQL MI 学習環境の構築

Jumpstart for Azure Arc enabled SQL MI using ArcBox DataOps flavor
Windows Server & Cloud User Group Japan 第33回勉強会の資料です。
ArcBox の DataOps フレーバーを使用して SQL Managed Instance の PoC / 学習環境を構築する方法について紹介します。

Kazuki Takai

February 18, 2023
Tweet

More Decks by Kazuki Takai

Other Decks in Technology

Transcript

  1. Azure Arc Jumpstart Azure ArcBox を使った Azure Arc 対応 SQL

    MI 学習環境の構築 SCUGJ (wSCUGJ) 勉強会 #33 2023-02-18 Kazuki Takai Windows Server & Cloud User Group Japan
  2. お話しすること • ArcBox の DataOps flavor について • 環境の構築方法 •

    サンプルシナリオ • 以下はお話ししません • DataOps 以外の flavor の詳細 • 2022年6月(第30回)の勉強会資料をご確認ください
  3. 自己紹介 • たかい (Kazuki Takai) • 会社員 (某ISP勤務) • サービス基盤開発、技術開発

    • ライセンス関連 • wSCUGJ • 興味分野:統合管理、ID、自動化、セキュリティ、監視・運用 • 趣味:カメラ(風景写真)、ビデオゲーム、旅行(温泉) • Microsoft MVP for Cloud and Datacenter Management
  4. Azure Arc Jumpstart ArcBox とは • Azure Arc のお試し環境を Azure

    上に簡単に構築 する仕組みを提供 • Azure VM 上で Nested virtualization を使用して、 オンプレミス相当の環境を疑似的に構成 • PoC やデモ環境、ハンズオンなどでの利用を想定 https://azurearcjumpstart.io/azure_jumpstart_arcbox/
  5. ArcBox の特徴 • お手軽 • 物理的なハードウェアの準備が不要 • 必要なすべてのリソースは、Azure サブスクリプション の中に作成(したリソース上で稼働)

    • あくまで一時的な検証用 • セキュリティの観点では、目を瞑っていることが多い • Azure サブスクリプションは検証用に(専用に)確保し たほうが良い
  6. どの flavor を使う? サーバーの管理 • ITPro flavor 1 Kubernetes の管理と

    CI/CD(GitOps) • DevOps flavor 2 SQL Managed Instance のオペレーション • DataOps flavor 3
  7. DataOps flavor の構成(仮想マシン) ホスト名 役割 jumpstart.local ドメイン参加 親ホスト (稼働ホスト) OS

    ArcBox-Client 基盤となる Azure VM ホスト ✔ (Azure) Windows Server 2022 ArcBox-ADDS Azure Stack HCI Node #1 ✔ (Azure) Windows Server 2022 ArcBox-SQL Azure Arc enabled SQL Server ArcBox-Client Windows Server 2019 ArcBox-CAPI-MGMT CAPI MGMT Host (Azure) Ubuntu 20.04 arcbox-capi-data-NNNN- control-plane-XXXXX Kubernetes Cluster (CAPI) Control Plane (Azure) Ubuntu 22.04 arcbox-capi-data-NNNN- md-Y-ZZZZZ Kubernetes Cluster (CAPI) Worker Node (Azure) Ubuntu 22.04
  8. ArcBox の展開に必要なもの • Azure Subscription • 42 B-series vCPUs and

    56 DSv4 vCPUs • テナントとサブスクリプションを操作可能なアカウント • Azure AD に対してサービスプリンシパルを作成可能 • サブスクリプションの IAM 設定を変更可能 • Az CLI と git コマンドが使用可能な環境 • Azure Cloud Shell • Windows Terminal
  9. 展開可能な リージョン East US East US 2 Central US West

    US 2 North Europe West Europe France Central UK South Australia East Japan East Korea Central Southeast Asia
  10. 前提条件の確認 • Azure CLI のバージョンが 2.40.0 以上であること • az --version

    • Az CLI にログインしていること • az login • az account show | grep -E '[Nn]ame' | grep -vF '@' • az account set -n "<Subscription Name>" • デプロイ可能な vCPU の空きがあること • B-series 42 コア分 • DSv4 56 コア分
  11. vCPU のクォータ・デプロイ可能数の確認 • az vm list-usage --location eastus --query "[?(name.value

    == ¥`cores¥` || name.value == ¥`virtualMachines¥` || name.value == ¥`standardDSv4Family¥`)].{Name:localName, Current:currentValue, Limit:limit}" --output table • az vm list-skus --location eastus --size Standard_D4s --all --output table
  12. リソースプロバイダーの登録・登録確認 • az provider register --namespace Microsoft.Kubernetes --wait • az

    provider register --namespace Microsoft.KubernetesConfiguration --wait • az provider register --namespace Microsoft.ExtendedLocation --wait • az provider register --namespace Microsoft.AzureArcData --wait • az provider register --namespace Microsoft.OperationsManagement –wait • az provider list --output=table | grep -E '^Microsoft¥.(Kubernetes(Configuration)*|ExtendedLocation|AzureArcData|Ope rationsManagement)'
  13. サービスプリンシパルの作成 • Owner ロールを持つサービスプリンシパルを作成 • spName="SCUGJ33-Demo-DataOps33" • az ad sp

    create-for-rbac -n $spName --role "Owner" -- scopes /subscriptions/$(az account show --query id -- output tsv) appId, password, tenant は使うのでメモ
  14. SSH キーペアの作成 / テンプレート取得 • SSH 公開鍵ペアの作成 • ssh-keygen -t

    rsa -b 4096 • デプロイに使用するテンプレートを取得 • git clone https://github.com/microsoft/azure_arc.git
  15. デプロイパラメーターファイルの修正 パラメーター名 設定する値 sshRSAPublicKey SSH 公開鍵を設定(デプロイする Linux 環境用) spnClientId サービスプリンシパルの

    ID (appId) spnClientSecret サービスプリンシパルのシークレット (password) spnTenantId サービスプリンシパルを作成した Azure AD のテナント ID (tenant) windowsAdminUsername デプロイする Windows VM の管理者アカウント名 windowsAdminPassword 上記管理者アカウントのパスワード logAnalyticsWorkspaceName この環境用に新規にデプロイする Log Analytics ワークスペースの名前 flavor フレーバーを指定(今回は DataOps) deployBastion デプロイする VM へ Bastion 経由で接続を行う場合は true VM の Global IP Address を指定して直接 RDP 接続する場合は false
  16. デプロイ • az deployment group create --resource-group $rgName --template-file azuredeploy.json

    --parameters azuredeploy.parameters.dataops.json デプロイ完了まで、40分程度かかります また、デプロイ完了後時間を置いたほうが、 Post-Deploy に成功しやすくなります
  17. デプロイ後の自動処理 • デプロイ完了後、ArcBox-Client へログオン • パラメーターとして指定したユーザーとパスワードを使用 • <username>@jumpstart.local でログオンすること •

    Global IP 経由で接続する場合、NSG の設定変更が必要 • ArcBox-NSG で RDP のインバウンド接続を許可 • ログオンすると PowerShell Script が実行される • 完了するまで待つ(1時間程度) • デスクトップ背景が変更されたら完了
  18. デプロイ完了後、最初に確認すること • リソースグループのデプロイ履歴を確認 • Azure Portal ⇒ リソースグループ ⇒ デプロイ

    • 全てのデプロイが成功していることを確認 割と失敗するので、必ず確認することを推奨
  19. 例えば何ができるか • SQL Stress ツールを使用したロードテスト • 各種運用管理ツールや監視ツール経由でのモニタリング・検知 • Azure Data

    Studio からの接続や操作 • Grafana を使用したメトリック情報の表示 • BookStore サンプルアプリケーションからの DB アクセス • High Availability • Point-in-time Restore • DR (サイト間 Failover)
  20. Azure Data Studio による接続確認 • デプロイ完了後、ArcBox-Client のデスクトップに SQLMI Endpoints という名前のテキストファイルが

    生成される • 各種エンドポイントの情報(FQDN)や、アカウント 情報などが記載されている
  21. SQL Query ストレスツール • SqlQueryStress ツール • インストール済み • デスクトップのショートカットから起動

    • 各種データベースインスタンスに接続し、負荷をかける ことが可能 • モニタリングツールの動作・表示確認等で使用可能
  22. SQL Query ストレスツール 1. Database ボダンを押して接続設定画面を開く 2. CAPI external endpoints

    DNS name for AD Authentications のエンドポイントをサーバーと して指定 3. Default Database に AdoventureWorks2019 を指定 4. Test Connection をクリックし、接続に成功することを確認 5. 以下のクエリを貼り付け • exec [dbo].[uspGetEmployeeManagers] @BusinessEntityID = 8 6. ストレスパターンとして以下を設定 • Number of Iterations : 100000 • Number of Threads : 5 • Delay between queries (ms) : 1 7. GO をクリック
  23. ハマるかもしれないポイント • Cloud Shell で az ad コマンドを実行するとエラーになる • Failed

    to connect to MSI. Please make sure MSI is configured correctly. Get Token request returned: <Response [400]> • おそらくバグです • (本来必要ないですが)明示的に az login してください
  24. まとめ • ArcBox の DataOps flavor を使うとお手軽に PoC や学習のための Arc

    対応 SQL MI 環境を作成可能 • ハードウェアが無くてもお試しできるので便利 ※お金はかかります • Azure デプロイ後の初期構成に結構時間がかかる ので注意
  25. 参考資料 • Azure Arc Jumpstart • https://azurearcjumpstart.io/ • Azure Arc

    Jumpstart ArcBox – DataOps flavor • https://azurearcjumpstart.io/azure_jumpstart_arcbox/ dataops/