Resource Orchestration Service

プロダクト紹介

Resource Orchestration Serviceとは

Alibaba Cloud Resource Orchestration Service (ROS)は、Alibaba Cloud ユーザーがクラウドコンピューティングのリソース管理を簡素化し、O&M を自動化するのに役立つサービスです。リソーススタックテンプレートを最初にコンパイルします。テンプレートでは、必要なクラウドリソース、リソース間の依存関係、およびリソース構成を定義します。オーケストレーションエンジンを使用すると、ROS は、テンプレートに応じて、自動展開、運用、保守のためのすべてのリソースを自動的に作成および構成できます。オーケストレーションテンプレートは、JSON 形式のテキストファイルです。このファイルは、いつでも読んだり編集したりすることができます。JSON で直接テンプレートをコンパイルすることも、ROS コンソールでビジュアルエディタを使用して、より視覚的にテンプレートをコンパイルすることもできます。SVN や Git などのツールを使ってテンプレートのバージョンを制御することができます。API、SDK、およびその他の方法を使用して IAC(Infrastructure as Code)を有効にして、ROS のオーケストレーション機能を独自のアプリケーションに統合することもできます。

リソースオーケストレーションテンプレートは、リソースとアプリケーションの標準的な配信方法も提供します。テンプレートを使用して、クラウドリソースとアプリケーションを含む統合されたシステムとソリューションを提供できます。独立系ソフトウェアベンダ(ISV)は、このような配信方法を使用して、Alibaba Cloud リソースを独自のソフトウェアシステムと簡単に統合して一貫した配信を実現できます。

ROS はクラウドリソースをグループ単位で管理します。リソースのグループはリソーススタックです。したがって、グループ内でクラウドリソースを作成、削除、変更、クローン作成することができます。DevOps のプラクティスでは、開発、テスト、および実行環境を簡単に複製でき、アプリケーションの全体的な移行とスケーリングを簡素化できます。

Resource Orchestration Service

利点

Resource Orchestration Service(ROS)を使用すると、Alibaba Cloud のリソースをモデル化して構成することができます。 予想されるリソース(たとえば、ECS インスタンス、VPC、 ApsaraDB for RDS インスタンスなど)とリソース間の関係を定義するリソーススタックテンプレートを作成すると、ROS はテンプレートに基づいてこれらのリソースを作成および構成します。 ROS を使用すると、リソースを 1 つずつ作成して構成する必要がなくなります。ROS には次の利点があります。

リソースオーケストレーションの自動化

ROS は、リソースの情報とリソース間の関係を含むリソーススタックテンプレートを使用して、リソースを自動的に作成、展開、構成し、クラウドリソースのライフサイクルを管理します。標準化されたリビジョン管理とリソース追跡は、リソース管理を簡素化します。 ROS は、API と SDK を使用してリソーススタックを自動 O&M 容量と統合します。

リソース管理の簡素化

バックエンドデータベースまたは数十の ECS インスタンスで構成されたクラスタを持つスケーラブルな Web アプリケーションを作成する場合は、Alibaba Cloud が提供する ECS、ApsaraDB for RDS、Server Load Balancer、VPC、および Auto Scaling リソースを使用する必要があります。ROS がなければ、これらのリソースを 1 つずつ作成して構成し、リソース間の組み合わせを構成して、アプリケーションが円滑に実行されるようにする必要があります。プロセス全体がクラウドリソースを使用する複雑さと時間コストを増加させます。

ROS を使用すると、次のことができます。

  • リソースオーケストレーションテンプレートを作成または変更することにより、リソースの作成および構成の複雑さと時間を最小限に抑えます。テンプレートには、属性(タイプ、構成、数量)と必要なリソースの依存関係がリストされています。次に、ROS はこのテンプレートを解析し、依存関係とパラメータに基づいてリソースを作成し、リソース間の組み合わせを構成します。これにより、すべてのリソースがテンプレートの説明に従って正しく動作することが保証されます。
  • テンプレートを変更してリソースを変更し、継続的なビジネス要件を満たすようにします。
  • ワンクリックですべてのリソースを削除します。
  • ワンクリックでリソースのヘルスチェックを実行します。

迅速かつ完全なリソースコピー

ROS によって Web アプリケーション用のリソーススタックを作成した後、リソースオーケストレーションテンプレートを再利用して、リソースグループをすばやくコピーすることができます。テンプレートはすべてのリソースの属性と依存関係を記録するため、リソースコピー中に関連する構成は必要ありません。

複数の Alibaba Cloud 製品とサービスの組み合わせ

ROS を使用すると、お客様のビジネス要件に応じて主要な Alibaba Cloud 製品とサービスを組み合わせることができます。現在、ROS は、Alibaba Cloud の ECS、ApsaraDB for RDS、ApsaraDB for Memcache、ApsaraDB for Redis、ApsaraDB for MongoDB、 Server Load Balancer、Object Storage Service、Log Service、RAM、VPC、 API Gateway およびその他の主要製品とサービスをサポートしています。

簡単かつ視覚的にリソーススタックテンプレートの作成

リソーススタックテンプレートの作成を簡素化するために、ROS コンソールによく使用されるいくつかのテンプレートを提供します。要件に合ったテンプレートを選択し、いくつかのクリックでリソーススタックを作成します。

視覚的に作成されるリソーススタックの構造を見るために、ROS コンソールのビジュアルエディタをテンプレートエディタとして提供します。ビジュアルエディタを使用すると、リソースをキャンバスにドラッグし、行をドラッグしてリソースの依存関係を構築し、パラメータを入力してテンプレートを作成します。

制限と制約

Resource Orchestration Service には次の制限があります。

  • 各リソーススタックに最大 200 のリソースを作成できます。
  • 各ユーザーは最大 50 のリソーススタックを作成できます。
  • 各テンプレートファイルは 512 KB を超えることはできません。

FAQ

テンプレート検証の失敗の理由

編集したテンプレートがテンプレートの検証に失敗した場合は、次の項目をチェックして原因を調べます。

フォーマット

テンプレートが有効な JSON 形式であり、UTF-8 でエンコードされていることを確認してください。有効な JSON 形式は、プログラミング言語で JSON を読み取り可能であること意味します。

Version (ROSTemplateFormatVersion)

ROSTemplateFormatVersion の綴りが正しいことを確認し、値が 2015-09-01 であることを確認します。

マッピング

マッピング定義が ROS 要件に準拠していることを確認してください。

注意:マッピングには何の機能も使用できません。

パラメータ

パラメータ定義が ROS 要件に適合していることを確認してください。

注意: パラメータには機能を使用できません。パラメータ定義にパラメータ制限定義とデフォルト値が含まれている場合、デフォルト値もパラメータ制約定義に準拠している必要があります。

リソース

リソース ID には、スラッシュ(/)を使用できません。

Type 属性はリソース定義に含まれていなければならず、その値は文字列でなければなりません。

型 、プロパティ、メタデータ、 DependsOn 、 DeletionPolicy 、および説明以外の値は、リソース定義に含めることはできません。

Outputs

出力が定義されている場合は、[出力]フィールドでその値を指定する必要があります。

サポートされていないリソースタイプ

サポートされていないリソースがテンプレートに定義されていると、検証は失敗します。

ROSコンソールのリソースタイプページでサポートされているリソースタイプを参照してください。

その他

テンプレートファイルのサイズが 512 KB を超えないようにしてください。

ROSTemplateFormatVersion 、 Description 、 Mappings 、 Parameters 、 Resources 、 Outputs 以外のセクションは、テンプレートの 1 学年で使用されていないことを確認してください。

スタック作成失敗の理由

リソーススタックの作成に失敗した場合は、以下の理由が考えられます。

名前の重複

同じユーザーで作成されたスタック名は重複できません。

スタック名の形式

スタック名には英数字以外の文字を使用することはできません。また、数字で始めることもできません。

リソース作成失敗

リソースの作成に失敗すると、スタックの作成に失敗する可能性があります。例えば、 このリージョン中に ECS リソース作成するときにメモリが不足しているなどがあります。

制限

各ユーザーが最大 50 のスタックを作成できる ROS 制限。
上限に達した場合、新しいスタックを作成することはできません。Limitsをご参照してください。

スタック削除失敗の理由

スタックの削除に失敗した場合は、アクションがスタックに操作されたためです。

作成、削除、更新中のスタックは削除できません。

インスタンス作成時のパスワード確認を設定

問題

リソーススタックの作成でパスワードパラメータを指定するときに、間違ったパスワードを入力すると、作成されたプロダクトのインスタンスにログインすることができません。

解決策

この問題を解決するには、スタックテンプレートを編集してPasswordブロックの Confirm パラメータの値に true を指定します。テンプレートに"Confirm": trueを指定すると、このテンプレートを基にスタックを作成する際、パスワード確認が求められます。つまり、スタックを作成するときに、同じパスワードを 2 回入力しないとスタックは正しく作成されません。

設定方法は次のとおりです。

  1. テンプレートにパスワードパラメータを設定します。
    例:
    1. "InstancePassword": {
    2. "Confirm": true,
    3. "NoEcho": true,
    4. "MaxLength": "41",
    5. "Description": "The logon password of ECS instances",
    6. "Type": "String",
    7. "ConstraintDescription": "Consist of 8 to 41 characters of alphanumeric characters",
    8. "MinLength": "8",
    9. "AllowedPattern": "[a-zA-Z0-9]*"
    10. },

    注意:Confirm 属性は、NoEcho の値が true の場合にのみ有効となります。

  2. ROS コンソールでスタックを作成する際、[スタックの有効化] ページでインスタンスにパスワードを設定し、確認します。
    画像の説明

ECS インスタンスのバッチ作成にインスタンス名やホスト名を指定する方法

ROS リソースタイプ ALIYUN::ECS::InstanceGroup を使用して ECS インスタンスを一括して作成します。

ECS インスタンスを作成する際に、InstanceName および HostName 属性を使用してインスタンス名やホスト名を指定します。各 ECS インスタンスに異なるインスタンス名およびホスト名を設定するときの書式は、name_prefix[begin_number,bits]name_suffix です。

上記の書式のとおり、インスタンス名とホスト名は 3 つの部分で構成されます。

  • name_prefix(必須):インスタンス名またはホスト名の接頭辞を指定します。
  • [begin_number,bits] (必須):インスタンス名またはホスト名を一意にしている箇所です。begin_number はインスタンス名やホスト名の開始番号、bits はその数字の桁数を示します。
    本フィールドは、次の条件を満たす場合にのみ正しく構文解析されます。
    • フィールドに空白を含まない。
    • bits の値は 1 ~ 4 である。
    • begin_number の値は 0 ~ 9999 である。
    • begin_number のみを指定すると、bits の値は 4 に設定されます。
    • [begin_number,bits] を [] または [,], に指定すると、begin_number の値は 0、bits の値は 4 に設定されます。
    • [1234,1] といったように begin_number に指定した数値の桁数が bits に指定した桁数よりも多い場合、begin_number 「1234」は指定可能な範囲内(0~9999)であるため、bits の値は 4 に変更されます。
  • name_suffix(オプション):インスタンス名またはホスト名の接尾辞を指定します。
    1. "ROSTemplateFormatVersion" : "2015-09-01",
    2. "Resources" : {
    3. "WebServer": {
    4. "Type": "ALIYUN::ECS::InstanceGroup",
    5. "Properties": {
    6. "ImageId" : "CentOs*",
    7. "InstanceType": "ecs.n4.large",
    8. "Password": "Test1234",
    9. "MinAmount": 2,
    10. "MaxAmount": 2,
    11. "SecurityGroupId": "sg-2zedcm7ep5quses05fs4",
    12. "SystemDiskCategory": "cloud_efficiency",
    13. "IoOptimized": "optimized",
    14. "InstanceName": "my.test-[1114]",
    15. "HostName": "host[]"
    16. }
    17. }
    18. }
    19. }
    上記のテンプレートを基に、ROS によって ECS インスタンスが 2 つ作成されます。
    • ECSインスタンスの名前は、「my.test-1114」および「my.test-1115」です。
    • 2 つの ECSのホスト名は、「host0000」および「host0001」です。

注意: 上記の方法でインスタンス名およびホスト名を指定する場合、最終的に解析される名前は InstanceName および HostName 命名規則に沿っている必要があります。命名規則に沿っていない場合、インスタンス作成前の事前確認に失敗する可能性があります。