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

Compute Nest:リソースオーケストレーション

最終更新日:Jun 22, 2026

Compute Nest でサービスを作成する際、サービスプロバイダーはテンプレートを提供する必要があります。まずテンプレートを作成し、その内容を Compute Nest コンソールのテンプレートエディターに貼り付けるか、テンプレートファイルをアップロードする必要があります。このトピックでは、Virtual Private Cloud (VPC) の作成を例に、JSON または YAML でテンプレートを作成し、Resource Orchestration Service (ROS) コンソールで検証する方法について説明します。

背景情報

Compute Nest のテンプレートは、本質的に Resource Orchestration Service (ROS) のテンプレートです。ROS で定義された仕様に従ってスタックテンプレートを作成できます。テンプレートでは、ECS インスタンスや ApsaraDB RDS インスタンスなどの必要なクラウドリソースと、それらの間の依存関係を定義できます。ROS オーケストレーションエンジンは、テンプレートに基づいてすべてのリソースを自動的に作成および設定し、自動デプロイと運用を可能にします。Resource Orchestration Service は、クラウドリソース管理を簡素化する Alibaba Cloud サービスです。詳細については、「Resource Orchestration Service とは」をご参照ください。

テンプレートの作成

ROS は、JSON/YAML および Terraform 構文で記述されたテンプレートをサポートしています。サンプルを修正するか、ゼロから作成することでテンプレートを作成できます。

  • 一般的なシナリオ向けに、ROS はテンプレートサンプルを提供しています。ROS コンソールの [テンプレートサンプル] ページから、適切なリファレンステンプレートを選択して変更できます。Isvソフトウェアの展開 カテゴリ配下の 利用イメージ のテンプレートは、Compute Nest シナリオで一般的に使用されます。これらのサンプルの変更手順は、テンプレートの説明に記載されています。

    サンプルテンプレートを使用し、簡単な変更のみが必要な場合は、「ROS コンソールでのテンプレートの検証」セクションに進むことを推奨します。スタック作成時にサンプルテンプレートを選択して修正できます。

  • 複雑なシナリオの場合は、任意のテキストエディターを使用してテンプレートをゼロから作成できます。

  • 複数のファイルを持つ複雑な Terraform プロジェクトがある場合は、Terraform テンプレートを ROS テンプレート形式に変換することを推奨します。これにより、Terraform 設定全体を単一のファイルにパッケージ化できます。この ROS 形式のテンプレートを Compute Nest コンソールに貼り付けると、システムは自動的にその内容を Terraform デプロイメントとして認識します。これによりプロセスが簡素化され、複数の Terraform ファイルをアップロードする必要がなくなります。Terraform テンプレートを ROS 形式に変換するには、次の手順に従います。

    • ROS テンプレート変換ツールをインストールします。pip の使用を推奨します。他のインストール方法の詳細については、「テンプレートコンバーターのインストール」をご参照ください。

      pip install alibabacloud-ros-tran
    • すべての Terraform ファイルを単一のディレクトリに配置します。次のコマンドを実行して、Terraform テンプレートを ROS テンプレートに変換します。{terraform_path} を Terraform ファイルの親ディレクトリのパスに置き換えてください。

      rostran transform  {terraform_path} -S terraform --force --compatible --target-format yaml    
    • 前のステップで生成された ROS テンプレートを Compute Nest コンソールに貼り付けます。デプロイメント方法として ROS を選択します。すると、システムは自動的にそれを Terraform テンプレートとして認識し、デプロイメント方法を Terraform に設定します。

次の YAML テンプレートは、ECS インスタンスを作成する方法を示しています。

ROSTemplateFormatVersion: '2015-09-01'
# パラメーター
Parameters:
  PayType:
    Type: String
    Label:
      en: ECS インスタンスの課金方法
    Default: PostPaid
    AllowedValues:
      - PostPaid
      - PrePaid
    AssociationProperty: ChargeType
    AssociationPropertyMetadata:
      LocaleKey: InstanceChargeType
  PayPeriodUnit:
    Type: String
    Label:
      en: サブスクリプション期間の単位
    Default: Month
    AllowedValues:
      - Month
      - Year
    AssociationProperty: PayPeriodUnit
    AssociationPropertyMetadata:
      Visible:
        Condition:
          Fn::Not:
            Fn::Equals:
              - ${PayType}
              - PostPaid
  PayPeriod:
    Type: Number
    Description:
      en: サブスクリプション期間が月の場合、期間の値は 1 から 9、12、24、36、48、または 60 の範囲です。
<b><font color='red'> このパラメーターは、ECS インスタンスの課金方法が PrePaid の場合にのみ有効です。</font> Label: en: 期間 Default: 1 AllowedValues: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 AssociationProperty: PayPeriod AssociationPropertyMetadata: Visible: Condition: Fn::Not: Fn::Equals: - ${PayType} - PostPaid EcsInstanceType: Type: String Label: en: インスタンスタイプ AssociationProperty: ALIYUN::ECS::Instance::InstanceType AssociationPropertyMetadata: ZoneId: ${ZoneId} InstanceChargeType: ${InstanceChargeType} InstancePassword: NoEcho: true Type: String Description: en: サーバーにログインするためのパスワード。パスワードは 8~30 文字で、大文字、小文字、数字、および ()`~!@#$%^&*_-+=|{}[]:;<>,.?/ などの特殊文字のうち、少なくとも 3 種類を含む必要があります。 Label: en: インスタンスのパスワード ConstraintDescription: en: パスワードは 8~30 文字で、大文字、小文字、数字、および ()`~!@#$%^&*_-+=|{}[]:;<>,.?/ などの特殊文字のうち、少なくとも 3 種類を含む必要があります。 AssociationProperty: ALIYUN::ECS::Instance::Password AllowedPattern: '^[a-zA-Z0-9-\(\)\`\~\!\@\#\$\%\^\&\*\_\-\+\=\|\{\}\[\]\:\;\<\>\,\.\?\/]*$' MinLength: 8 MaxLength: 30 ZoneId: Type: String AssociationProperty: ALIYUN::ECS::Instance::ZoneId Label: en: vSwitch のアベイラビリティゾーン VpcId: AssociationProperty: ALIYUN::ECS::VPC::VPCId Type: String Description: en: リソースをデプロイする VPC の ID。通常、ID は `vpc-` で始まります。 Label: en: VPC ID VSwitchId: AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId AssociationPropertyMetadata: VpcId: ${VpcId} ZoneId: ${ZoneId} Type: String Description: en: 指定された VPC およびアベイラビリティゾーン内の vSwitch の ID。 Label: en: vSwitch ID # リソース Resources: EcsSecurityGroup: Type: ALIYUN::ECS::SecurityGroup Properties: SecurityGroupName: Ref: ALIYUN::StackName VpcId: Ref: VpcId # セキュリティグループの Ingress ルール SecurityGroupIngress: - PortRange: 80/80 Priority: 1 SourceCidrIp: 0.0.0.0/0 IpProtocol: tcp NicType: internet EcsInstanceGroup: Type: ALIYUN::ECS::InstanceGroup Properties: # インスタンス名 InstanceName: Fn::Join: - '-' - - Ref: ALIYUN::StackName - '[1,4]' IoOptimized: optimized # 課金方法 InstanceChargeType: Ref: PayType PeriodUnit: Ref: PayPeriodUnit Period: Ref: PayPeriod # ネットワーク設定 VpcId: Ref: VpcId ZoneId: Ref: ZoneId VSwitchId: Ref: VSwitchId SecurityGroupId: Ref: EcsSecurityGroup # ディスクタイプとサイズ SystemDiskCategory: cloud_essd SystemDiskSize: 200 MaxAmount: 1 # イメージ ImageId: centos_7 # インスタンスタイプ InstanceType: Ref: EcsInstanceType Password: Ref: InstancePassword # パブリック IP の有効化 AllocatePublicIP: true # パブリック帯域幅 InternetMaxBandwidthOut: 1 ECSRunCommand: Type: ALIYUN::ECS::RunCommand Properties: InstanceIds: Fn::GetAtt: - EcsInstanceGroup - InstanceIds Type: RunShellScript Sync: true Timeout: 3600 CommandContent: |- #!/bin/bash # 出力 Outputs: # パブリック IP アドレスをコンソールに HTTP エンドポイントとして表示 Endpoint: Description: en: パブリック IP アドレス Value: Fn::Sub: - http://${ServerAddress} - ServerAddress: Fn::Select: - 0 - Fn::GetAtt: - EcsInstanceGroup - PublicIps # メタデータ Metadata: ALIYUN::ROS::Interface: # グループ情報 ParameterGroups: - Parameters: - PayType - PayPeriodUnit - PayPeriod Label: default: en: 支払いタイプの設定 - Parameters: - EcsInstanceType - InstancePassword Label: default: en: ECS インスタンスの設定 - Parameters: - ZoneId - VpcId - VSwitchId Label: default: en: 既存のインフラストラクチャの選択

テンプレートには、ParametersResourcesOutputsMetadata の 4 つの主要なセクションがあります。

パラメーター

Parameters セクションでは、ユーザーがサービスインスタンスを作成する際に設定するパラメーターを定義します。次の表に、この例のパラメーターを示します。

パラメーター

説明

PayType

インスタンスの課金方法。

PayPeriodUnit

サブスクリプション期間の単位。

PayPeriod

サブスクリプション期間。

EcsInstanceType

ECS インスタンスのインスタンスタイプ。

InstancePassword

ECS インスタンスのパスワード。

ZoneId

vSwitch のアベイラビリティゾーン。

VpcId

VPC の ID。

VSwitchId

vSwitch の ID。

リソース

Resources セクションでは、作成するリソースを定義します。これには、各リソースの TypeProperties が含まれます。次の表に、この例で定義されているリソースを示します。

リソースタイプ

説明

ALIYUN::ECS::SecurityGroup

ECS セキュリティグループを作成します。

ALIYUN::ECS::InstanceGroup

ECS インスタンスを作成します。

ALIYUN::ECS::RunCommand

ECS インスタンスでシェルスクリプトを実行します。

説明

各 Alibaba Cloud リソースタイプの構文、プロパティ、および戻り値 (出力) については、「リソースタイプインデックス」をご参照ください。この情報は、テンプレートで特定のリソース要件を宣言するのに役立ちます。

出力

Outputs セクションでは、サービス作成後に返される情報を定義します。この例では、出力は Endpoint (http://PublicIp) です。リソースが作成された後、ユーザーはこのアドレスを使用してサービスにアクセスできます。

メタデータ

Metadata セクションでは、Parameters セクションで定義されたパラメーターをグループ化し、カスタムパラメーターを非表示にすることができます。結果は ROS コンソールの [パラメーターの設定] ページで確認できます。次の表に、この例のパラメーターグループを示します。

グループ名

パラメーター

支払いタイプの設定

PayType

PayPeriodUnit

PayPeriod

ECS インスタンスの設定

EcsInstanceType

InstancePassword

既存のインフラストラクチャの選択

ZoneId

VpcId

VSwitchId

マッピングや条件などの高度な機能も使用できます。詳細については、「テンプレート構造」をご参照ください。

Terraform を使用してテンプレートを作成することもできます。詳細については、「Terraform テンプレートの作成」をご参照ください。

ROS コンソールでのテンプレートの検証

テンプレートを作成した後、ROS コンソールでスタックを作成することで検証できます。

  1. ROS コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、スタック をクリックします。

  3. ページの左上隅で、スタックの作成 をクリックします。

  4. スタックの作成 ページで、必須パラメーターを設定します。

    1. テンプレートの指定 セクションで、既存テンプレートの使用 を選択し、お使いのテンプレートをコンテンツエディターに貼り付けます。または、サンプルテンプレートの使用 を選択して変更します。

    2. Next をクリックします。設定パラメーター ページで、パラメーターを確認します。必要に応じて、テンプレートリソースのプレビュー をクリックしてリソース設定を確認します。

    3. オプション: Next をクリックします。コンプライアンス事前チェック (オプション) ページで、パラメーターを設定します。

    4. 任意: Next をクリックします。確認と確認 (オプション) ページで、構成を確認します。

    5. 作成 をクリックします。

    説明

    リソーススタックの構成 (オプション)確認と確認 (オプション) のステップは任意であり、省略可能です。

スタックが正常に作成された場合、テンプレートは有効と見なされます。スタックの作成に失敗した場合は、エラーメッセージを確認し、それに応じてテンプレートを修正してください。