次の方法で共有


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

適用対象:Azure SQL Managed Instance

この記事では、General Purpose サービス レベルで Azure SQL Managed Instance を使用しているときに、インスタンスの停止と開始によって請求コストを節約する方法について説明します。 インスタンスの停止と開始は、Azure portal、Azure PowerShell、Azure CLI または REST API を使って行うことができます。

Note

停止機能と開始機能は課金を制御するため、トラブルシューティング手順として インスタンスを再起動 するために使用しないでください。

概要

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

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

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




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

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

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

次の操作が発生すると、Azure は基になる仮想クラスターにコンピューティング リソースを割り当てます。

  • SQL マネージド インスタンスの作成。
  • 停止した SQL マネージド インスタンスの開始。
  • SQL マネージド インスタンスのサイズ変更。 たとえば、サービス レベル、ストレージ、ハードウェアの世代、または仮想コアの数を変更します。

顧客の需要をサポートするために、より多くのインフラストラクチャへの投資が継続的に行われていますが、特定のリージョンでの 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 ハイブリッド特典を使用している場合は、インスタンスが停止状態のときに、Azure ハイブリッド特典を別のリソースに適用できます。 最初にインスタンスで AHB を無効にしてから、インスタンスを停止する必要があります。 同様に、インスタンスを再起動した後は、AHB を再び有効にして、ライセンス特典を適用する必要があります。

予約価格

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

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

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

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

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

  • 現在、インスタンスの停止と開始は、General Purpose サービス レベルのインスタンスに対してのみ実行できます。
  • 次のようなインスタンスは停止することができません。
  • SQL マネージド インスタンスは停止状態ですが、その構成プロパティを変更することはできません。 プロパティを変更するには、インスタンスを起動する必要があります。
  • インスタンスが停止状態である間にバックアップを作成することはできません。 たとえば、毎年のバックアップを実施するという長期バックアップを構成しているとします。 定義された毎年のバックアップ期間中にインスタンスを停止すると、バックアップはスキップされます。 毎年のバックアップ期間中は、インスタンスの稼働状態を維持することをお勧めします。
  • 一度開始した停止操作または開始操作を取り消すことはできません。
  • インスタンスの停止中に SQL Managed Instance に対して脆弱性評価スキャンがスケジュールされている場合、スキャンの実行は失敗します。
  • 停止状態のインスタンスに対してメンテナンス通知は送信されません。 結果は次のようになります。
    • 通知の不完全なシーケンス。 たとえば、進行中の 通知 が送信されている間は、高度な 通知 は送信されません。
    • 通知コンテンツの影響を受けるリソースの一覧に SQL Managed Instance がありません。
  • SQL Managed Instance で使用できるエラー ログ は保持されず 、インスタンスが停止すると自動的に消去されます。

前提条件

インスタンスの停止と開始の機能を使用するには、インスタンスが General Purpose サービス レベルに属する必要があります。 インスタンスを管理するアクセス許可を持つユーザーは、インスタンスを停止して開始できます。 詳細については、データベースに 対する Azure のアクセス許可を確認してください

前提条件を満たしていないインスタンスでは、Azure portal の 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

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

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

  • Azure portal
  • PowerShell
  • Azure CLI
  • 任意のツールを使用して呼び出される REST API 呼び出し

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

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

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

SQL マネージド インスタンスを起動する

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

  • Azure portal
  • PowerShell
  • Azure CLI
  • 任意のツールを使用して呼び出される REST API 呼び出し

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

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

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

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

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

  • Azure portal
  • PowerShell
  • Azure CLI
  • 任意のツールを使用して呼び出される REST API 呼び出し

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

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

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

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

Note

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