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

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

最終更新日:Sep 05, 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. デプロイメントの作成 ページで、[Deployment Package Type] を コマンド実行 に設定し、パラメーターを設定してから 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. アプリケーション詳細ページで、[パラメーター] タブを選択し、パラメータの作成 をクリックします。ACR Personal Edition のユーザー名とパスワード用に、2 つのパラメーター username と password を作成します。セキュリティを確保するために、password パラメーターを暗号化されたパラメーターとして設定します。

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

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

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

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

        repo は ACR Personal Edition リポジトリのアドレス、image はイメージの完全な名前です。 起動スクリプトの対応するパラメーターを、これら 2 つのフィールドの値で置き換えます。
        ### 現在のバージョンのアプリケーションを起動します
        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