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

CloudOps Orchestration Service:コマンドのみのデプロイメントパッケージ

最終更新日:Jun 23, 2026

コマンドのみのデプロイメントパッケージは、ソースファイルを使用せず、スクリプトのみでアプリケーションをデプロイします。

仕組み

重要
  • Auto Scaling (ESS) グループにデプロイする場合、スケーリングアクティビティはデプロイ中に一時停止し、結果にかかわらずデプロイが完了すると自動的に再開します。

  • 各デプロイは、停止してから起動するシーケンスで実行されます。まず停止スクリプトが実行され、次に起動スクリプトが実行されます。

  1. デプロイの作成と公開

    OSS 内のアプリケーションのソースファイルの場所と、起動スクリリプトおよび停止スクリプトを指定します。

    リリースタスクを作成し、リリースモードを選択して、ターゲットのアプリケーション グループにデプロイを公開します。

  2. 自動デプロイメントプロセスは次のとおりです:

    1. サービスは、起動スクリプトとシャットダウンスクリプトを含むデプロイメントパッケージ情報を取得します。

    2. サービスは、シャットダウンスクリプトを実行して、既存のアプリケーションバージョンを停止します。

    3. サービスは、起動スクリプトを実行して、新しいアプリケーションバージョンを開始します。

注意事項

  • デプロイは Linux インスタンスでのみサポートされています。

  • 起動スクリプトと停止スクリプトは、シェルスクリプトである必要があります。

操作手順

Java アプリケーションの例

  1. アプリケーションを作成し、ECS インスタンスをインポートします。

    1. ECS インスタンスがない場合は、[ECS console - Custom Launch] ページに移動して Linux ECS インスタンスを作成します。

      以下のサンプルスクリプトは、これらのイメージ用です。別のイメージを使用する場合は、それに応じてスクリプトを修正する必要があります。
    2. [ECS console - Application management] ページに移動し、既存のリソースをインポートして作成 をクリックしてアプリケーションとアプリケーション グループを作成し、ECS インスタンスをアプリケーション グループにインポートします。

  2. デプロイメントパッケージを作成します。

    1. [ECS console - Application management] ページに移動します。[My Applications] タブで、対象のアプリケーションの名前をクリックします。

    2. アプリケーションの詳細ページで デプロイメント タブを選択し、デプロイメントの作成 をクリックします。

    3. デプロイメントの作成 ページで、[デプロイメントパッケージタイプ]コマンド実行 に設定し、パラメーターを設定してから OK をクリックします。

      • [作業ディレクトリ]: 起動スクリプトとシャットダウンスクリプトの作業ディレクトリを指定します。例: /root/deploy

      • [アプリケーション起動スクリプト]

        Alibaba Cloud Linux

        start_application() {
          set -e
          curl -O https://oos-public-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/code-deploy/sample-spring-1.0-SNAPSHOT.jar
          yum install -y maven-3.5.4
          java -jar ./sample-spring-1.0-SNAPSHOT.jar &
        }
        
        start_application

        Ubuntu

        start_application() {
          set -e
          curl -O https://oos-public-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/code-deploy/sample-spring-1.0-SNAPSHOT.jar
          apt update
          apt install -y maven
          java -jar ./sample-spring-1.0-SNAPSHOT.jar &
        }
        
        start_application
      • [アプリケーションシャットダウンスクリプト]

        ### アプリケーションが存在する場合、停止します
        stop_application() {
          PID=$(ps -ef | grep "sample-spring-1.0-SNAPSHOT.jar" | grep -v "grep" | awk '{print $2}')
          if [ -n "$PID" ]; then
            kill -9 $PID
          fi
        }
        
        stop_application
  3. デプロイリストに戻り、作成したデプロイを見つけて 公開 をクリックします。対象のグループを選択し、OK をクリックしてデプロイを開始します。

  4. 結果を検証します。

    1. 対象インスタンスの詳細ページに移動します。 [Connect] をクリックし、[Workbench] を選択します。 ページ上のプロンプトに従ってターミナルにログインします。

    2. curl http://localhost:8080/hello コマンドを実行します。Alibaba Spring Sample! というレスポンスは、デプロイが成功したことを示します。

Docker アプリケーションの例

  1. アプリケーション、グループ、および ECS インスタンスを準備します。

    デプロイ前に、ECS Application Management でアプリケーションとグループを作成し、ご利用の ECS インスタンスをグループに追加します。

    1. ECS インスタンスをお持ちでない場合は、ECS console - Custom Launch ページにアクセスして Linux ECS インスタンスを作成します。

      以下のサンプルスクリプトはこれらのイメージ向けです。別のイメージを使用する場合は、スクリプトを適宜修正する必要があります。
    2. ECS console - Application management ページにアクセスし、既存のリソースをインポートして作成 をクリックしてアプリケーションとアプリケーショングループを作成し、ECS インスタンスをアプリケーショングループにインポートします。

    3. グループ内の ECS インスタンスに Docker をインストールします。アプリケーショングループの O&M タブで、ACS-ECS-BulkyConfigureOOSPackageWithTemporaryURL を選択して Docker を一括インストールします。

      カスタムイメージから ECS インスタンスを作成した場合、この方法で拡張機能をインストールすることはできません。リモート接続してDocker を手動でインストールする必要があります。
  2. デプロイメントパッケージを作成します。

    1. サンプルイメージをローカルマシンにプルし、イメージを ACR Personal Edition リポジトリにプッシュします。

      docker pull aliyun-computenest-opensource-registry.cn-hangzhou.cr.aliyuncs.com/default/aliyun-code-deploy:latest
    2. [ECS console - Application management] ページに移動します。[My Applications] タブで、対象のアプリケーションの名前をクリックします。

    3. アプリケーションの詳細ページで、[Parameters] タブを選択し、パラメータの作成 をクリックします。ACR Personal Edition のユーザー名とパスワード用の、usernamepassword の 2 つのパラメーターを作成します。セキュリティを確保するため、password パラメーターを暗号化されたパラメーターとして設定します。

    4. アプリケーションの詳細ページで デプロイメント タブを選択し、デプロイメントの作成 をクリックします。

    5. デプロイメントの作成 ページで、[デプロイメントパッケージタイプ]コマンド実行 に設定し、パラメーターを設定してから OK をクリックします。

      • [作業ディレクトリ]: 起動スクリプトとシャットダウンスクリプトの実行ディレクトリを指定します。例: /root/deploy

      • [アプリケーション起動スクリプト]<repo><image> のプレースホルダーを、ACR Personal Edition リポジトリとイメージの値に置き換えます。

        次の図では、最初のフィールドが repo で、2 番目のフィールドが image です。起動スクリプト内の対応するパラメーターを、これら 2 つのフィールドの値で置き換えます。image
        ### 現在のバージョンのアプリケーションを起動します
        start_application() {
           repo="<repo>"
           image="<image>"
           container_name="my-container"
           docker login --username=${username} --password=${password} $repo
           docker pull $image
           docker run -d -p 8080:8080 --name $container_name $image
        }
        
        start_application
      • [アプリケーションシャットダウンスクリプト]

        ### コンテナが存在する場合、停止します
        stop_application() {
          # 名前でコンテナを検索し、存在する場合は削除します。
          container_name="my-container"
          container_id=$(docker ps -aq -f name=${container_name}) 
          if [ -n "$container_id" ]; then
            docker rm -f $container_id
          fi
        }
        
        stop_application
  3. デプロイリストに戻り、作成したデプロイを見つけて 公開 をクリックします。対象のグループを選択し、OK をクリックしてデプロイを開始します。

  4. 結果を検証します。

    1. 対象インスタンスの詳細ページに移動します。 [Connect] をクリックし、[Workbench] を選択します。 ページ上のプロンプトに従ってターミナルにログインします。

    2. curl http://localhost:8080/hello コマンドを実行します。Alibaba Spring Sample! というレスポンスは、デプロイが成功したことを示します。

主要なパラメーター

[パラメーター]

[説明]

[作業ディレクトリ]

起動スクリプトとシャットダウンスクリプトの作業ディレクトリ。

  • 絶対パスを入力します。

  • ディレクトリは事前に存在する必要はありません。実行時に自動的に作成されます。

[アプリケーション起動スクリプト]

アプリケーションを起動するシェルスクリプト。

[アプリケーションシャットダウンスクリプト]

アプリケーションを停止するためのシェルスクリプトです。 スクリプトは、現在および以前のバージョンのアプリケーションを正しく停止できる必要があります。また、アプリケーションが実行されていない場合でも、エラーを発生させることなく正常に終了する必要があります。

たとえば、次のスクリプトは、my-container という名前のコンテナを停止します。このスクリプトは、すべてのコンテナバージョンが同じ名前を共有すると想定しており、コンテナが存在しない場合はエラーを報告しません:

# アプリケーション名を指定します
APP_NAME="sample-app.jar"

# ps コマンドでプロセスの PID を取得します
PID=$(ps -ef | grep "${APP_NAME}" | grep -v "grep" | awk '{print $2}')

# PID が存在する場合、プロセスを kill します
if [ -n "$PID" ]; then
  kill -9 $PID
fi