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

Elastic Compute Service:コマンドの作成と実行

最終更新日:Apr 15, 2025

Cloud Assistant コマンドを実行して、Elastic Compute Service (ECS) インスタンスでルーチンタスクを実行できます。タスクには、自動 O&M スクリプトの実行、ポーリングプロセスの実行、ユーザーパスワードのリセット、ソフトウェアのインストールまたはアンインストール、アプリケーションの更新、パッチのインストールなどが含まれます。このトピックでは、Cloud Assistant コマンドを作成して実行する方法について説明します。

前提条件

  • コマンドを実行する ECS インスタンスが [実行中] (Running) 状態であること。

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

    スケジュールされたタスクが期待どおりに実行されるようにするには、Cloud Assistant エージェント のバージョンが以下のバージョン以降であることを確認してください。スケジュールされたタスクは、特定の間隔でコマンドを実行したり、特定の時間に 1 回だけコマンドを実行したり、特定の年またはタイムゾーンを持つ Cron 式で指定されたスケジュールに基づいてコマンドを実行したりできます。

    • Linux: 2.2.3.282

    • Windows: 2.1.3.282

    ClientNeedUpgrade エラーコードが返された場合は、Cloud Assistant Agent を最新バージョンに更新してください。詳細については、「Cloud Assistant Agent のアップグレードまたはアップグレードの無効化」をご参照ください。

制限

Cloud Assistant コマンドを作成して実行する場合は、以下の点に注意してください。

  • Base64 エンコードされたスクリプトのサイズには、以下の制限があります。

    • [実行して保存] をクリックしてコマンドを即座に実行して保存する場合、スクリプトのサイズは 18 KB を超えることはできません。

    • [実行] をクリックしてコマンドを即座に実行するが保存しない場合、スクリプトのサイズは 24 KB を超えることはできません。

  • 1 回のリクエストで API 操作を呼び出して、最大 100 インスタンスでコマンドを実行できます。「コマンド実行でサポートされるインスタンスの最大数」というクォータは、1 回の実行でコマンドを実行できるインスタンスの最大数を指定します。クォータの増加を申請できます。リソースクォータの表示と増加の方法については、「ECS クォータの管理」をご参照ください。

  • Alibaba Cloud リージョンに 500 ~ 50,000 の Cloud Assistant コマンドを保持できます。このクォータは、ECS の使用状況に基づいて増加する場合があります。クォータの増加を申請できます。リソースクォータの表示と増加の方法については、「クォータの管理」をご参照ください。 [コマンドの作成] パネルでコマンドを作成するときに [実行] をクリックすると、そのコマンドは Cloud Assistant コマンドクォータにカウントされません。

    説明

    承認率を高めるために、クォータ増加申請の詳しい理由を入力してください。

手順

ECS コンソールで Cloud Assistant コマンドを作成して実行する

  1. ECS コンソール - ECS Cloud Assistant に移動します。

  2. 上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。地域

  3. [ECS Cloud Assistant] ページの右上隅にある [コマンドの作成/実行] をクリックします。

  4. [コマンドの作成] パネルの [コマンド情報] セクションで、パラメータを構成します。次の表でパラメータについて説明します。

    パラメータ

    説明

    コマンドソース

    コマンドソースを選択します。

    • [コマンドコンテンツを入力]: コマンドを作成します。

    • [保存済みコマンドを選択]: 既存のコマンドを選択します。

    コマンドタイプ

    コマンドタイプを選択します。

    • Linux インスタンスの場合は、[Shell][Python]、または [Perl] を選択します。

    • Windows インスタンスの場合は、[Bat] または [PowerShell] を選択します。

    コマンドコンテンツ

    コマンドコンテンツを入力または貼り付けます。

    シェルコマンドの詳細については、「ECS インスタンスのシステム構成を表示する」をご参照ください。

    コマンドを作成するときは、コマンドの構文、ロジック、およびアルゴリズムが正しいことを確認してください。

    たとえば、インスタンスで作成した /backup ディレクトリ (mkdir /backup) にファイルをアーカイブするには、次のシェルコマンドを入力します。

    #!/bin/bash 
    OF=/backup/my-backup-$(date +%Y%m%d).tgz
    tar -cf $OF {{file}}
    説明

    上記のサンプルコマンドでは、{{file}} はカスタムパラメータです。コマンドを実行するときに、カスタムパラメータをアーカイブするファイルの名前に設定できます。例: /app/usrcredential。動的な値と複数のコマンドで共有される値が必要なシナリオでは、カスタムパラメータを使用できます。AccessKey ペア、インスタンス ID、認証コード、時間パラメータ、重要なシステムファイルなど、機密データや環境とともに変化するデータには、カスタムパラメータを指定することをお勧めします。

    パラメータの使用

    パラメータを使用するかどうかを指定します。

    [パラメータの使用] をオンにする場合は、パラメーターの使用{{key}}[コマンドコンテンツ] フィールドに 形式でカスタムパラメータを指定します。

    説明

    1 つの Cloud Assistant コマンドに最大 20 個のカスタムパラメータを指定できます。

    組み込み環境パラメータをカスタムパラメータとして指定できます。コマンドを実行すると、パラメータは Cloud Assistant によって自動的に指定されます。次の組み込み環境パラメータを指定できます。

    • {{ACS::RegionId}}: リージョンの ID。

    • {{ACS::AccountId}}: Alibaba Cloud アカウントの一意の識別子 (UID)。

    • {{ACS::InstanceId}}: インスタンスの ID。

      説明

      複数インスタンスでコマンドを実行し、{{ACS::InstanceId}} パラメータを組み込み環境パラメータとして指定する場合は、Cloud Assistant Agent のバージョンが以下のバージョン以降であることを確認してください。詳細については、「Cloud Assistant Agent のインストール」をご参照ください。

      • Linux: 2.2.3.309

      • Windows: 2.1.3.309

    • {{ACS::InstanceName}}: インスタンスの名前。

      説明

      複数インスタンスでコマンドを実行し、{{ACS::InstanceName}} パラメータを組み込み環境パラメータとして指定する場合は、Cloud Assistant Agent のバージョンが以下のバージョン以降であることを確認してください。詳細については、「Cloud Assistant Agent のインストール」をご参照ください。

      • Linux: 2.2.3.344

      • Windows: 2.1.3.344

    • {{ACS::InvokeId}}: コマンドタスクの ID。

      説明

      {{ACS::InvokeId}} パラメータを組み込み環境パラメータとして指定する場合は、Cloud Assistant Agent のバージョンが以下のバージョン以降であることを確認してください。詳細については、「Cloud Assistant Agent のインストール」をご参照ください。

      • Linux: 2.2.3.309

      • Windows: 2.1.3.309

    • {{ACS::CommandId}}: コマンドの ID。

      説明

      {{ACS::CommandId}} パラメーターを組み込み環境パラメーターとして RunCommand オペレーションの呼び出し時に指定する場合、Cloud Assistant クライアントのバージョンが以下のバージョン以降であることを確認してください。詳細については、「Cloud Assistant クライアントをインストールする」をご参照ください。

      • Linux: 2.2.3.309

      • Windows: 2.1.3.309

    実行計画

    コマンド実行計画を選択します。

    • [即時実行]: [実行] または [実行して保存] をクリックすると、コマンドがすぐに実行されます。

    • [システムの次回起動後]: [実行] または [実行して保存] をクリックした後、関連付けられているインスタンスが次回起動されたときに、コマンドが実行されます。

    • [システムの起動ごと]: [実行] または [実行して保存] をクリックした後、関連付けられているインスタンスが起動されるたびに、コマンドが実行されます。

    • [スケジュールに従って実行]: [実行] または [実行して保存] をクリックした後、特定の間隔、特定の時間、またはスケジュールに従ってコマンドが実行されます。次の実行スケジュールオプションを使用できます。

      • [一定間隔で実行]: レート式を使用して、コマンドを実行する間隔を指定します。間隔は秒、分、時間、または日で指定できます。このオプションは、コマンド実行タスクを一定間隔で実行する場合に適しています。

        説明

        間隔を指定する場合は、次の制限に注意してください。

        • 指定できる間隔は 60 秒から 7 日までで、スケジュールされたタスクのタイムアウト期間よりも長くする必要があります。

        • 間隔は、2 回の連続した実行の間に経過する時間です。間隔は、コマンドを 1 回実行するために必要な時間とは無関係です。たとえば、間隔を 5 分に設定し、コマンドの実行に 2 分かかるとします。コマンドが実行されるたびに、システムはコマンドを再実行する前に 3 分間待機します。

        • タスクを作成した後、タスクはすぐに実行されません。たとえば、間隔を 5 分に設定し、コマンドを実行するタスクを作成するとします。タスクは作成されてから 5 分後に実行されます。

      • [指定した時間に 1 回だけ実行]: コマンドを 1 回だけ実行する時点とタイムゾーンを指定します。

        たとえば、[実行時間] パラメータを [2022 年 5 月 17 日 17:30:50] に、[タイムゾーン] パラメータを [(GMT+08:00) Asia/Shanghai] に設定すると、コマンドは 2022 年 5 月 17 日 17:30:50 (UTC + 08:00) に 1 回だけ実行されました。

      • [クロックベースのスケジュール Cron 式で実行]: Cron 式を使用して、コマンドを実行するスケジュールを指定します。秒、分、時間、日、月、曜日、または年に正確なスケジュールを指定し、[タイムゾーン] ドロップダウンリストからタイムゾーンを選択します。システムは Cron 式とタイムゾーンに基づいてスケジュールを計算し、スケジュールに従ってコマンドを実行します。このオプションは柔軟性を提供し、スケジュールに従ってコマンドタスクを実行する場合に適しています。Cron 式の詳細については、「Cron 式」をご参照ください。

        説明

        最小間隔は 10 秒以上で、スケジュールされた実行のタイムアウト期間よりも短くすることはできません。

        たとえば、[実行頻度] パラメータを [0 0 12 ? * WED 2022] に、[タイムゾーン] パラメータを [(GMT+08:00) Asia/Shanghai] に設定すると、システムは 2022 年の毎週水曜日 12:00:00 (UTC + 08:00) にコマンドを実行します。

    コマンド名

    コマンドの名前を入力します。

    コマンドの説明

    コマンドの説明を入力します。管理とメンテナンスを容易にするために、コマンドの目的など、識別可能な情報を入力することをお勧めします。

    ユーザー名

    ECS インスタンスでコマンドを実行するために使用するユーザー名を指定します。

    セキュリティ上の理由から、最小権限の原則に基づいて、一般ユーザーとして Cloud Assistant コマンドを実行することをお勧めします。詳細については、「一般ユーザーとして Cloud Assistant コマンドを実行する」をご参照ください。

    デフォルトでは、Cloud Assistant コマンドは Linux インスタンスでは root ユーザーによって、Windows インスタンスではシステムユーザーによって実行されます。

    実行パス

    コマンドの実行パスを指定します。コマンドを実行するインスタンスのオペレーティングシステムに基づいて、異なるデフォルトの実行パスが提供されます。

    • Linux インスタンスの場合、デフォルトの実行パスは root ユーザーの /home ディレクトリです。

    • Windows インスタンスの場合、デフォルトの実行パスは C:\Windows\system32 です。

    タイムアウト

    インスタンスでコマンドを実行するための [タイムアウト期間] を指定します。コマンドを実行するタスクがタイムアウトした場合、Cloud Assistant はタスクプロセスを強制終了します。

    単位: 秒。デフォルト値: 60。最小値: 10。 [タイムアウト] パラメータを 10 より小さい値に設定すると、コマンドが実行されるように、システムは値を 10 に変更します。

    タグ

    後続の分類と管理のためにコマンドに追加するタグを指定します。 [タグキー]: タグのキー。 [タグ値]: タグの値。

    説明
    • インスタンスを選択して [実行して保存] をクリックすると、システムはコマンドとコマンド実行タスクにタグを追加します。

    • インスタンスを選択して [実行] をクリックすると、システムはコマンドのみにタグを追加します。

  5. [インスタンスの選択] セクションと [マネージドインスタンスの選択] セクションで、コマンドを実行するインスタンスを選択します。

    説明

    マネージドインスタンスとは、Alibaba Cloud によって提供されていませんが、Cloud Assistant によって管理されているインスタンスです。詳細については、「Alibaba Cloud マネージドインスタンス」をご参照ください。

  6. [実行して保存] または [実行] をクリックして、コマンドタスクをすぐに実行します。

Alibaba Cloud CLI を使用して Cloud Assistant コマンドを作成して実行する

コマンドを 1 回だけ実行する方法の例

  • リクエストの例:

    RunCommand 操作を呼び出して、update という名前の Cloud Assistant コマンドを作成し、インスタンスのオペレーティングシステムを更新します。

    aliyun ecs RunCommand --RegionId 'cn-hangzhou' \
    --Name 'update' --Username 'ecs-user' --Type 'RunShellScript' \
    --CommandContent 'eXVtIC15IHVwZGF0ZQ==' \
    --Timeout '60' --RepeatMode 'Once' --ContentEncoding 'Base64' \
    --InstanceId.1 'i-bp12e0ib2ztibede****'
    説明

    一重引用符 ('') で囲まれた値は、パラメータのサンプル値です。実際のビジネスシナリオに基づいてパラメータを指定してください。

    次の表でパラメータについて説明します。詳細については、「RunCommand」をご参照ください。

    パラメータ

    説明

    RegionId

    cn-hangzhou

    リージョン ID。

    Name

    update

    コマンドの名前。

    Username

    ecs-user

    ECS インスタンスでコマンドを実行するために使用するユーザー名。

    Type

    RunShellScript

    コマンドのタイプ。

    • Linux インスタンスの場合は、このパラメータを RunShellScript に設定します。

    • Windows インスタンスの場合は、このパラメータを RunBatScript または RunPowerShellScript に設定します。

    CommandContent

    eXVtIC15IHVwZGF0ZQ==

    Base64 エンコードされたコマンドのコンテンツ。

    Timeout

    60

    タイムアウト期間。

    RepeatMode

    Once

    実行計画。

    ContentEncoding

    Base64

    コマンドコンテンツのエンコード形式。

    InstanceId.1

    i-bp12e0ib2ztibede****

    コマンドを実行する ECS インスタンス N の ID。この例では、N の値は 1 です。

  • レスポンスの例:

    {
            "CommandId": "c-hz018qlm868****",
            "InvokeId": "t-hz018qlm86d****",
            "RequestId": "1D24FA80-64DB-4842-AB20-25207994418F"
    }

スケジュールに従ってコマンドを実行する方法の例

  • リクエストの例:

    RunCommand 操作を呼び出して、update という名前の Cloud Assistant コマンドを作成し、2022 年の毎日 12:00 (UTC + 08:00) にインスタンスのオペレーティングシステムを更新します。

    aliyun ecs RunCommand --RegionId 'cn-hangzhou' \
    --Name 'update' --Description 'update' --Username 'ecs-user' --Type 'RunShellScript' \
    --CommandContent 'eXVtIC15IHVwZGF0ZQ==' \
    --Timeout '60' --RepeatMode 'Period' --ContentEncoding 'Base64' \
    --Frequency '0 0 12 * * ? 2022 Asia/Shanghai' \
    --InstanceId.1 'i-bp12e0ib2ztibede****'
    説明

    一重引用符 ('') で囲まれた値は、パラメータのサンプル値です。実際のビジネスシナリオに基づいてパラメータを指定してください。

    次の表でパラメータについて説明します。詳細については、「RunCommand」をご参照ください。

    パラメータ

    説明

    RegionId

    cn-hangzhou

    リージョン ID。

    Name

    update

    コマンドの名前。

    Description

    update

    コマンドの説明。

    Username

    ecs-user

    ECS インスタンスでコマンドを実行するために使用するユーザー名。

    Type

    RunShellScript

    コマンドのタイプ。

    • Linux インスタンスの場合は、このパラメータを RunShellScript に設定します。

    • Windows インスタンスの場合は、このパラメータを RunBatScript または RunPowerShellScript に設定します。

    CommandContent

    eXVtIC15IHVwZGF0ZQ==

    Base64 エンコードされたコマンドのコンテンツ。

    Timeout

    60

    タイムアウト期間。

    RepeatMode

    Period

    実行計画。

    ContentEncoding

    Base64

    コマンドコンテンツのエンコード形式。

    Frequency

    0 0 12 * * ? 2022 Asia/Shanghai'

    コマンドを実行するスケジュール。

    InstanceId.1

    i-bp12e0ib2ztibede****

    コマンドを実行する ECS インスタンス N の ID。この例では、N の値は 1 です。

  • レスポンスの例:

    {
            "CommandId": "c-hz018qlm868****",
            "InvokeId": "t-hz018qlm86d****",
            "RequestId": "1D24FA80-64DB-4842-AB20-25207994418F"
    }