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

Resource Orchestration Service:ROS テンプレートのクイックスタート

最終更新日:Jan 16, 2025

テンプレートは、インフラストラクチャとアーキテクチャの設計図として機能します。テンプレートでクラウドサービスリソースとその依存関係を定義し、Resource Orchestration Service (ROS) を使用してリソースをデプロイできます。このトピックでは、テンプレートの作成とテスト、およびテンプレートでのリソースとその依存関係の定義方法について説明し、テンプレートをすぐに使い始められるようにします。

背景情報

最初の ROS テンプレートを作成する前に、テンプレートの構造をよく理解しておくことをお勧めします。詳細については、「テンプレートコンテンツの使用を開始する」をご参照ください。

このトピックでは、簡単なテンプレートを作成およびテストするプロセスを順を追って説明します。この例では、テンプレートを使用して仮想プライベートクラウド (VPC) を作成します。また、このトピックでは、リソース、リソース間の依存関係、パラメータなどの高度な設定をテンプレートで定義して、さまざまなデプロイシナリオでテンプレートを適用する方法についても説明します。このトピックには、次のセクションが含まれています。

テンプレートの作成

テンプレートを作成するには、テンプレートの リソース セクションで、作成するリソースを宣言する必要があります。サービス別リソースタイプのリスト を参照して、ROS でサポートされているすべてのリソースタイプを表示できます。次に、このドキュメントのリソースタイプをクリックして、サポートされているプロパティと戻り値の詳細を表示できます。テンプレートの作成方法の詳細については、「テンプレートコンテンツの使用を開始する」をご参照ください。次のサンプルテンプレートは、VPC を作成するために使用されます。

ROSTemplateFormatVersion: '2015-09-01'
Resources:
  VPC:
    Type: ALIYUN::ECS::VPC
    Properties:
      VpcName: myvpc
      CidrBlock: 192.168.0.0/16
Outputs:
  VpcId:
    Value:
      Ref: VPC
  VRouterId:
    Value:
      Fn::GetAtt:
        - VPC
        - VRouterId

テンプレートのテスト

テンプレートを作成したら、テンプレートを使用してリソースを想定どおりに作成できるかどうかをテストできます。テンプレートをテストするには、テンプレートを使用してスタックを作成します。

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

  2. スタックを作成します。

    1. 左側のナビゲーションペインで、[スタック] をクリックします。

    2. 上部のナビゲーションバーで、リージョンドロップダウンリストからスタックを作成するリージョンを選択します。たとえば、中国 (杭州) を選択できます。

    3. [スタック] ページで、[スタックの作成] をクリックし、ドロップダウンリストから [ROS を使用する] を選択します。

    4. [テンプレートの選択] ステップで、[テンプレートの指定] セクションの [既存のテンプレートを選択] を選択し、[テンプレートのインポート方法] パラメータを [テンプレートコンテンツを入力] に設定します。[テンプレートコンテンツ] セクションの [ROS] タブで、このトピックの テンプレートの作成 セクションで作成した YAML テンプレートを入力します。次に、[次へ] をクリックします。

    5. [パラメータの設定] ステップで、[スタック名] パラメータを指定します。

    6. [スタック設定の構成] ステップで、[エラー時のロールバック][タイムアウト期間][タグ][リソースグループ][スタックポリシー][最大同時リソース数][削除保護][RAM ロール][スタックイベントコールバック URL][手動支払い] パラメータを構成し、[次へ] をクリックします。

    7. [確認と確定] ステップで、[テンプレートリソースのプレビュー] をクリックします。[プレビュー] ダイアログボックスで、ROS によって検証されたテンプレートリソースの名前、タイプ、およびプロパティを確認します。次に、[OK] をクリックします。

    8. [確認と確定] ステップで、[作成] をクリックします。

  3. スタックを表示します。

    1. スタックの名前をクリックして、スタック管理ページに移動します。[イベント] タブをクリックして、スタック内の各リソースのイベントを表示します。

    2. [リソース] タブをクリックして、作成されたリソースを表示します。

      説明

      リソースの詳細を表示するには、リソースの ID をクリックして関連するコンソールに移動します。この方法で、リソースが期待どおりかどうかを確認できます。

    3. [出力] タブをクリックして、テンプレートの Outputs セクションで定義されている出力を表示します。

テンプレートでのリソースとその依存関係の定義

デプロイシナリオによっては、テンプレートでリソースとその依存関係を定義する必要がある場合があります。たとえば、vSwitch が VPC に依存するデプロイシナリオでは、指定された VPC に vSwitch を作成する必要がある場合があります。この場合、テンプレートで VPC と vSwitch のリソースと、リソース間の依存関係を定義できます。その後、テンプレートを使用して、複雑なシナリオでスタックをデプロイできます。

  1. Fn::GetAtt 関数を呼び出して、リソースの出力プロパティ値を取得します。詳細については、「関数」をご参照ください。

    たとえば、Resources セクションで VPC を定義する場合は、{"Fn::GetAtt": ["VPC", "VpcId"]} を使用して VpcId の値を取得できます。

  2. Ref 関数を呼び出して、リソースの ID またはパラメータの値を参照します。詳細については、「関数」をご参照ください。

    たとえば、リソースセクションで VPC を定義した場合、{"Ref": "VPC"} を使用して VPC の ID を参照できます。

    説明
    • {"Ref": "VPC"}{"Fn::GetAtt": ["VPC", "VpcId"]} は同じ効果があります。ただし、{"Ref": "VPC"} の方が {"Fn::GetAtt": ["VPC", "VpcId"]} よりも設定が簡単です。

    • Ref 関数と Fn::GetAtt 関数を呼び出して、リソース間の依存関係を暗黙的に宣言できます。また、DependsOn プロパティを使用して、リソース間の依存関係を明示的に宣言することもできます。詳細については、「DependsOn」をご参照ください。

  3. テンプレートを最適化します。

    次のサンプルコードは、テンプレートを最適化する方法の例を示しています。この例では、myvsw という名前の vSwitch が宣言されています。 vSwitch のゾーン ID は cn-beijing-f です。 vSwitch の CIDR ブロックは 192.168.0.0/24 です。 VPC は vSwitch によって参照されます。 vSwitch ID は Outputs セクションで定義されています。

    ROSTemplateFormatVersion: '2015-09-01'
    Resources:
      VPC:
        Type: ALIYUN::ECS::VPC
        Properties:
          VpcName: myvpc
          CidrBlock: 192.168.0.0/16
      VSwitch:
        Type: ALIYUN::ECS::VSwitch
        Properties:
          VpcId:
            Ref: VPC
          ZoneId: cn-beijing-f
          VSwitchName: myvsw
          CidrBlock: 192.168.0.0/24
    Outputs:
      VpcId:
        Value:
          Fn::GetAtt:
            - VPC
            - VpcId
      VRouterId:
        Value:
          Fn::GetAtt:
            - VPC
            - VRouterId
      VSwitchId:
        Value:
          Ref: VSwitch

テンプレートでのパラメータ値とプロパティの定義

パラメータ セクションを使用すると、テンプレートの柔軟性と再利用性を向上させることができます。テンプレートの Parameters セクションでパラメータ値とプロパティを定義して、ビジネス要件を満たすことができます。たとえば、パラメータの有効な値を選択可能なオプションとして表示したり、同じタイプのパラメータをグループ化したりできます。

  • リソースプロパティをパラメータとして定義する

    テンプレートでリソースプロパティにリテラル値を指定できます。ただし、テンプレートを別のシナリオで使用するたびに、テンプレートのプロパティのリテラル値を変更する必要があります。たとえば、テンプレートで ZoneId を cn-beijing-f に設定した場合、テンプレートを使用して中国 (北京) リージョンにのみスタックを作成できます。別のリージョンにスタックを作成する場合は、テンプレートの ZoneId のリテラル値を変更する必要があります。テンプレートの再利用性を向上させるには、Resources セクションで頻繁に使用されるプロパティまたは複数のリソースで共有されるプロパティを Parameters セクションに追加し、プロパティをパラメータとして定義します。このようにして、テンプレートを使用するたびに異なるプロパティ値を持つリソースを作成するために、異なるパラメータ値を指定できます。次の表に、テンプレートで定義できるパラメータを示します。次のサンプルコードは、テンプレートでパラメータを定義する方法の例を示しています。

    • テンプレートのパラメータ

      パラメータ

      説明

      ZoneId

      このパラメータは、vSwitch の ZoneId プロパティによって参照されます。

      VpcCidrBlock

      このパラメータは、VPC の CidrBlock プロパティによって参照されます。デフォルト値: 192.168.0.0/16。

      VSwitchCidrBlock

      このパラメータは、vSwitch の CidrBlock プロパティによって参照されます。デフォルト値: 192.168.0.0/24。

    • テンプレートのサンプルコード:

      ROSTemplateFormatVersion: '2015-09-01'
      Parameters:
        ZoneId:
          Type: String
        VpcCidrBlock:
          Type: String
          Default: 192.168.0.0/16
        VSwitchCidrBlock:
          Type: String
          Default: 192.168.0.0/24
      Resources:
        VPC:
          Type: ALIYUN::ECS::VPC
          Properties:
            VpcName: myvpc
            CidrBlock:
              Ref: VpcCidrBlock
        VSwitch:
          Type: ALIYUN::ECS::VSwitch
          Properties:
            VpcId:
              Ref: VPC
            ZoneId:
              Ref: ZoneId
            VSwitchName: myvsw
            CidrBlock:
              Ref: VSwitchCidrBlock
      Outputs:
        VpcId:
          Value:
            Ref: VPC
        VRouterId:
          Value:
            Fn::GetAtt:
              - VPC
              - VRouterId
        VSwitchId:
          Value:
            Ref: VSwitch

      サンプルテンプレートを使用してスタックを作成する場合、ビジネス要件に基づいて ROS コンソールでパラメータ値を指定できます。

      image

      ROS は、テンプレートのパラメータとリソースプロパティ間の関連付けを分析して、各パラメータの有効な値のセットを表示します。この例では、テンプレートの ZoneId パラメータは、vSwitch の ZoneId プロパティに関連付けられています。 ROS は、vSwitch がサポートされているゾーンをクエリし、コンソールにゾーンを表示します。

      image

  • 有効な値をパラメータの選択可能なオプションとして表示する

    パラメータ セクションは、パラメータプロパティをサポートしています。 Parameters セクションでパラメータプロパティを定義すると、ROS はコンソールにパラメータプロパティと値を表示します。次の表に、テンプレートで定義できるパラメータプロパティを示します。次のサンプルコードは、テンプレートでパラメータプロパティを定義する方法の例を示しています。

    • Parameters セクションのパラメータプロパティ

      パラメータプロパティ

      説明

      AllowedValues

      パラメータの有効な値。値は、ROS コンソールで選択可能なオプションとして表示されます。この例では、VpcCidrBlock パラメータの有効な値は、10.0.0.0/8、172.16.0.0/12、および 192.168.0.0/16 です。

      Label

      パラメータのエイリアス。パラメータのエイリアスは、ROS コンソールに表示されます。この例では、ゾーン ID が ROS コンソールに ZoneId のエイリアスとして表示されます。

    • テンプレートのサンプルコード:

      ROSTemplateFormatVersion: '2015-09-01'
      Parameters:
        ZoneId:
          Type: String
          Label: Zone ID
        VpcCidrBlock:
          Type: String
          Label: VPC CIDR Block
          Default: 192.168.0.0/16
          AllowedValues:
            - 10.0.0.0/8
            - 172.16.0.0/12
            - 192.168.0.0/16
        VSwitchCidrBlock:
          Type: String
          Label: vSwitch CIDR Block
          Default: 192.168.0.0/24

      サンプルテンプレートを使用してスタックを作成する場合、ROS はコンソールに有効な値のセットを選択可能なオプションとして表示します。

      image

  • パラメータの値に基づいて異なるパラメータセットを表示する

    パラメータの AssociationProperty プロパティと AssociationPropertyMetadata プロパティを定義すると、ROS は、パラメータに選択された値に基づいて、コンソールに異なるパラメータセットの値を表示します。詳細については、「AssociationProperty および AssociationPropertyMetadata」をご参照ください。

    たとえば、テンプレートで VpcId パラメータと vSwitchId パラメータを定義し、テンプレートを使用して Elastic Compute Service (ECS) インスタンスを作成する場合、ROS はコンソールのドロップダウンリストにパラメータの値を表示します。テンプレートのサンプルコード:

    ROSTemplateFormatVersion: '2015-09-01'
    Parameters:
      VpcId:
        Type: String
        AssociationProperty: ALIYUN::ECS::VPC::VPCId
      ZoneId:
        Type: String
        AssociationProperty: ALIYUN::ECS::ZoneId
      VSwitchId:
        Type: String
        AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
        AssociationPropertyMetadata:
          ZoneId: ${ZoneId}
          VpcId: ${VpcId}

    サンプルテンプレートを使用してスタックを作成する場合、ROS は、パラメータに選択された値に基づいて、コンソールにパラメータセットを表示します。

    image

  • 同じタイプのパラメータをグループ化する

    メタデータ セクションでパラメータをグループ化できます。テンプレートで多数のパラメータを定義する場合は、パラメータの特性に基づいてパラメータをグループ化して、ROS コンソールでのパラメータ構成を容易にすることができます。

    たとえば、ZoneId を基本構成にグループ化し、VpcCidrBlockVSwitchCidrBlock をリソース構成にグループ化できます。メタデータセクションの ParameterGroups 部分で、基本構成とリソース構成を定義できます。テンプレートのサンプルコード:

    ROSTemplateFormatVersion: '2015-09-01'
    Parameters:
      ZoneId:
        Type: String
      VpcCidrBlock:
        Type: String
        Default: 192.168.0.0/16
      VSwitchCidrBlock:
        Type: String
        Default: 192.168.0.0/24
    Metadata:
      ALIYUN::ROS::Interface:
        ParameterGroups:
          - Parameters:
              - ZoneId
            Label:
              default: Basic Configurations
          - Parameters:
              - VpcCidrBlock
              - VSwitchCidrBlock
            Label:
              default: Resource Configurations

    サンプルテンプレートを使用してスタックを作成する場合、ROS はコンソールに [基本構成] セクションと [リソース構成] セクションを表示して、グループ別にパラメータを構成できるようにします。image

次のステップ

[No text provided to translate.]