モデルとパッケージのデプロイ単位

このページでは、SaaS サービスのデプロイ単位をモデル化してパッケージ化する方法について説明します。SaaS ランタイムでは、デプロイの単位はユニットの種類と呼ばれます。

個別に管理する SaaS サービスのコンポーネントごとに、1 つのユニットの種類を作成します。詳細については、次のセクション SaaS サービスのモデルを決定するをご覧ください。

必要に応じて、SaaS サービス全体に単一の単位タイプを使用して SaaS サービスを作成できます。

ユニットの種類は、ブループリントによって定義されます。ブループリントは、OCI イメージとしてパッケージ化された Terraform 構成です。ユニットの種類を作成する前に、ユニットの種類ごとにブループリントを作成する必要があります。ブループリントの作成の詳細については、ブループリントを作成してアップロードするをご覧ください。

始める前に

  1. SaaS アプリケーションの SaaS サービスを定義していることを確認します。
  2. Artifact Registry リポジトリを作成していることを確認します。
  3. 必要な権限を持つサービス アカウントがあることを確認します。詳細については、SaaS ランタイム サービス アカウントをご覧ください。
  4. 作成するユニットの種類ごとに、Terraform 構成があり、ブループリントが準備されていることを確認します。詳細については、次のセクション SaaS サービスのモデルを決定するをご覧ください。

SaaS サービスのモデルを決定する

SaaS サービスをモデル化するには、作成するユニットの種類と、これらのユニットの種類間の関係を決定する必要があります。

たとえば、VM などのインフラストラクチャ用のユニットの種類と、インフラストラクチャにデプロイされたアプリケーション用のユニットの種類の 2 つを作成できます。必要に応じて、SaaS サービス全体に単一のユニットの種類を使用して SaaS サービスを作成できます。

ユニットの種類を使用して SaaS サービスをモデル化する方法を決定するには、次の点を考慮してください。

  • SaaS サービスのコンポーネント間の依存関係を確認します。たとえば、SaaS サービスに共有 Kubernetes クラスタにデプロイされたアプリケーションが含まれている場合は、ユニットの種類を使用してこの共有クラスタをモデル化することを検討してください。
  • SaaS サービスのコンポーネントのリリースとメンテナンスのサイクルを検討します。インフラストラクチャなど、まとめて管理されるコンポーネントがある場合は、これらのコンポーネントを 1 つのユニットの種類でモデル化することを検討してください。

このモデルを決定したら、ユニットの種類ごとにブループリントを作成する必要があります。そのためには、次のことを行う必要があります。

  1. このユニットの種類に接続する Terraform 構成を特定します。必要な Terraform 構成の詳細については、SaaS ランタイムのブループリントをご覧ください。
  2. Terraform 構成が OCI イメージとしてパッケージ化され、Artifact Registry に push されているか、zip アーカイブまたは Git リポジトリにあることを確認します。詳細については、ブループリントを作成してアップロードするをご覧ください。

ユニットの種類ごとにブループリントがある場合は、このページの手順に沿ってユニットの種類を作成できます。

ユニットの種類を作成

ユニットの種類は、次の方法で提供される Terraform 構成を使用して作成できます。

  • ZIP アーカイブ。
  • Git リポジトリ。
  • OCI イメージとしてパッケージ化されています。

zip アーカイブを使用してユニットの種類を作成する

zip アーカイブにある Terraform 構成を使用して単位の種類を作成するには、次の操作を行います。

ZIP アーカイブの準備の詳細については、ZIP アーカイブをアップロードするをご覧ください。

ユニットの種類を作成するには:

  1. コンソールで、[SaaS ランタイム] > [単位の種類] に移動します。

    [単位の種類] に移動

  2. [作成] を選択します。

  3. [ブループリントを作成] で、[アップロード] を選択して、Terraform 構成を含む ZIP アーカイブをアップロードします。

    1. [Browse] をクリックして、このユニットの種類の一部であるリソースまたはアプリケーションを定義する Terraform 構成を含む zip アーカイブを見つけます。

    2. [次へ: ブループリントを構成] をクリックします。

  4. [ブループリントの保存] ページで、次の操作を行います。

    1. [Artifact Registry からリポジトリを選択] で、[参照] をクリックし、作成したリポジトリを選択します。

    2. [Artifact image name] に、OCI イメージの名前を入力します。

    3. [Infrastructure Manager terraform version] で、デプロイに使用する Terraform のバージョンを選択します。サポートされている Terraform バージョンのリストについては、サポートされている Terraform バージョンをご覧ください。

    4. [Cloud Build サービス アカウント] で、イメージをビルドする権限を持つサービス アカウントを選択します。詳細については、アーティファクト作成サービス アカウントをご覧ください。

    5. [次へ: ユニットの種類の詳細] をクリックします。

  5. [ユニットの種類のプロパティを構成する] ページで、次の操作を行います。

    1. [単位の種類名] に、単位の種類の名前を入力します。名前に使用できるのは、英小文字、数字、ハイフンのみです。

    2. [SaaS サービス] で、このユニットの種類に関連付ける SaaS サービスを選択します。

    3. 依存関係の場合:

      • SaaS サービス用に作成する最初のまたは唯一の単位の種類である場合は、依存関係を追加しないでください。

      • このユニットの種類に依存する他のユニットの種類を作成した場合は、[依存関係を追加] を選択します。

        1. [ユニットの種類] で、作成するユニットの種類に依存する既存のユニットの種類を選択します。

        2. [エイリアス] に、入力変数マッピングに使用できる名前を入力します。

        3. [完了] をクリックします。

        4. 変数のマッピングを定義する場合は、次の手順を行います。変数マッピングの詳細については、変数マッピングをご覧ください。

          1. [入力変数と出力変数のマッピングを定義する] を選択します。

          2. [入力変数のマッピング] の場合:

            1. [入力変数のマッピングを追加] を選択します。
            2. [変数] に、入力変数の名前を入力します。
            3. [マッピング タイプ] で、次のいずれかを選択します。
              • 他の単位の種類からのマップへの From
              • To: 他の単位の種類にマッピングします。
            4. [依存関係] で、変数をマッピングする既存の単位の種類を選択します。
            5. [出力変数] に、出力変数の名前を入力します。
            6. [完了] を選択します。
          3. 別の入力変数を追加するには、[入力変数マッピングを追加] を選択して、手順を繰り返します。

          4. 出力変数のマッピングを追加する手順は次のとおりです。

            1. [出力変数のマッピング] タブを選択します。
            2. [出力変数のマッピングを追加] を選択し、入力変数のマッピングで行った手順を繰り返します。
  6. [次へ: リリース構成] をクリックします。

  7. [リリース名] に、リリースの名前を入力します。

  8. 省略可: デプロイするリソースにラベルを追加します。ラベルの詳細については、ラベルの概要をご覧ください。

    ラベルを追加するには:

    1. [ラベル] で [ラベルを追加] を選択します。

    2. [キー 1] と [値 1] に、目的の Key-Value ペアを入力します。

    3. 追加するラベルごとに手順を繰り返します。

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

これで、ユニットの種類が作成されました。別のユニットの種類を作成するには、同じ手順を繰り返し、この次のユニットの種類の Terraform 構成を含む zip アーカイブを使用します。

SaaS サービスに必要なすべてのユニットの種類を作成したら、ユニット インスタンスをデプロイできます。

Git リポジトリを使用してユニットの種類を作成する

Git リポジトリにある Terraform 構成を使用してユニットの種類を作成するには、次の手順を行います。

Terraform ファイルに Git リポジトリを使用する方法の詳細については、Git リポジトリに接続するをご覧ください。

  1. コンソールで、[SaaS ランタイム] > [単位の種類] に移動します。

    [単位の種類] に移動

  2. [作成] を選択します。

  3. [ブループリントを作成] で [外部リポジトリをリンク] を選択します。

  4. [リポジトリ] で、Terraform 構成を含む Git リポジトリを選択します。

    1. Git リポジトリがリンクされている場合は、リストから選択します。

    2. リポジトリがリンクされていない場合は、[新しいリポジトリをリンク] をクリックして、Developer Connect を使用してリポジトリをリンクします。

      1. [新しい接続を作成] を選択します。

      2. [リージョン] で、Developer Connect 接続のリージョンを選択します。Artifact Registry リポジトリに使用したリージョンと同じリージョンを使用することをおすすめします。

      3. 省略可: [KMS key] で、暗号化用の KMS 鍵を指定できます。

      4. [Branch] に、この単位の種類に関連付ける Terraform 構成を含む Git ブランチを指定します。

  5. [ブループリントの保存] ページで、次の操作を行います。

    1. [Artifact Registry からリポジトリを選択] で、[参照] をクリックして、SaaS サービスで使用している Artifact Registry リポジトリを選択します。

    2. [Artifact image name] に、OCI イメージの名前を入力します。

    3. [Infrastructure Manager terraform version] で、デプロイに使用する Terraform のバージョンを選択します。サポートされている Terraform バージョンのリストについては、サポートされている Terraform バージョンをご覧ください。

    4. [Cloud Build サービス アカウント] で、イメージをビルドする権限を持つサービス アカウントを選択します。詳細については、アーティファクト作成サービス アカウントをご覧ください。

    5. [次へ: ユニットの種類の詳細] をクリックします。

  6. [ユニットの種類のプロパティを構成する] ページで、次の操作を行います。

    1. [単位の種類名] に、単位の種類の名前を入力します。名前に使用できるのは、英小文字、数字、ハイフンのみです。

    2. [SaaS サービス] で、このユニットの種類に関連付ける SaaS サービスを選択します。

    3. 依存関係の場合:

      • SaaS サービス用に作成する最初のまたは唯一の単位の種類である場合は、依存関係を追加しないでください。

      • このユニットの種類に依存する他のユニットの種類を作成した場合は、[依存関係を追加] を選択します。

        1. [ユニットの種類] で、作成するユニットの種類に依存する既存のユニットの種類を選択します。

        2. [エイリアス] に、入力変数マッピングに使用できる名前を入力します。

        3. [完了] をクリックします。

        4. 変数のマッピングを定義する場合は、次の手順を行います。変数マッピングの詳細については、変数マッピングをご覧ください。

          1. [入力変数と出力変数のマッピングを定義する] を選択します。

          2. [入力変数のマッピング] の場合:

            1. [入力変数のマッピングを追加] を選択します。
            2. [変数] に、入力変数の名前を入力します。
            3. [マッピング タイプ] で、次のいずれかを選択します。
              • 他の単位の種類からのマップへの From
              • To: 他の単位の種類にマッピングします。
            4. [依存関係] で、変数をマッピングする既存の単位の種類を選択します。
            5. [出力変数] に、出力変数の名前を入力します。
            6. [完了] を選択します。
          3. 別の入力変数を追加するには、[入力変数マッピングを追加] を選択して、手順を繰り返します。

          4. 出力変数のマッピングを追加する手順は次のとおりです。

            1. [出力変数のマッピング] タブを選択します。
            2. [出力変数のマッピングを追加] を選択し、入力変数のマッピングで行った手順を繰り返します。
  7. [次へ: リリース構成] をクリックします。

  8. [リリース名] に、リリースの名前を入力します。

  9. 省略可: デプロイするリソースにラベルを追加します。ラベルの詳細については、ラベルの概要をご覧ください。

    ラベルを追加するには:

    1. [ラベル] で [ラベルを追加] を選択します。

    2. [キー 1] と [値 1] に、目的の Key-Value ペアを入力します。

    3. 追加するラベルごとに手順を繰り返します。

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

これで、ユニットの種類が作成されました。別のユニットの種類を作成するには、同じ手順を繰り返し、この次のユニットの種類の Terraform 構成を含む Git リポジトリを使用します。

SaaS サービスに必要なすべてのユニットの種類を作成したら、ユニット インスタンスをデプロイできます。

既存のイメージを使用してユニットの種類を作成する

既存のブループリント(OCI イメージ)を使用してユニットの種類を作成する手順は次のとおりです。

OCI イメージのビルドの詳細については、以下をご覧ください。

  1. コンソールで、[SaaS ランタイム] > [単位の種類] に移動します。

    [単位の種類] に移動

  2. [作成] を選択します。

  3. [ブループリントを作成] で、[Artifact Registry から既存のイメージを選択する] を選択します。

  4. [次へ: ブループリントを構成] をクリックします。

  5. [ブループリントの保存] ページで、次の操作を行います。

    1. [Artifact Registry から既存のブループリントを選択または入力する] の場合:

      1. [参照] をクリックします。

      2. Terraform 構成を含むイメージに移動します。

      3. [選択] をクリックします。

    2. [次へ: ユニットの種類の詳細] をクリックします。

  6. [ユニットの種類のプロパティを構成する] ページで、次の操作を行います。

    1. [単位の種類名] に、単位の種類の名前を入力します。名前に使用できるのは、英小文字、数字、ハイフンのみです。

    2. [SaaS サービス] で、このユニットの種類に関連付ける SaaS サービスを選択します。

    3. 依存関係の場合:

      • SaaS サービス用に作成する最初のまたは唯一の単位の種類である場合は、依存関係を追加しないでください。

      • このユニットの種類に依存する他のユニットの種類を作成した場合は、[依存関係を追加] を選択します。

        1. [ユニットの種類] で、作成するユニットの種類に依存する既存のユニットの種類を選択します。

        2. [エイリアス] に、入力変数マッピングに使用できる名前を入力します。

        3. [完了] をクリックします。

        4. 変数のマッピングを定義する場合は、次の手順を行います。変数マッピングの詳細については、変数マッピングをご覧ください。

          1. [入力変数と出力変数のマッピングを定義する] を選択します。

          2. [入力変数のマッピング] の場合:

            1. [入力変数のマッピングを追加] を選択します。
            2. [変数] に、入力変数の名前を入力します。
            3. [マッピング タイプ] で、次のいずれかを選択します。
              • 他の単位の種類からのマップへの From
              • To: 他の単位の種類にマッピングします。
            4. [依存関係] で、変数をマッピングする既存の単位の種類を選択します。
            5. [出力変数] に、出力変数の名前を入力します。
            6. [完了] を選択します。
          3. 別の入力変数を追加するには、[入力変数マッピングを追加] を選択して、手順を繰り返します。

          4. 出力変数のマッピングを追加する手順は次のとおりです。

            1. [出力変数のマッピング] タブを選択します。
            2. [出力変数のマッピングを追加] を選択し、入力変数のマッピングで行った手順を繰り返します。
  7. [次へ: リリース構成] をクリックします。

  8. [リリース名] に、リリースの名前を入力します。

  9. 省略可: デプロイするリソースにラベルを追加します。ラベルの詳細については、ラベルの概要をご覧ください。

    ラベルを追加するには:

    1. [ラベル] で [ラベルを追加] を選択します。

    2. [キー 1] と [値 1] に、目的の Key-Value ペアを入力します。

    3. 追加するラベルごとに手順を繰り返します。

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

これで、ユニットの種類が作成されました。別のユニットの種類を作成するには、同じ手順を繰り返し、この次のユニットの種類の Terraform 構成を含む OCI イメージを使用します。

SaaS サービスに必要なすべてのユニットの種類を作成したら、ユニット インスタンスをデプロイできます。

次のステップ