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

Compute Nest:ROS テンプレートの作成と検証

最終更新日:Apr 01, 2026

Compute Nest のサービスプロバイダーは、サービスを作成する際に Resource Orchestration Service (ROS) テンプレートを提供する必要があります。このテンプレートでは、プロビジョニングするクラウドリソースとそれらの設定方法を宣言します。これにより、ROS は手動でリソースを作成することなく、完全で再現可能なスタックを自動的にデプロイできます。このトピックでは、VPC を例に、YAML テンプレートを作成し、ROS コンソールで検証する手順を説明します。

テンプレートが検証されたら、そのコンテンツを [テンプレートコンテンツ] コードエディタに貼り付けるか、ファイルとしてアップロードして Compute Nest にインポートします。

テンプレートの作成

ROS は JSON、YAML、および Terraform テンプレートをサポートしています。ご利用のシナリオに基づいて作成方法を選択してください。

方法使用する状況
サンプルテンプレートの変更独立系ソフトウェアベンダー (ISV) のソフトウェアデプロイなど、一般的なシナリオから開始する場合
テキストエディタでゼロから作成サンプルテンプレートでカバーされていない、複雑またはカスタムのインフラストラクチャを構築する場合
Terraform テンプレートの作成既存の Terraform 構成を再利用する場合

サンプルテンプレートの変更:ROS コンソールの サンプルテンプレートページを参照してください。各テンプレートの詳細ページには、調整すべきパラメーターが説明されています。簡単な変更だけで済む場合は、ROS コンソールでのテンプレートの検証 に進んでください。スタック作成ウィザードで直接サンプルテンプレートを選択し、変更できます。

ゼロから作成:任意のテキストエディタを使用します。以下のセクションでは、Elastic Compute Service (ECS) インスタンスを作成する YAML テンプレートの例を使用して、テンプレートの構造を説明します。

Terraform テンプレートの作成:Terraform テンプレートの作成」をご参照ください。

テンプレートの構造

ROS テンプレートは 4 つのセクションで構成されています。Resources は唯一の必須セクションであり、他のセクションは任意ですが、一般的に使用されます。

セクション必須目的
Parameters任意ユーザーがサービスインスタンスを作成する際に設定する入力値を宣言します
Resources必須作成するクラウドリソースのタイプとプロパティを定義します
Outputs任意スタック作成後に返される値 (例:エンドポイント URL) を指定します
Metadata任意コンソール UI でパラメーターをグループ化し、任意で非表示にします

以下のテンプレート例では、セキュリティグループとシェルスクリプトステップを持つ ECS インスタンスを作成します。インラインコメントで各セクションを説明しています。

ROSTemplateFormatVersion: '2015-09-01'
# パラメーター。
Parameters:
  PayType:
    Type: String
    Label:
      en: ECS Instance Charge Type
      zh-cn: the description in Chinese
    Default: PostPaid
    AllowedValues:
      - PostPaid
      - PrePaid
    AssociationProperty: ChargeType
    AssociationPropertyMetadata:
      LocaleKey: InstanceChargeType
  PayPeriodUnit:
    Type: String
    Label:
      en: Pay Period Unit
      zh-cn: the description in Chinese
    Default: Month
    AllowedValues:
      - Month
      - Year
    AssociationProperty: PayPeriodUnit
    AssociationPropertyMetadata:
      Visible:
        Condition:
          Fn::Not:
            Fn::Equals:
              - ${PayType}
              - PostPaid
  PayPeriod:
    Type: Number
    Description:
      en: When the resource purchase duration is Month, the value of Period ranges from 1 to 9, 12, 24, 36, 48, or 60. 
<b><font color='red'> When ECS instance types are PrePaid valid </font> zh-cn: the description in Chinese Label: en: Period zh-cn: the description in Chinese 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: Instance Type zh-cn: the description in Chinese AssociationProperty: ALIYUN::ECS::Instance::InstanceType AssociationPropertyMetadata: ZoneId: ${ZoneId} InstanceChargeType: ${InstanceChargeType} InstancePassword: NoEcho: true Type: String Description: en: Server login password, Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;<>,.?/ Special symbol in) zh-cn: the description in Chinese Label: en: Instance Password zh-cn: the description in Chinese ConstraintDescription: en: Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;<>,.?/ Special symbol in) zh-cn: the description in Chinese 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 Availability Zone zh-cn: the description in Chinese VpcId: AssociationProperty: ALIYUN::ECS::VPC::VPCId Type: String Description: en: Please search the ID starting with (vpc-xxx) from console-Virtual Private Cloud zh-cn: the description in Chinese Label: en: VPC ID zh-cn: the description in Chinese VSwitchId: AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId AssociationPropertyMetadata: VpcId: ${VpcId} ZoneId: ${ZoneId} Type: String Description: en: Instance ID of existing business network switches, console-Virtual Private Cloud-VSwitches under query zh-cn: the description in Chinese Label: en: VSwitch ID zh-cn: the description in Chinese # リソース。 Resources: EcsSecurityGroup: Type: ALIYUN::ECS::SecurityGroup Properties: SecurityGroupName: Ref: ALIYUN::StackName VpcId: Ref: VpcId # セキュリティグループのインバウンドポート。 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: zh-cn: the description in Chinese en: Public IP Addresses 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: PayType Configuration zh-cn: the description in Chinese - Parameters: - EcsInstanceType - InstancePassword Label: default: en: ECS Instance Configuration zh-cn: the description in Chinese - Parameters: - ZoneId - VpcId - VSwitchId Label: default: zh-cn: the description in Chinese en: Choose existing Infrastructure

Parameters

Parameters は、ユーザーがサービスインスタンスを作成する際に設定する入力を宣言します。このテンプレート例では、以下のパラメーターを定義しています。

パラメーター説明
PayType課金方法:PostPaid (従量課金) または PrePaid (サブスクリプション)
PayPeriodUnitサブスクリプション期間単位:Month または Year
PayPeriodリソースのサブスクリプション期間
EcsInstanceTypeECS インスタンスタイプ
InstancePasswordECS インスタンスのログインパスワード (8~30 文字。大文字、小文字、数字、特殊文字のうち 3 種類を含む必要があります)
ZoneIdvSwitch がデプロイされるゾーン
VpcIdVPC ID
VSwitchIdvSwitch ID

Resources

Resources は作成する対象を定義します。各エントリは Type (ROS リソースタイプ識別子) と Properties (リソース構成) を指定します。このテンプレート例では、以下を作成します。

ROS リソースタイプ説明
ALIYUN::ECS::SecurityGroupポート 80 にインバウンドルールを持つセキュリティグループ
ALIYUN::ECS::InstanceGroupECS インスタンスグループ
ALIYUN::ECS::RunCommandインスタンス作成後にインスタンス上で実行されるシェルスクリプト
説明

サポートされているリソースタイプとそのプロパティの完全なリストについては、「サービス別のリソースタイプリスト」をご参照ください。

Outputs

Outputs は、スタック作成後に返される値を定義します。この例では、サービス利用者がすぐにサービスにアクセスできるように、パブリック IP アドレスが HTTP エンドポイントとして返されます。

Metadata

Metadata は、コンソールでパラメーターがどのように表示されるかを制御します。Metadata を使用して、Parameters セクションで定義されたパラメーターをグループ化し、特定のパラメーターを非表示にすることができます。ALIYUN::ROS::Interface > ParameterGroups を使用して関連するパラメーターをグループ化し、構成フォームのナビゲーションを容易にします。このテンプレート例では、以下のグループを定義しています。

グループパラメーター
PayType ConfigurationPayTypePayPeriodUnitPayPeriod
ECS Instance ConfigurationEcsInstanceTypeInstancePassword
Choose existing InfrastructureZoneIdVpcIdVSwitchId

MappingsConditions などの高度なテンプレート機能については、「テンプレートの構造」をご参照ください。

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

ROS コンソールでスタックを作成すると、テンプレートの構文とリソースプロパティ値の両方がチェックされます。スタックの作成が成功すれば、テンプレートが Compute Nest にインポートできる状態であることが確認できます。スタックの作成に失敗した場合、エラーメッセージは問題が構文エラーか無効なリソースプロパティかを示します。失敗の詳細を確認し、テンプレートを修正して再試行してください。

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

  2. 左側のナビゲーションウィンドウで、[デプロイメント] > [スタック] を選択します。

  3. [スタック] ページ左上の [スタックの作成] をクリックし、[ROS を使用] を選択します。

  4. [スタックの作成] ページで、以下の手順を実行します。

    1. [テンプレートの指定] セクションで、[既存のテンプレートを選択] を選択し、ご利用のテンプレートコンテンツを [テンプレートコンテンツ] コードエディタに貼り付けます。または、[サンプルテンプレートを使用] を選択してサンプルから開始します。

    2. [次へ] をクリックします。[パラメーターの設定] ステップで、パラメーター設定を確認し、[テンプレートリソースのプレビュー] をクリックしてリソース構成を確認します。

    3. (任意) [次へ] をクリックして、[コンプライアンス事前チェック (任意)] ステップを完了します。

    4. (任意) [次へ] をクリックして、[確認 (任意)] ステップを完了します。

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

次のステップ

  • テンプレートの構造 — Mappings、Conditions、Rules などの高度なテンプレート機能について説明します

  • ROS とは — ROS がクラウドリソースをどのようにオーケストレーションするかを学びます