すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:アプリケーションに一貫性のあるスナップショットの作成

最終更新日:Sep 19, 2024

ビジネスにデータの一貫性に関する厳しい要件がある場合は、スナップショット一貫性のあるグループを作成するときに、アプリケーション一貫性のあるスナップショット機能を有効にできます。 この機能により、アプリケーション内のデータが一貫してスナップショットに含まれるようになります。 このトピックでは、Elastic Compute Service (ECS) コンソールまたはAlibaba Cloud SDK for Goを使用して、LinuxおよびWindowsインスタンス用のアプリケーション一貫性のあるスナップショットを作成する方法について説明します。

背景情報

スナップショット一貫性グループを作成するときにアプリケーション一貫性のあるスナップショット機能を有効にすると、システムは実際の状況に基づいてアプリケーション一貫性またはファイルシステム一貫性のあるスナップショットを作成します。 次の表に、2種類のスナップショットを示します。

スナップショットタイプ

説明

シナリオ

Application-consistent snapshot

  • システムがアプリケーション一貫性のあるスナップショットを作成しているとき、システムはアプリケーションへの書き込み操作を一時停止し、既存の書き込み操作結果がすべてディスクに同期されるようにします。 これにより、ディスクやデータベースなどのアプリケーションでデータの一貫性が確保されます。

  • アプリケーション一貫性のあるスナップショットは、APPConsistent:Trueタグで識別されます。

  • オペレーティングシステムに基づいて次のいずれかの方法を使用して作成されたアプリケーションの一貫性のあるスナップショット:

    • Linuxオペレーティングシステムでは、この機能はアプリケーションに基づいたカスタムシェルスクリプトを使用して実行されます。 カスタムスクリプトを使用する場合、Alibaba Cloudはアプリケーションの一貫性効果を保証しません。

    • Windowsオペレーティングシステムでは、Windowsにはボリュームシャドウコピーサービス (VSS) などの組み込み機能があり、この機能を実行します。

データの一貫性を厳密に要求するアプリケーション、特にデータベースや重要なビジネスシステムに適しています。 アプリケーション一貫性のあるスナップショットを使用して、ディザスタリカバリの最も早い機会にアプリケーションを復元できます。

ファイルシステムの一貫性のあるスナップショット

  • スクリプトを構成しない場合、またはスクリプトに無効な設定が含まれている場合は、アプリケーションの一貫性のあるスナップショットではなく、ファイルシステムの一貫性のあるスナップショットが作成されます。 ファイルシステムの一貫性のあるスナップショットは、スナップショットが作成された時点でのファイルシステムデータの一貫性を保証します。

  • ファイルシステムの一貫性のあるスナップショットは、FsConsistent:Trueタグで識別されます。

  • ファイルの一貫性のあるスナップショットは、オペレーティングシステムに基づいて次のいずれかの方法を使用して作成できます。

    • Linuxオペレーティングシステムでは、利用可能なアプリケーションスクリプトがない場合、ファイルシステムの一貫性のあるスナップショットが作成されます。

    • Windowsオペレーティングシステムでは、[デフォルトでライターを含める] オプションが無効になっている場合、ファイルシステムの一貫性のあるスナップショットが作成されます。

ファイルサーバーやドキュメント管理システムなど、ファイルシステム全体の一貫性を確保するシナリオに適しています。 これにより、ファイル階層の整合性を確保するためのバックアップ要件を満たすことができます。

制限事項

  • アプリケーション一貫性のあるスナップショットは、マルチアタッチ機能が無効になっているエンタープライズSSD (ESSD) でのみサポートされます。

  • 同じECSインスタンスにのみ接続されているクラウドディスクに対して、アプリケーションに一貫性のあるスナップショットを作成できます。

前提条件

  • ECSインスタンスが作成され、次のいずれかのオペレーティングシステムバージョンが実行されます。

    • Windows: Windows Server 2012 R2以降。

    • Linux: CentOS 7.6以降、Ubuntu 18.04以降、またはAlibaba Cloud Linux 2。

  • Cloud Assistant AgentがECSインスタンスにインストールされています。 詳細については、「Cloud Assistant Agentのインストール」をご参照ください。

  • Alibaba Cloud SDK for Goを使用してアプリケーションの一貫性のあるスナップショットを作成する場合は、次の項目に注意してください。

手順

ECSコンソールでのアプリケーション一貫性のあるスナップショットの作成

手順1: RAMロールを設定し、ECSインスタンスにアタッチする

  1. Resource Access Management (RAM) コンソールにログインします。

  2. RAMロールを作成し、RAMロールにアプリケーション整合性のあるスナップショットを作成する権限を付与してから、RAMロールをECSインスタンスにアタッチします。 詳細については、「インスタンスRAMロールを使用して他のAlibaba CloudサービスのリソースへのECSアクセスを許可する」トピックの「インスタンスRAMロールを作成し、インスタンスRAMロールをECSインスタンスにアタッチする」セクションをご参照ください。 次のパラメータに注意してください。

    • RAMロール名: 例: AppSnapshotRoleName。

    • Selected Trusted Entity: システムはこのパラメーターをAlibaba Cloud Serviceに設定します。

    • カスタムポリシー: 例: AppSnapshotPolicyが使用されます。 次のサンプルコードは、ポリシーの内容の例を示します。

      {
          "Version": "1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "ecs:DescribeSnapshot*",
                      "ecs:CreateSnapshot*",
                      "ecs:TagResources",
                      "ecs:DescribeDisks"
                  ],
                  "Resource": [
                      "*"
                  ],
                  "Condition": {}
              }
          ]
      }

      このポリシーは、スナップショット情報の照会、スナップショットの作成、タグの指定、およびディスク情報の照会に対する権限を付与します。

手順2: インスタンスのアプリケーション一貫性のあるスナップショットの作成

Linuxインスタンス

Linuxインスタンスでは、アプリケーションの一貫性を確保するために、インスタンスにデプロイされたアプリケーションに基づいて、prescript.shやpostscript.shなどのカスタムシェルスクリプトをコンパイルします。 次のセクションでは、Linuxインスタンスのアプリケーション一貫性のあるスナップショットを作成する方法について説明します。

  1. ECSインスタンスのアプリケーションに基づいてスクリプトを準備し、事前にスクリプトをECSインスタンスにアップロードします。

    スクリプト

    説明

    パス

    データ型

    権限

    コンテンツ

    prescript.sh

    アプリケーションに影響を与える可能性のある操作を実行する前に、アプリケーションへのすべての書き込み操作を一時停止するために使用します。 これにより、運用中に新しいデータが生成されることによるデータの不整合を防ぎます。

    /tmp/prescript.sh

    シェル

    スクリプトに対する読み取り、書き込み、および実行権限があるのは、rootユーザーのみです。

    スクリプトの内容は、ビジネス要件に基づいてコンパイルされます。 詳細については、「MySQLがデプロイされているLinuxインスタンスのアプリケーション一貫性のあるスナップショットを作成するためのベストプラクティス」トピックの「prescript.shおよびpostscript.shスクリプトファイルの作成」をご参照ください。

    postscript.sh

    データのバックアップなど、アプリケーションに影響を与える可能性のある操作が完了した後、postscript.shスクリプトを実行してアプリケーションを復元し、書き込み操作を再開できます。

    /tmp/postscript.sh

    ECSインスタンスにファイルをアップロードする方法については、「ワークベンチを使用してインスタンスにファイルをアップロードし、インスタンスからファイルをダウンロードする方法」をご参照ください。

    説明

    権限、ストレージパス、スクリプト名などのスクリプト設定が無効な場合は、アプリケーションの一貫性のあるスナップショットではなく、ファイルシステムの一貫性のあるスナップショットが作成されます。

  2. ECSコンソールの [インスタンス] ページに移動します。

    1. ECSコンソール.

    2. 左側のナビゲーションウィンドウで、インスタンス&画像 > インスタンス.

    3. 上部のナビゲーションバーで、ECSインスタンスが存在するリージョンを選択します。image.png

  3. スナップショットを作成するインスタンスを見つけ、[操作] 列の 更多 > [ディスクとイメージ] > [スナップショットの一貫性のあるグループの作成] を選択します。

  4. [スナップショット一貫性グループの作成] ダイアログボックスで、スナップショット一貫性グループのパラメーターを設定します。

    1. スナップショット一貫性グループを作成するクラウドディスクを選択し、他のスナップショットパラメーターを設定します。

    2. [Application-consistent Snapshot] セクションでパラメーターを設定します。

      • [アプリケーションの一貫性のあるスナップショットの有効化] および [ファイルシステムのI/O中断と再開の有効化] を選択し、スクリプトを正しく設定すると、アプリケーションの一貫性のあるスナップショットが作成されます。

      • [アプリケーションの一貫性のあるスナップショットの有効化] および [ファイルシステムのI/O中断と再開の有効化] を選択したが、スクリプトを設定しないか、スクリプトを誤って設定すると、ファイルシステムの一貫性のあるスナップショットが作成されます。

      説明

      インスタンスにCloud Assistantをインストールせず、[アプリケーションの一貫性のあるスナップショットの有効化] を選択した場合、Cloud Assistantプラグインはインスタンスに自動的にインストールされます。

  5. [OK] をクリックします。

    スナップショット整合性グループを作成すると、次の図に示すように、Cloud AssistantコマンドIDとタスクID (InvokeId) を示すメッセージが表示されます。 タスクIDに基づいて、アプリケーションに整合性のあるスナップショットが作成されているかどうかを確認できます。命令执行id

Windowsインスタンス

Windowsインスタンスは、アプリケーションの一貫性を確保するためにVSSを使用します。 このセクションでは、Windowsインスタンスのアプリケーション一貫性のあるスナップショット機能を有効にする方法について説明します。

  1. ECSコンソールの [インスタンス] ページに移動します。

    1. ECSコンソール.

    2. 左側のナビゲーションウィンドウで、インスタンス&画像 > インスタンス.

    3. 上部のナビゲーションバーで、ECSインスタンスが存在するリージョンを選択します。image.png

  2. アプリケーションの一貫性のあるスナップショット機能を有効にするインスタンスを見つけ、[操作] 列の 更多 > ディスクとイメージ] > [スナップショットの一貫性のあるグループの作成] を選択します。

  3. [スナップショット一貫性グループの作成] ダイアログボックスで、スナップショット一貫性グループのパラメーターを設定します。

    1. スナップショット一貫性グループを作成するクラウドディスクを選択し、他のスナップショットパラメーターを設定します。

    2. [Application-consistent Snapshot] セクションでパラメーターを設定します。

      • [アプリケーションの一貫性のあるスナップショットの有効化] および [デフォルトでライターを含む] を選択した場合、アプリケーションの一貫性のあるスナップショットが作成されます。

      • [アプリケーションの一貫性のあるスナップショットの有効化] のみを選択すると、ファイルシステムの一貫性のあるスナップショットが作成されます。

      説明

      インスタンスにCloud Assistantをインストールせず、[アプリケーションの一貫性のあるスナップショットの有効化] を選択した場合、Cloud Assistantプラグインはインスタンスに自動的にインストールされます。

  4. [OK] をクリックします。

    スナップショット整合性グループが作成されると、次の図に示すように、Cloud AssistantコマンドIDとタスクIDを示すメッセージが表示されます。 タスクIDに基づいて、アプリケーションに整合性のあるスナップショットが作成されているかどうかを確認できます。命令执行id

手順3: アプリケーションの一貫性のあるスナップショットが作成されているかどうかの確認

スナップショット一貫性グループを作成したら、ECS Cloud Assistantページに移動し、アプリケーション一貫性のあるスナップショットが作成されているかどうかを確認します。 次に、[スナップショット] ページに移動し、スナップショット整合性グループとそのグループに属するアプリケーション整合性スナップショットに関する情報を表示します。

  1. ECSクラウドアシスタントページで、アプリケーション一貫性のあるスナップショットが作成されているか確認します。

    1. ECSコンソール.

    2. 左側のナビゲーションウィンドウで、メンテナンス&モニタリング > クラウドアシスタント.

    3. コマンド実行結果タブをクリックします。

    4. 前の手順で取得したタスクIDを [タスクID] 列で見つけ、タスクIDをクリックして実行結果を表示します。

      image.png

      ExitCodeの戻り値は、前の図に示すように0されます。 これは、アプリケーションの一貫性のあるスナップショットがCloud Assistantで期待どおりに作成されることを示します。 この場合、スナップショット一致グループのIDがコマンド出力に表示されます。

      説明

      ExitCodeの戻り値が0でない場合はエラーとなります。 ExitCode列の値に基づいて問題をトラブルシューティングします。 詳細については、このトピックのエラーコードセクションを参照してください。

  2. スナップショットページで、作成したスナップショット整合性グループとそのグループに属するスナップショットに関する情報を表示します。

    1. 左側のナビゲーションウィンドウで、ストレージ&スナップショット > スナップショット.

    2. [スナップショット一貫性のあるグループ] タブをクリックします。 作成したスナップショット整合性グループを見つけ、スナップショット整合性グループのIDをクリックしてスナップショットの詳細を表示します。

    3. スナップショット情報セクションでは、タグに基づいて、スナップショットがアプリケーション一貫性のあるスナップショットであるか、ファイルシステム一貫性のあるスナップショットであるかを確認します。

      • APPConistent: Trueタグが表示された場合、アプリケーションに対応したスナップショットが作成されます。

        image.png

      • FsConsistent:Trueタグが表示された場合、ファイルシステムの一貫性のあるスナップショットが作成されます。

        image.png

Alibaba Cloud SDK for Goを使用したアプリケーションの一貫性のあるスナップショットの作成

手順1: RAMロールの設定とECSインスタンスへのアタッチ

AttachInstanceRamRoleを呼び出して、RAMロールをECSインスタンスにアタッチできます。 この例では、AppSnapshotRoleNameという名前のRAMロールが使用されます。

Alibaba Cloud SDK for Goのサンプルコード:

package main
import (
    "fmt"
    "os"
    "github.com/aliyun/alibaba-cloud-sdk-go/services/ecs"
)

func main() {
		// Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are configured in the code runtime. 
    // If the project code is leaked, the AccessKey pair may be leaked and the security of all resources in your account is compromised. The following sample code provides an example on how to use environment variables to obtain an AccessKey pair and use the AccessKey pair to call API operations. We recommend that you use Security Token Service (STS) tokens, which provide higher security. 
    client, err := ecs.NewClientWithAccessKey(
        "cn-hangzhou",       
        os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),     
        os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")) 

    // Call the AttachInstanceRamRole operation to attach the specified RAM role to the instance.
    request := ecs.CreateAttachInstanceRamRoleRequest()
    request.Scheme = "https"

    request.RamRoleName = "AppSnapshotRoleName"          // Specify the name of the RAM role.
    request.InstanceIds = "[\"i-bp17r83nppqf141v****\"]" // Specify the ID of the instance.

    response, err := client.AttachInstanceRamRole(request)
    if err != nil {
        fmt.Print(err.Error())
    }

    fmt.Println(response.String())
}

次のような応答が返されます。 レスポンスのパラメーターの詳細については、「AttachInstanceRamRole」をご参照ください。调用结果

手順2: RunCommand操作を呼び出して、インスタンスのアプリケーション一貫性のあるスナップショットを作成します

Linuxインスタンス

RunCommand操作を呼び出して、Cloud Assistantを使用して、1つ以上のLinuxインスタンスのアプリケーション整合性のあるスナップショットを作成します。

Alibaba Cloud SDK for Goのサンプルコード:

package main

import (
    "fmt"
    "os"
    "github.com/aliyun/alibaba-cloud-sdk-go/services/ecs"
)

func main() {
		// Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are configured in the code runtime. 
    // If the project code is leaked, the AccessKey pair may be leaked and the security of all resources in your account is compromised. The following sample code shows how to use environment variables to obtain an AccessKey pair and use the AccessKey pair to call API operations. We recommend that you use STS tokens, which provide higher security. 
    client, err := ecs.NewClientWithAccessKey(
        "cn-hangzhou",    // Specify the region in which the instance resides.
        os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),     
        os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))

    // Call the RunCommand operation to create application-consistent snapshots for the instance. 
    request := ecs.CreateRunCommandRequest()
    request.Scheme = "https"

    request.Type = "RunShellScript"
    // Specify the command content used to create application-consistent snapshots. For more information, see the following description of the CommandContent parameter. 
    request.CommandContent = "acs-plugin-manager --exec --plugin app-snapshot-plugin --params=-RamRoleName=\"AppSnapshotRoleName\",-EnableFsFreeze=true,-TimeoutInSeconds=30,-PreScriptPath=\"/tmp/prescript.sh\",-PostScriptPath=\"/tmp/postscript.sh\",-ExcludeDiskId=\"\",-Name=\"LinuxApp1\""
    request.InstanceId = &[]string{"i-bp17r83nppqf141v****"} // Specify the ID of the instance.

    response, err := client.RunCommand(request)
    if err != nil {
        fmt.Print(err.Error())
    }
    fmt.Printf("response is %#v\n", response)
}

CommandContentパラメーターの説明:

  • acs-plugin-manager -- exec -- plugin app-snapshot-plugin: app-snapshot-plugin Cloud Assistantプラグインを実行します。

  • -- params=: プラグインのパラメーター。 下表に、各パラメーターを説明します。

    パラメーター

    データ型

    必須

    説明

    ExcludeDiskId

    String

    任意

    スナップショットから除外するディスク。

    名前

    String

    必須

    スナップショット整合性グループの名前。

    説明

    String

    任意

    snapshot-consistentグループの説明。

    RamRoleName

    String

    必須

    インスタンスにアタッチされたRAMロール。 RAMロールの名前については、このトピックの「手順1: RAMロールを設定してECSインスタンスにアタッチする」をご参照ください。

    PreScriptPath

    String

    任意

    prescript.shスクリプトが格納されているパス。 例: /tmp/prescript.sh. prescript.shスクリプトは、次の要件を満たす必要があります。

    • rootユーザーのみが、所有者としてのスクリプトに対する読み取り、書き込み、および実行権限 (chmod 700) を付与されます。

    • ビジネス要件に基づいてカスタムスクリプトコンテンツをコンパイルします。

    重要

    このパラメーターは、Linuxインスタンスのアプリケーション一貫性のあるスナップショットを作成する場合に必要です。 スクリプトに権限、パス、ファイル名などの無効な設定が含まれている場合、アプリケーションの一貫性のあるスナップショットではなく、ファイルシステムの一貫性のあるスナップショットが作成されます。

    PostScriptPath

    String

    任意

    postscript.shスクリプトが格納されているパス。 例: /tmp/postscript.sh。 postscript.shスクリプトは、次の要件を満たす必要があります。

    • rootユーザーのみが、所有者としてのスクリプトに対する読み取り、書き込み、および実行権限 (chmod 700) を付与されます。

    • ビジネス要件に基づいてカスタムスクリプトをコンパイルします。

    重要

    このパラメーターは、Linuxインスタンスのアプリケーション一貫性のあるスナップショットを作成する場合に必要です。 スクリプトに権限、パス、ファイル名などの無効な設定が含まれている場合、アプリケーションの一貫性のあるスナップショットではなく、ファイルシステムの一貫性のあるスナップショットが作成されます。

    EnableFsFreeze

    ブール値

    継続しない

    スナップショットを作成する前に、Linux FsFreezeを有効にしてファイルシステムを読み取り専用状態にするかどうかを指定します。

    デフォルト値は True です。

    TimeoutInSeconds

    Integer

    継続しない

    I/O操作のタイムアウト期間。

    デフォルト値:30。 単位は秒です。

    ScriptTimeoutInSeconds

    Integer

    継続しない

    スクリプト実行のタイムアウト時間。

    デフォルト値: 1800 単位は秒です。

次のような応答が返されます。 レスポンス内のパラメーターについては、「RunCommand」をご参照ください。linux

Windowsインスタンス

RunCommand操作を呼び出して、Cloud Assistantを使用して、1つ以上のWindowsインスタンスのアプリケーション一貫性のあるスナップショットを作成します。

Alibaba Cloud SDK for Goのサンプルコード:

package main

import (
    "fmt"
  	"os"
    "github.com/aliyun/alibaba-cloud-sdk-go/services/ecs"
)

func main() {
    // Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are configured in the code runtime. 
    // If the project code is leaked, the AccessKey pair may be leaked and the security of all resources in your account is compromised. The following sample code provides an example on how to use environment variables to obtain an AccessKey pair and use the AccessKey pair to call API operations. We recommend that you use STS tokens, which provide higher security. 
    client, err := ecs.NewClientWithAccessKey(
        "cn-hangzhou",       // Specify the region in which the instance resides.
        os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),     
        os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))

    request := ecs.CreateRunCommandRequest()
    request.Scheme = "https"

    request.Type = "RunBatScript"
    // Specify the command content used to create application-consistent snapshots. For more information, see the following description of the CommandContent parameter. 
    request.CommandContent = "acs-plugin-manager --exec --plugin app-snapshot-plugin-win --params=-RamRoleName=\"AppSnapshotRoleName\",-EnableWriters=true,-Description=\"AppSnapshot\",-ExcludeDiskId=\"\",-Name=\"APPSnapshot-1\""
    request.InstanceId = &[]string{"i-bp11vqwgh574****"} // Specify the ID of the instance.
    request.Timeout = "1800"

    response, err := client.RunCommand(request)
    if err != nil {
        fmt.Print(err.Error())
    }
    fmt.Printf("response is %#v\n", response)
}

CommandContentパラメーターの説明:

  • acs-plugin-manager -- exec -- plugin app-snapshot-plugin-win: app-snapshot-plugin-win Cloud Assistantプラグインを実行します。

  • -- params=: プラグインのパラメーター。 下表に、各パラメーターを説明します。

    パラメーター

    データ型

    必須

    説明

    ExcludeDiskId

    String

    任意

    スナップショットから除外するディスク。

    名前

    String

    必須

    スナップショット整合性グループの名前。

    説明

    String

    任意

    snapshot-consistentグループの説明。

    RamRoleName

    String

    必須

    インスタンスにアタッチされたRAMロール。 RAMロールの名前については、このトピックの「手順1: RAMロールを設定してECSインスタンスにアタッチする」をご参照ください。

    EnableWriters

    ブーレン

    継続しない

    アプリケーション一貫性のあるスナップショットを作成するかどうかを指定します。 有効な値:

    • true: アプリケーション一貫性のあるスナップショットを作成します。

    • false: ファイルシステムの一貫性のあるスナップショットを作成します。

    デフォルト値:true

次のような応答が返されます。 レスポンス内のパラメーターについては、「RunCommand」をご参照ください。win查询结果

手順3: DescribeInvocationResults操作を呼び出して、スナップショットが作成されているかどうかを確認します

DescribeInvocationResults操作を呼び出して、Cloud Assistantコマンドが期待どおりに実行されているかどうかを確認します。

Alibaba Cloud SDK for Goのサンプルコード:

package main

import (
    "fmt"
    "os"
    "github.com/aliyun/alibaba-cloud-sdk-go/services/ecs"
)

func main() {
    // Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are configured in the code runtime. 
    // If the project code is leaked, the AccessKey pair may be leaked and the security of all resources in your account is compromised. The following sample code provides an example on how to use environment variables to obtain an AccessKey pair and use the AccessKey pair to call API operations. We recommend that you use STS tokens, which provide higher security. 
    client, err := ecs.NewClientWithAccessKey(
        "cn-hangzhou",    // Specify the region ID of the instance.
        os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),     
        os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")) 

    // Call the DescribeInvocationResults operation to check whether snapshots are created.
    request := ecs.CreateDescribeInvocationResultsRequest()
    request.Scheme = "https"

    request.InvokeId = "t-hz01qsegaxi****"        // The task ID of the command. You can obtain the task ID in the response in the previous step. 
    request.InstanceId = "i-bp17r83nppqf141v****" // The instance ID.
    request.CommandId = "c-hz01qsegaxd****"       // The command ID. You can obtain the command ID in the response in the previous step. 

    response, err := client.DescribeInvocationResults(request)
    if err != nil {
        fmt.Print(err.Error())
    }
    fmt.Printf("response is %#v\n", response)
}

次のような応答が返されます。 レスポンスのパラメーターの詳細については、「DescribeInvocationResults」をご参照ください。查看结果

  • ExitCodeはエラーコードを示します。 値0は、コマンドが期待どおりに実行されたことを示します。 0以外の値はエラーが発生したことを示します。 エラーコードに基づいて問題をトラブルシューティングします。 詳細については、このトピックのエラーコードセクションを参照してください。

  • Outputは、Base64-encodedされるコマンド出力を示します。

    コマンドが正常に実行された場合、次の例に示すように、Outputの値がBase64-encodedされ、作成されたスナップショット整合性グループのIDが含まれます。

    [snapshotgroup="ssg-bp170v57ca9j01jb****"][message="Finish whole Processes of Snapshot successfully"]

エラーコード

エラーコード (ExitCode)

説明

0

アプリケーションの一貫性のあるスナップショットが期待どおりに作成されました。

1

1つ以上の条件が満たされない。 次のいずれかのエラーが発生する可能性があります。

  • ディスクカテゴリはサポートされていません。

  • スナップショット名が無効です。

  • ネットワーク接続の問題が発生しました。

  • インスタンスにRAMロールがアタッチされていません。

  • インスタンスのオペレーティングシステムはサポートされていません。

2

-- params文字列に続くパラメーターの型または数が無効です。

3

次のいずれかのエラーが発生する可能性があります。

  • インスタンスにESSDがアタッチされていません。

  • インスタンスにアタッチされたRAMロールには、スナップショット関連のAPI操作を呼び出す権限がありません。

4

スナップショット整合性グループは作成できません。

5

snapshot-consistentグループが期待した状態ではありません。

6

スナップショット整合性グループの作成要求がタイムアウトしました。

7

スナップショット整合性グループ内のディスクスナップショットが期待された状態ではありません。

8

スナップショットにタグを追加することはできません。

9

postscript.shスクリプトの実行に失敗しました。

10

postscript.shスクリプトの実行に失敗しました。

11

ファイルシステムのI/Oを中断できません。

12

ファイルシステムのI/Oを再開できません。

13

インスタンスにRAMロールがアタッチされていません。

14

スナップショットの数が上限を超えました。

15

スナップショットが期待された状態ではありません。

16

以前のスナップショットが作成中であり、インスタントアクセス機能が無効になっているため、スナップショットを作成できません。

255

不明なエラーが発生しました。

関連ドキュメント

MySQLまたはSQL Serverデータベースのアプリケーション一貫性のあるスナップショットを作成できます。 詳細については、「MySQLがデプロイされているLinuxインスタンスのアプリケーション一貫性のあるスナップショットを作成するためのベストプラクティス」または「SQL ServerがデプロイされているWindowsインスタンスのアプリケーション一貫性のあるスナップショットを作成するためのベストプラクティス」をご参照ください。