要塞ホスト
このデプロイメント・パターンでは、要塞ホストにより、他のサーバーおよびアプリケーションへの外部管理アクセスが許可されます。 これは浮動 IP を介してアクセス可能であり、セキュリティー・グループは、既知の IP アドレスまたは CIDR ブロックから MS RDP ポート TCP 3389 へのアクセスを制限します。 また、浮動 IP により、要塞ホストはインターネットにアクセスできるため、ファイルをダウンロードできます。 別のアクセス手段、つまり Direct Link を使用することもできます。これは、要塞ホストが不要であることを意味します。
本書では、以下を前提としています。
- 要件に応じて VPC とサブネットを作成しておきます。
- 浮動 IP が予約されている。
- セキュリティー・グループを構成しました。
- SSH 鍵をアップロードしました。
このガイドでは、以下のプロセスを順を追って説明します。
- 仮想サーバーの注文。
- サーバーに接続しています。
- 要塞ホストへの必須ファイルのダウンロード。
- ダウンロードしたファイルに SQL Server からアクセスできるようにするための SMB 共有の作成。
- SQL インフラストラクチャーを管理するための統合環境である SQL Server Management Studio (SSMS) をインストールします。
- ドメインに参加します。 このタスクは、AD タスクが完了するまで開始できません。
- PowerShell AD モジュールを追加します。
- PowerShell SQL モジュールを追加します。
- NTP サーバーを構成します。
仮想サーバーの注文
以下の仕様の仮想サーバーは要塞ホストに適しており、 UI を使用した仮想サーバー・インスタンスの作成 の手順を使用して注文できます。
- プロファイル: bx2-2x8
- タイプ: Public
- OS: WIndows 2019
- NIC 数量: 1
- データ・ボリューム: なし
サーバーへの接続
仮想サーバーをデプロイした後、リモートでサーバーにアクセスできるように浮動 IP アドレスを接続する必要があります。 浮動 IP アドレスの追加を参照してください。
Windows 管理者のパスワードにアクセスするには、 Windows インスタンスへの接続 を参照してください。ただし、要約すると、ラップトップから以下のコマンドが使用されます。ここで、instances コマンドは仮想サーバーの < INSTANCE_ID> を返します。
ibmcloud is instances
ibmcloud is instance-initialization-values <INSTANCE_ID> --private-key @~/.ssh/id_rsa
必要なファイルのダウンロード
このデプロイメント・パターンでは、要塞ホストにダウンロードする必要がある以下の製品を使用します。
- MS SQL Server Developer Edition。 SQL Server 製品 & リソースからダウンロードできます。
- SQL Server Management Studio (SSMS)。 Download SQL Server Management Studio (SSMS)からダウンロードできます。
- Diskspd はストレージ・サブシステムのテスト・ツールであり、 DISKSPD 2.0.21aからダウンロードできます。
- PowerShell は SQL Server インスタンスと対話できますが、モジュールをインストールする必要があります。 このモジュールを非インターネット接続 SQL サーバーにインストールする必要がある場合は、このモジュールをダウンロードしてください。 詳しくは、 SqlServer を参照してください。
Windows Explorer でファイルをダウンロードするのが少し難しく、IE のセキュリティ強化の構成を無効にしたい場合があります。
function Disable-InternetExplorerESC {
$AdminKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}"
$UserKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}"
Set-ItemProperty -Path $AdminKey -Name "IsInstalled" -Value 0
Set-ItemProperty -Path $UserKey -Name "IsInstalled" -Value 0
Stop-Process -Name Explorer
}
Disable-InternetExplorerESC
SQL Server のダウンロード
SQL Server のダウンロードは、Web フォームを使用するため、対話式にダウンロードする必要があります。 新しくインストールされた Windows Server ごとに、Windows Explorer のセキュリティー設定ではファイルのダウンロードが許可されません。
-
Internet Explorer の設定ダイアログを開き、「セキュリティ」タブに移動します。
-
「カスタム・レベル」ボタンを選択して、設定のリストを開きます。
-
「ダウンロード」セクションが表示されるまでスクロールダウンし、「有効化」の前にあるラジオ・ボタンにチェック・マークを付けます。
-
設定を保存して Internet Explorer を再始動するには、「OK」を選択します。
-
これで、ファイルをダウンロードできます。
ダウンロードしたファイル SQL2019-SSEI-Eval.exe は、Microsoft から実際のインストール・メディアをダウンロードする「ダウンローダー」にすぎません。 このメディアは、ISO または CAB のいずれかです。 この例では、CAB メディアをダウンロードして解凍し、ヘルプ資料
C:\Users\Administrator\Downloads\SQL2019-SSEI-Eval.exe /Help
を参照します。 以下のコマンドを入力して CAB メディアをダウンロードし、解凍します。C:\Users\Administrator\Downloads\SQL2019-SSEI-Eval.exe /ACTION=Download MEDIAPATH=C:\Users\Administrator\Downloads\SQL2019 /MEDIATYPE=CAB /QUIET C:\Users\Administrator\Downloads\SQL2019\SQLServer2019-x64-ENU.exe /q /x:C:\Users\Administrator\Downloads\SQL2019\Extracted
SSMS のダウンロード
以下のコマンドは、SSMS を C: ¥ Users¥ Administrator¥ Downloads にダウンロードします。
$client = new-object System.Net.WebClient
$client.DownloadFile("https://aka.ms/ssmsfullsetup","C:\Users\Administrator\Downloads\SSMS-Setup-ENU.exe")
ディスク・スペアのダウンロード
次のコマンドは、diskspd を C: ¥ Users¥ Administrator¥ Downloads にダウンロードし、zip ファイルを C: ¥ Users¥ Administrator¥ Downloads¥ DiskSpd に展開します。
$client = new-object System.Net.WebClient
$client.DownloadFile("https://github.com/microsoft/diskspd/releases/download/v2.0.21a/DiskSpd.zip","C:\Users\Administrator\Downloads\DiskSpd-2.0.21a.zip")
Expand-Archive -LiteralPath C:\Users\Administrator\Downloads\DiskSpd-2.0.21a.zip -DestinationPath C:\Users\Administrator\Downloads\DiskSpd
PowerShell SQL サーバー・モジュールのダウンロード
インターネット接続されていない SQL Server にモジュールをインストールする場合は、PowerShell プロンプトから以下のコマンドを使用して、モジュールを要塞ホストにダウンロードします。 Save-Module -Name SQLServer -LiteralPath C:\Users\Administrator\Downloads\
SMB 共有の作成
以下の PowerShell コマンドを使用して、以下を実行します。
-
SMB2の状況を確認します。通常、このプロトコルは仮想サーバー・イメージで無効になっています。 無効にした場合は、SMB の動作に必要なため、有効にすることができます。
-
リモート側で共有にアクセスするために、ローカル・ユーザー
<smbuser>
が作成されます。 必要なパスワードを<password>
に挿入します。 -
共有 C: ¥ Users¥ Administrator¥ Downloads ディレクトリーは共有されます。
$user = "<smbuser>" $password = "<password>" Get-SmbServerConfiguration | Select EnableSMB2Protocol Set-SmbServerConfiguration -EnableSMB2Protocol $true -Force $secpassword = ConvertTo-SecureString $password -AsPlainText -Force New-LocalUser $user -Password $secpassword -FullName "Share User" -Description "User for SMB share" New-SmbShare -Name "Downloads" -Path "C:\Users\Administrator\Downloads" -ReadAccess $user
セキュリティー・グループがトラフィックを許可している限り、VPC 内のサーバーから共有にアクセスできるようになります。 SMB について詳しくは、 Windows Server での SMB 3 プロトコルを使用したファイル共有の概要を参照してください。
SQL Server Management Studio のインストール
SQL Server Management Studio (SSMS) は、SQL インフラストラクチャーを管理するための統合環境であり、 SQL Server およびデータベースのインスタンスを構成、モニター、および管理するためのツールを提供します。 コマンド・プロンプト・スクリプトを使用して SSMS をインストールします。
start "" /w C:\Users\Administrator\Downloads\SSMS-Setup-ENU.exe /Quiet SSMSInstallRoot=C:\SSMS
SSMS は C:\SSMS\Common7\IDE\Ssms.exe
にインストールされます。
ドメインに参加
このタスクは、AD サーバーがインストールされるまで開始しないでください。
要塞ホストの PowerShell プロンプトで、サーバーがドメインに参加できるようにする以下のコマンドを入力します。
Get-DnsClientServerAddress
は、 IPv4 イーサネット・インターフェースのインターフェース・インデックスをキャプチャーして、DNS を IBM Cloud DNS サーバーから ADDNS サーバーに変更できるようにします。 サーバーがドメイン・コントローラーを見つけることができないため、このステップを実行しないと、Add-Computer
コマンドは失敗します。Add-Computer -Server
は FQDN のみを受け入れます。Add-Computer
コマンドは、<domain>
ADDNS サーバーを使用して<ad_server_fqdn>
サーバーをドメインに追加してから、変更を有効にするためにサーバーを再始動します。
$dns = "<ADDNS_IP_Address>"
$adserver = "<ad_server_fqdn>"
$domain = "<domain>"
$user = $domain + "\Administrator"
$password = "<password>"
$out=Get-DnsClientServerAddress -InterfaceAlias Ethernet -AddressFamily IPv4 | Select-Object -Property InterfaceIndex
Set-DnsClientServerAddress -InterfaceIndex $out.InterfaceIndex -ServerAddresses ($dns)
$password = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential ($user, $password)
Add-Computer -DomainName $domain -Server $adserver -Restart -Credential $credential
PowerShell AD モジュールの追加
Windows Server 2019 では、以下の PowerShell コマンドを使用して、オプションで Windows PowerShell 用の Active Directory モジュールをインストールできます。 モジュールを追加することにより、RDP から AD サーバーにアクセスするのではなく、要塞ホストから AD 情報にアクセスできます。
Import-Module ServerManager
Add-WindowsFeature -Name "RSAT-AD-PowerShell" –IncludeAllSubFeature
Install-Module -Name WindowsCompatibility
PowerShell SQL モジュールの追加
最新バージョンの SQLServer モジュールをインストールするには、インターネットに接続されたデバイスで、PowerShell プロンプト Install-Module -Name SQLServer -Force -AllowClobber
から以下のコマンドを使用します。
NTP サーバーの構成
AD ドメイン階層から自動的に時刻を同期するには、以下のコマンドを実行します。
w32tm /config /syncfromflags:domhier /update
net stop w32time
net start w32time
w32tm /query /status