インスタンスの停止と開始 - Azure SQL Managed Instance

適用対象:Azure SQL Managed Instance

この記事では、Azure SQL Managed Instance を使っているときに、インスタンスの停止と開始によって課金コストを節約する方法について説明します。 インスタンスの停止と開始は、Azure portal、Azure PowerShell、Azure CLI または REST API を使って行うことができます。

Note

マネージド インスタンスの停止と開始の機能は、General Purpose サービス レベルの SQL マネージド インスタンスでのみ使用できます。

概要

課金コストを節約するために、使用していないときに General Purpose マネージド インスタンスを停止することができます。 インスタンスを停止することは、仮想マシンの割り当てを解除するのに似ています。 インスタンスが停止状態になると、コンピューティングとライセンスのコストについては課金されなくなりますが、データとバックアップ ストレージについては引き続き課金されます。

マネージド インスタンスを停止すると、キャッシュされたすべてのデータがクリアされます。

この機能には、次の図に示すように、3 つの新しいマネージド インスタンスの状態が導入されています。




- 停止中
- 停止済み
- 開始中

SQL Managed Instance デプロイのさまざまな状態を示す図。

停止操作の開始後、インスタンスが停止するまで通常は約 5 分かかります。 ただし、インスタンスを開始するには、開始操作が開始された時点から約 20 分かかります。 準備完了状態のマネージド インスタンスのみを停止できます。 インスタンスが停止すると、開始操作が手動で開始されるか、定義されたスケジュールでトリガーされるまで、インスタンスは停止状態のままになります。 停止状態のインスタンスのみを開始できます。

Managed Instance の作成、停止した Managed Instance の開始、マネージド インスタンスのサイズ変更 (サービス レベル、ストレージ、ハードウェアの世代、仮想コアの数の変更など) を行うと、Azure はコンピューティング リソースを基になる仮想クラスターに割り当てます。 顧客の需要をサポートするために追加のインフラストラクチャへの投資が継続的に行われていますが、特定のリージョンでの Azure サービスに対する前例のない需要の増加によって、リソースの割り当ての失敗が発生することがあります。 この結果、操作時間が長くなったり (管理操作時間に従って、新しい仮想クラスターのビルドアウトがある場合は約 4 時間)、インスタンスの開始に失敗したりするようになります。この場合は後でもう一度やり直す必要があります。

重要

SQL Managed Instance は、サービスとしてのプラットフォーム (PaaS) サービスとしてシステム コンポーネントのすべての部分のコンプライアンスを担っています。 インスタンスをオンラインにする必要があるシステム メンテナンスが緊急に必要な場合、Azure で開始操作を開始し、メンテナンス操作が完了するまでインスタンスをオンラインに維持できます。完了した時点で Azure によってインスタンスが停止されます。 コンピューティングとライセンスの料金は、インスタンスがオンライン状態にある間ずっと適用されます。

アクションの種類

インスタンスを停止および開始するには 2 つの方法があります。手動で必要に応じて行う方法、またはスケジュールを作成する方法です。

手動コマンド

手動コマンドを使うと、停止と開始のアクションを即座にトリガーできます。 手動コマンドは、決まったパターンがなく非アクティブな期間が長いインスタンスや、テスト目的に適しています。 または、Azure Automation スケジュールや、SQL Managed Instance の組み込みの停止と開始のスケジューラを使って設定できない、カスタマイズされた、より柔軟なスケジュールを作成するカスタム ソリューションがあります。

スケジュールされたコマンド

開始または停止アクションがトリガーされる 1 つ以上の複数の時点があるスケジュールを作成することもできます。 スケジュールされたコマンドが適しているのは、平日は毎日午前 8 時にインスタンスを起動し、午後 5 時に停止し、週末は午前 7 時にインスタンスを起動し、午前 11 時に停止するなど、規則的なパターンを持つインスタンスです。 コマンドをスケジュールすることで、カスタム ソリューションを作成したり、Azure Automation を使って停止と開始のスケジュールを作成したりする必要がなくなります。

スケジュールされた項目は、インスタンスが稼働しているタイミングではなく、開始と停止のイベントが開始される時点を表します。 スケジュールを作成するときは、操作の所要時間を考慮します。 たとえば、インスタンスを午前 8 時に起動して実行する場合は、午前 7:40 に開始操作を開始するスケジュール項目を定義します。

停止と開始のスケジュールについては、次の規則を考慮してください。

  • スケジュールされた項目は停止と開始のペアとして定義され、停止と開始の両方の値が設定されている必要があります。 停止の値を設定して開始の値を指定しないことはできません。また、その逆も同じです。
  • スケジュールされたペアを重複させることはできません。 スケジュールされた時刻の重複がある場合、API のエラーが返されます。
  • 連続する 2 つのアクション (つまり、停止後の開始または開始後の停止) の間隔は、少なくとも 1 時間空ける必要があります。 たとえば、開始を午前 10 時にスケジュールした場合、停止アクションを午前 11 時より前にスケジュールすることはできません。
  • 停止がトリガーされたときに競合する操作がある場合 (仮想コアのスケーリングが進行中など)、10 分後に再試行されるしくみになっています。 10 分後に競合する操作がまだアクティブな場合、停止操作はスキップされます。

請求

停止したインスタンスは仮想コアと SQL ライセンスに対して課金されません。データとバックアップ ストレージに対してのみ課金されます。 ただし、仮想コアとライセンスの課金は、"開始された" 時間ごとにかかります。 たとえば、12:01 の場合、1 時間以内にインスタンスを停止したとしても、1 時間分の課金が発生します。

Azure ハイブリッド特典

Azure ハイブリッド特典 (AHB) はリソース単位で適用されます。 Azure ハイブリッド特典を使ってインスタンスのライセンス コストを節約している場合、インスタンスが停止状態のときに別のリソースにその特典を適用するには、まずインスタンスの AHB を無効にしてから、インスタンスを停止する必要があります。 同様に、インスタンスを再起動した後は、AHB を再び有効にして、ライセンス特典を適用する必要があります。

予約インスタンスの価格

予約インスタンスの価格 (予約容量) は、消費された仮想コアと時間に適用されます。 予約価格の対象となるインスタンスが停止すると、予約価格は自動的に別のインスタンス (存在する場合) に振り替えられます。 停止と開始の機能を使って、予約インスタンス価格を "オーバープロビジョニング" することができます。

たとえば、16 個の仮想コアの予約容量があるマネージド インスタンスを購入したとします。 午後 1 時から午後 2 時まではそれぞれ 8 個の仮想コアを持つ 2 つのインスタンスを実行し、次に両方のインスタンスを停止し、午後 2 時から午後 3 時まではそれぞれ 8 個の仮想コアを持つ別の 2 つのインスタンスを実行することができます。 この方法の場合、各時間に 16 個の仮想コアの制限が使われ、合計 4 つのインスタンスに分散されます。

予約割引は "使うか失うか" ベースで提供されます。 つまり、指定した時間に一致するリソースがない場合、その時間の予約数量は失われます。 未使用の予約時間を繰り越すことはできません。

停止と開始機能の制限事項

次の制限が適用されます。

  • 次のようなインスタンスは停止することができません。
  • マネージド インスタンスが停止状態である間に構成プロパティを変更することはできません。 プロパティを変更するには、インスタンスを起動する必要があります。
  • インスタンスが停止状態である間にバックアップを作成することはできません。 たとえば、毎年のバックアップを実施するという長期バックアップを構成しているとします。 定義された毎年のバックアップ期間中にインスタンスを停止すると、バックアップはスキップされます。 毎年のバックアップ期間中は、インスタンスの稼働状態を維持することをお勧めします。
  • 停止または開始操作は、開始後に取り消すことはできません。

前提条件

インスタンスの停止と開始機能を使用するには、インスタンスが次の前提条件を満たしている必要があります。

  • インスタンスは、2022 年 11 月の機能ウェーブが有効になっているサブネットの一部である必要があります。
  • インスタンスは、General Purpose サービス レベルである必要があります。

前提条件を満たしていないインスタンスでは、SQL Managed Instance リソースの [概要] ページに停止コントロールと開始コントロールが表示されません。

コマンド ライン環境を準備する

Azure portal を使用している場合は、この手順をスキップします。

PowerShell または Azure CLI を使用してインスタンスを停止または開始する場合は、コマンド ライン ツールを構成し、パラメーターを定義して環境を準備する必要があります。

コマンド ライン ツールを構成する代わりに、この記事の手順を実行するために使用できる無料の対話型シェルである Azure Cloud Shell を使用することもできます。 一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。 Azure サブスクリプションをお持ちでない場合は、開始する前に Azure 無料アカウントを作成してください。

Cloud Shell を開くには、コード ブロックの右上隅にある [使ってみる] を選択します。 https://shell.azure.com に移動して、別のブラウザー タブで Cloud Shell を起動することもできます。

PowerShell でインスタンスを停止して開始するには、Azure PowerShell をインストールするか、Azure Cloud Shell を使用します。

Cloud Shell が開いたら、環境で PowerShell が選択されていることを確認します。 以降のセッションでは、PowerShell 環境で Azure CLI を使用します。 [コピー] を選択してコードのブロックをコピーし、Cloud Shell に貼り付けます。その後、Enter キーを押してそれを実行します。

PowerShell または Cloud Shell を起動したら、パラメーターを定義します。

$SubscriptionId = "<Subscription-ID>"
$SqlMIName = "<SQL-MI-name>"
$RgName = "<SQL-MI-resource-group>"

# Login-AzAccount
Select-AzSubscription -SubscriptionName $SubscriptionID

マネージド インスタンスを停止する

インスタンスは、次の方法で停止できます。

  • Azure Portal
  • PowerShell
  • Azure CLI
  • 任意のツールを使用して REST API 呼び出しを呼び出す

Azure portal を使ってマネージド インスタンスを停止するには、インスタンスの [概要] ページに移動し、[停止] ボタンを選びます。

Azure portal のマネージド インスタンスの [概要] ページを表すスクリーンショット。[停止] ボタンが強調表示されています。

インスタンスが既に停止している場合、[停止] ボタンは使用できません。

マネージド インスタンスを開始する

インスタンスは、次の方法で開始できます。

  • Azure Portal
  • PowerShell
  • Azure CLI
  • 任意のツールを使用して REST API 呼び出しを呼び出す

マネージド インスタンスを停止した後に、Azure portal を使って開始するには、インスタンスの [概要] ページに移動し、[開始] ボタンを選びます。

Azure portal のマネージド インスタンスの [概要] ページを表すスクリーンショット。[開始] ボタンが強調表示されています。

インスタンスが既に開始されている場合、[開始] ボタンは使用できません。

停止と開始のスケジュールを管理する

停止と開始のスケジュールは、次の方法で管理できます。

  • Azure Portal
  • PowerShell
  • Azure CLI
  • 任意のツールを使用して REST API 呼び出しを呼び出す

Azure portal を使って停止と開始のスケジュールを管理するには、インスタンスに移動し、リソース メニューにある [Start/Stop Schedule] (スケジュールの開始/停止) を選びます。

マネージド インスタンスの [Start/Stop Schedule] (スケジュールの開始/停止) ページのスクリーンショット。

[Start/Stop Schedule] (スケジュールの開始/停止) ペインでは、次のことができます。

  • 既存のスケジュールを表示する。
  • [タイム ゾーン] ドロップダウン リストでスケジュールしたイベントのタイム ゾーンを指定する。
  • [スケジュール項目の作成] を選んで、新しいスケジュールを作成する。
  • 鉛筆アイコンを選んで、既存のスケジュールを変更する。
  • ごみ箱アイコンを選んで、既存のスケジュールを削除する。

Note

現在、アクティビティ ログは、Azure Resource Manager (ARM) を介して開始された操作のみをキャプチャします。 スケジュールされた開始操作と停止操作は、アクティビティ ログでは追跡されません。 そのため、現時点では、スケジュールされた開始操作と停止操作の履歴を Azure portal のアクティビティ ログまたはそのようなログに基づく監視を使用して表示することはできません。

次の手順