OSS デプロイは、Object Storage Service (OSS) からアプリケーションのソースファイルを Elastic Compute Service (ECS) インスタンスにダウンロードし、シェルスクリプトを実行してアプリケーションを起動または停止します。
仕組み
-
Auto Scaling (ESS) グループにデプロイする場合、スケーリングアクティビティはデプロイ中に一時停止し、結果にかかわらずデプロイが完了すると自動的に再開します。
-
各デプロイは、停止してから起動するシーケンスで実行されます。まず停止スクリプトが実行され、次に起動スクリプトが実行されます。
-
デプロイの作成と公開
OSS 内のアプリケーションのソースファイルの場所と、起動スクリリプトおよび停止スクリプトを指定します。
リリースタスクを作成し、リリースモードを選択して、ターゲットのアプリケーション グループにデプロイを公開します。
-
自動デプロイフロー
-
OSS ファイルの場所、起動スクリプト、停止スクリプトなどのデプロイ設定を取得します。
-
各インスタンスの作業ディレクトリに OSS ファイルをダウンロードします。
-
停止スクリプトを実行して、以前のバージョンのアプリケーションを停止します。
-
起動スクリプトを実行して、新しいバージョンのアプリケーションを起動します。
-
注意事項
-
デプロイは Linux インスタンスでのみサポートされています。
-
起動スクリプトと停止スクリプトは、シェルスクリプトである必要があります。
操作手順
-
アプリケーションを作成し、ECS インスタンスをインポートします。
-
ECS インスタンスがない場合は、[ECS console - Custom Launch] ページに移動して Linux ECS インスタンスを作成します。
以下のサンプルスクリプトは、これらのイメージ用です。別のイメージを使用する場合は、それに応じてスクリプトを修正する必要があります。
-
[ECS console - Application management] ページに移動し、既存のリソースをインポートして作成 をクリックしてアプリケーションとアプリケーション グループを作成し、ECS インスタンスをアプリケーション グループにインポートします。
-
-
OSS デプロイを作成します。
-
公式サンプルの JAR パッケージをダウンロードし、OSS にアップロードします。
-
[ECS console - Application management] ページに移動します。[My Applications] タブで、対象のアプリケーションの名前をクリックします。
-
アプリケーションの詳細ページで デプロイメント タブを選択し、デプロイメントの作成 をクリックします。
-
デプロイメントの作成 ページで、[Deployment Type] を OSS ファイル に設定し、パラメーターを設定して、OK をクリックします。
-
OSS ファイル情報:OSS バケットと JAR パッケージのファイルパスを指定します。
ECS インスタンスと OSS バケットが同じリージョンにある場合は、内部ネットワークダウンロードを選択すると、ダウンロード速度が向上します。
-
作業ディレクトリ:起動スクリプトと停止スクリプトの実行ディレクトリを設定します。OSS ファイルは自動的にこのディレクトリにダウンロードされます。例:
/root/deploy。 -
Alibaba Cloud Linux
start_application() { set -e yum install -y maven-3.5.4 java -jar ./sample-spring-1.0-SNAPSHOT.jar & } start_applicationUbuntu
start_application() { set -e 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
-
-
-
デプロイリストに戻り、作成したデプロイを見つけて 公開 をクリックします。対象のグループを選択し、OK をクリックしてデプロイを開始します。
-
結果を検証します。
対象インスタンスの詳細ページに移動します。 [Connect] をクリックし、[Workbench] を選択します。 ページ上のプロンプトに従ってターミナルにログインします。
-
curl http://localhost:8080/helloコマンドを実行します。Alibaba Spring Sample!というレスポンスは、デプロイが成功したことを示します。
主要パラメーター
|
パラメーター |
説明 |
|
OSS リージョン |
ソース OSS バケットのリージョン。 |
|
OSS バケット |
ソースファイルを含む OSS バケット。 |
|
OSS ファイル |
OSS バケット内のソースファイル。 |
|
OSS ファイルバージョン |
ファイルのバージョン ID。バケットでバージョニングが有効になっている場合にのみ必要です。バージョニングが無効になっている場合は、このフィールドを空のままにします。 |
|
内部ネットワークダウンロード |
ECS インスタンスと OSS バケットが同じリージョンにある場合に、このオプションを選択します。 |
|
作業ディレクトリ |
ソースファイルがダウンロードされ、起動スクリプトと停止スクリプトが実行されるディレクトリ。
|
|
アプリケーション起動スクリプト |
アプリケーションの起動に使用されるシェルスクリプト。 |
|
アプリケーション停止スクリプト |
アプリケーションを停止するためのシェルスクリプトです。 スクリプトは、現在および以前のバージョンのアプリケーションを正しく停止できる必要があります。また、アプリケーションが実行されていない場合でも、エラーを発生させることなく正常に終了する必要があります。 たとえば、次のスクリプトは、
|