Compute Nest は、ファイルデプロイメントパッケージを使用して、クラウドリソースにパブリックインターネットアクセスがない場合やダウンロードソースが不安定な場合など、スクリプトベースのデプロイにおけるソフトウェアダウンロードの課題に対処します。このトピックでは、ファイルデプロイメントパッケージのユースケースと原則を説明し、その作成方法と使用方法を解説します。
背景
-
ファイルデプロイメントパッケージを使用する理由
Compute Nest は、ファイルデプロイメントパッケージを使用して、クラウドリソースにパブリックインターネットアクセスがない、ファイルサイズが大きい、またはソースが不安定であることによって引き起こされるソフトウェアのダウンロードに関する課題に対処します。サービスプロバイダーは、指定された OSS バケットにファイルをアップロードします。その後、システムはファイルを複数のリージョンに自動的にレプリケートします。デプロイ中、テンプレート内のプレースホルダーをデプロイリージョンのプライベート OSS URL に置き換えることで、安定した安全なデータ転送を保証します。
-
ファイルデプロイメントパッケージの利点
サービスプロバイダーは、テンプレートにプレースホルダーを追加し、Compute Nest コンソールでファイルの関連付けを設定するだけで済みます。
-
ファイルのレプリケーション:Compute Nest は、サービスプロバイダーがアップロードしたファイルを共有 Compute Nest アカウントにコピーします。このアカウント内で、ファイルは複数のリージョンにまたがる OSS バケットにレプリケートされます。
-
ファイルの関連付け:Compute Nest は、テンプレート内のプレースホルダー (
{{ computenest::file::xxx }}) を認識し、サービス作成時にファイルデプロイメントパッケージと関連付けます。ユーザーがサービスをデプロイすると、Compute Nest はデプロイリージョンを特定し、プレースホルダーを対応するリージョンの OSS URL に自動的に置き換え、動的な URL 置換を可能にします。 -
権限管理:デプロイメントパッケージは、関連付けられたサービスの権限を継承します。デプロイメントパッケージがどのサービスにも関連付けられていない場合、プライベートです。少なくとも 1 つのパブリックサービスに関連付けられている場合、デプロイメントパッケージはパブリックになります。プライベートサービスのみに関連付けられている場合、デプロイメントパッケージはプライベートのままです。
-
プライベートネットワーク経由のダウンロード:Compute Nest は、プライベートネットワーク経由でファイルデプロイメントパッケージをダウンロードします。プレースホルダーを置き換える際、Compute Nest はデフォルトでプライベート OSS HTTP URL を生成し、これにより安定した安全なダウンロードが保証されます。
-
使用方法
サービスの ROS テンプレートでプレースホルダーを定義し、ファイルデプロイメントパッケージに関連付けます。サービスインスタンスが作成されると、Compute Nest はテンプレート内のプレースホルダーを自動的に識別し、サービスインスタンスのデプロイリージョンに対応するファイル URL に置き換えます。
ファイル関連付けプレースホルダーの固定表現は次のとおりです:
-
(推奨) デプロイメントパッケージのファイル URL がプライベート URL の場合は、次の表現を使用します:
{{ computenest::file::${key} }}。 -
デプロイメントパッケージのファイル URL がパブリック URL の場合は、次の表現を使用します:
{{ computenest::publicfile::${key} }}。説明これらの表現では、
${key}は任意の単語にできますが、スペースを含めることはできません。
次の YAML の例は、ファイルデプロイメントパッケージを使用してデプロイする方法を示しています:
-
テンプレートでファイル関連付けプレースホルダーを定義する際は、プレースホルダーを一重引用符 ('') または二重引用符 ("") で囲むことを推奨します。
-
wgetコマンドを使用してファイルをダウンロードする場合は、-O パラメーターを追加して出力ファイル名を指定することを推奨します。
-
標準テンプレートでプレースホルダーを定義します。
次の例は、
userDataセクションでプレースホルダーを定義してファイルをダウンロードし、それぞれTestFirst.txtとTestSecond.tarに名前を変更する方法を示しています。TiDBServer: Type: ALIYUN::ECS::InstanceGroup Properties: …… UserData: Fn::Sub: - | #!/bin/sh sleep 10 wget '{{ computenest::file::DemoFirst }}' -O TestFirst.txt wget '{{ computenest::file::DemoSecond }}' -O TestSecond.tar …… -
データベースタイプの
MigrateTaskでは、フラグを定義します。SQLDump: Type: ALIYUN::RDS::MigrateTask Properties: …… DBName: mytest DBInstanceId: Fn::GetAtt: - Database - DBInstanceId OssObjectPositions: {{ computenest::file::DemoFirst }}
ファイルデプロイメントパッケージの作成と使用
前提条件
アップロードするファイルを準備します。
ファイルデプロイメントパッケージの作成
-
デプロイパッケージの基本情報を設定します。
-
Compute Nest コンソールにログインします。左側メニューで、サービスアーティファクト を選択します。デプロイメントオブジェクト タブで、リソースの作成 をクリックします。
-
基本情報 セクションで、次のパラメーターを設定します。
パラメーター
説明
[リソース名]
名前には、中国語文字、英字、数字、アンダースコア (_) を使用できます。名前の長さは 3~128 文字である必要があります (中国語1文字は2文字としてカウントされます)。デプロイパッケージ名は作成後に変更できません。
[バージョン名]
名前には、中国語文字、英字、数字、アンダースコア (_) を使用できます。名前の長さは 3~50 文字である必要があります (中国語1文字は2文字としてカウントされます)。
[リソースの説明]
説明は 10~500 文字である必要があります。中国語1文字は2文字としてカウントされます。
[リソースグループ]
デプロイパッケージが属するリソースグループを選択します。
リソースグループを使用すると、使用状況、権限、または所有者別にクラウドリソースをグループ化でき、組織内の複数のユーザーとプロジェクトの階層的なリソース管理が可能になります。詳細については、「リソースグループ」をご参照ください。
[タグの設定]
完全なタグキーとタグ値を入力または選択して、デプロイパッケージにタグを追加します。リソースには最大 20 個のタグを関連付けることができます。利用可能なタグキーまたは値がない場合は、カスタムタグを作成できます。詳細については、「カスタムタグの作成とバインド」をご参照ください。
-
-
ファイルデプロイメントパッケージを設定します。
-
リソースの内容 セクションで、リソースタイプ を ファイル に設定します。
-
ファイルをアップロードするリージョンを選択します。次に、ファイルサイズに応じて、ローカルファイルをアップロード または 大きなファイルのアップロード (5 GB 超) を選択します。
-
(任意) スクリプトコマンドを設定しますか 機能を使用します。スクリプトコマンドは主にサービスインスタンスのアップグレードに使用され、ファイルの関連付けには必要ありません。
-
イメージの配布 セクションでは、ファイルデプロイメントパッケージはデフォルトですべてのリージョンに配布されます。
-
リソースの公開 をクリックします。
デプロイメントパッケージが公開されると、その現在のバージョンは変更できません。変更を加えるには、新しいバージョンまたは新しいデプロイメントパッケージを作成する必要があります。
-
-
デプロイメントパッケージを表示します。
-
[サービスデプロイメントパッケージ] ページに戻ります。デプロイメントパッケージの名前をクリックして リソースの詳細 ページに移動し、デプロイの進行状況を表示します。
-
ステータスが 使用可能 に変わったら、表示 をクリックして、ファイルデプロイメントパッケージの 配布結果 を取得します。
配布結果には、[配布リージョン] と対応する配布リンクが含まれ、China (Beijing) や China (Ulanqab) など、デプロイメントパッケージが配布された各リージョンのレコードが表示されます。
-
ファイルデプロイメントパッケージの使用
このセクションでは、プライベートサービスの作成を例に、ファイルデプロイメントパッケージの設定について説明します。
-
Compute Nest コンソールにログインします。
-
左側のナビゲーションペインで、[マイサービス] をクリックします。[マイサービス] ページの [作成済みサービス] タブで、[サービスの作成] をクリックします。
-
[新しいサービスの作成] ページで、作成方法として [カスタム起動] を選択し、サービスタイプとして プライベートデプロイサービス を選択し、次へ:サービスの設定 をクリックします。
-
サービスの基本情報を入力し、ROS テンプレートを選択します。
ROS テンプレートに
{{ computenest::file::test }}または{{ computenest::publicfile::test }}が含まれている場合は、アーティファクトの関連付け セクションでファイルの関連付けの設定を行うことができます。 -
ファイルの関連付けの設定 にある デプロイメントオブジェクトの関連付け をクリックします。表示されるダイアログボックスで、デプロイメントパッケージとバージョンを選択し、確定する をクリックします。
ダイアログボックスの [関連付け識別子] フィールドには、
{{ computenest::file::springboot }}のような値が表示され、ファイルタイプのデプロイメントパッケージのみ選択できます。設定が完了すると、[関連付け識別子] フィールドに対応するテンプレート変数 (例:
{{ computenest::file::springboo…) が表示され、[関連付けられたデプロイメントパッケージ] フィールドに選択したデプロイメントパッケージの名前が表示されます。 -
サービスを作成してテストした後、Compute Nest の審査基準に照らしてサービスをテストし、審査のために提出します。詳細については、「審査基準」をご参照ください。
-
サービスが審査に合格した後、サービスを公開します。詳細については、「サービスの公開」をご参照ください。
ユーザーがサービスインスタンスを作成すると、Compute Nest はテンプレート内のプレースホルダーをサービスインスタンスのデプロイリージョンのファイル URL に自動的に置き換えます。
-
次のコードは、標準テンプレートのプレースホルダーの置換結果を示しています。
-
デプロイメントパッケージがプライベート URL を使用する場合、結果は次のようになります:
Resources: ECSInstances: Type: 'ALIYUN::ECS::InstanceGroup' Properties: UserData: | #!/bin/sh mkdir /root/lzq cd /root/lzq wget 'https://computenest-artifacts-cn-wulanchabu.oss-cn-wulanchabu-internal.aliyuncs.com/xxx/cn-zhangjiakou/xxx/sample-text.txt' wget 'https://computenest-artifacts-cn-wulanchabu.oss-cn-wulanchabu-internal.aliyuncs.com/xxx/cn-guangzhou/xxx/changes.txt' wget {{DemoThird}} SystemDiskCategory: -
デプロイメントパッケージがパブリック URL を使用する場合、結果は次のようになります:
Properties: UserData: | #!/bin/sh mkdir /root/lzq cd /root/lzq wget 'https://computenest-artifacts-cn-wulanchabu.oss-cn-wulanchabu.aliyuncs.com/xxx/cn-beijing/xxx/virtual-background-1976.jpg' wget {{DemoThird}} SystemDiskCategory: Ref: SystemDiskCategory VpcId:
-
-
データベースタイプの
MigrateTaskでは、Compute Nest はファイルデプロイメントパッケージの URL をOssObjectPositionsパラメーターの形式に変更します。OssObjectPositions パラメーターはコロン (
:) で区切られた 3 つの部分 (OSS エンドポイント、OSS バケット名、OSS 上のバックアップファイルのキー) で構成されているため、Compute Nest はファイルデプロイメントパッケージの URL をこの形式に変換します。例:oss-ap-southeast-1.aliyuncs.com:rdsmssqlsingapore:autotest_2008R2_TestMigration_FULL.bak。詳細については、「ALIYUN::RDS::MigrateTask」をご参照ください。}, "OssObjectPositions": "oss-cn-hangzhou-internal.aliyuncs.com:computenest-artifacts-cn-hangzhou:xxx/cn-zhangjiakou/xxx/sample-text.txt", "DBInstanceId": { ... }
-
関連トピック
-
Compute Nest サービスの作成方法の詳細については、「サービスの作成」をご参照ください。
-
デプロイメントパッケージまたは特定のバージョンが不要になった場合は、削除できます。詳細については、「デプロイメントパッケージの削除」をご参照ください。
-
デプロイメントパッケージの配布リージョンまたは内容を変更するには、新しいバージョンを作成できます。詳細については、「バージョンの作成」をご参照ください。
-
デプロイメントパッケージのサービス更新設定を構成するには、「サービス更新設定の構成」をご参照ください。