ユースケース: プライベート・カタログ項目を使用したアプリケーション・フットプリントのプロビジョニング

組織として、フリート・アプリケーション管理による開発、テスト、ステージング、本番など、複数の環境にわたってアプリケーション・フットプリントをプロビジョニングまたはサイズ変更したいと考えています。各環境には、Web層、アプリケーション層、データベース層などの特定のリソース・サイズ設定、割当ておよび層ベースの構成が必要です。識別と管理を容易にするために、リソースに適切な名前を付けてタグ付けする必要があります。

フリート・アプリケーション管理を使用して、複数の環境にわたってアプリケーション・フットプリントをプロビジョニングするには、次のステップを実行します。次のステップを外挿して、要件に適用できます。

リソースのサイズ変更または再割当てのために、同じユース・ケースを適用して、既存のアクティブなフリートのインフラストラクチャを管理できます。

1. 環境の定義

実装フェーズごとにフリート・アプリケーション管理で環境タイプを作成するか、Oracle定義環境タイプを使用します。たとえば:

  • 開発: 初期テスト用のリソース・サイズが小さくなります。
  • テスト: 機能テストおよび統合テスト用の中規模リソース。
  • 本番: ライブ操作用の高パフォーマンス・リソース。

2. プライベート・カタログ品目の作成

フリート・アプリケーション管理の階層ごとにプライベート・カタログ・アイテムを作成します。

  1. Terraformの構成カタログ項目を作成します。
    • プロビジョニングに必要なすべてのファイルを含む、Terraformが推奨するTerraformパッケージを開発します。パッケージは、次のいずれかの方法で提供できます。
      • ZIPファイル
      • GitHubリポジトリ

      Terraformパッケージの開発の詳細は、Terraform Providerを参照してください。

    • TerraformパッケージからTerraformカタログ項目を作成します。カタログ・アイテムを作成するステップは、プライベート・カタログ・アイテムの作成を参照してください。
  2. 様々な環境タイプの構成カタログ項目を作成します。
    • JSONファイル(conf.json)に環境固有の構成を含めます。
    • conf.jsonファイルをオブジェクト・ストレージ・バケットをアップロードします。
    • conf.jsonファイルからカタログ・アイテムを作成します。カタログ・アイテムを作成するステップは、プライベート・カタログ・アイテムの作成を参照してください。
前述のステップを層(Web、アプリケーション、データベース)ごとに拡張します。

リソースの割り当てとサイズ設定

各層のリソース・サイズと割当てを定義します。

  • Web層: 中程度のCPUおよびメモリーを持つコンピュート・インスタンス。
    • 開発: 1つの中規模インスタンス。
    • テスト: パフォーマンスを向上させるための2つの大きなインスタンス。
    • 本番: スケーラビリティのための4つのインスタンス。CPU使用率に基づいた自動スケーリングが可能です。
  • アプリケーション層: CPUおよびメモリーが高いコンピュート・インスタンス。
    • 開発: 4 GB RAMと2つのvCPUsを備えた2つの中規模コンピュート・インスタンス。
    • テスト: 8 GB RAMの4つのラージ・インスタンスと、負荷の増加に対応するための4つのvCPUs。
    • 本番: 高可用性のための8つのインスタンス(テスト環境の2倍)で、自動スケーリングが有効になっています。
  • データベース層: ストレージおよびパフォーマンス用に最適化されたデータベース・リソース。
    • 開発: 2つのvCPUsおよび15 GB RAMを持つ小規模なデータベース・インスタンス。
    • テスト: 4つのvCPUsおよび30 GB RAMを持つ中規模インスタンス。
    • 本番: 8つのvCPUs、64 GB RAMおよび高I/O容量を持つ高パフォーマンス・インスタンス。
    ストレージの場合、次を割り当てます。
    • 100 GBの開発
    • テストでは250 GB
    • 500 GBの本番環境、バックアップとリカバリのオプション

Terraform変数(variables.tf)を使用してすべての変数定義を指定し、conf.jsonを使用して変数値を動的に割り当てます。

3. リソースの提供

  1. プライベート・カタログ項目にアクセスするには、フリート・アプリケーション管理でランブック・タスクを作成します。
    ライフサイクル操作として「プロビジョニング」を選択し、アクション・タイプとして「terraformの実行」を選択します。
  2. リソースをプロビジョニングするランブックを作成します。
    ランブック名、ライフサイクル操作(プロビジョニング)、必要なオペレーティング・システム(Linux)などの基本情報を指定します。

    必要なタスク実行に応じて、パラレルまたはローリング・リソース・グループを追加します。

  3. フリート・アプリケーション管理を使用して、環境ごとにフリートを作成します。
  4. フリートを関連するランブックおよび環境タイプに関連付けます。
  5. ランブックを実行して、環境タイプに基づいてリソースを動的にプロビジョニングします。
  6. 各層に対して前述のステップを繰り返します。
  7. 各層のすべてのリソース・デプロイメントを検証します。

4. 構成例

  • Terraformファイル(main.tf): 特定のシェイプおよびネットワーキング構成を持つコンピュート・インスタンスを定義します。サンプルmain.tfを参照してください。
  • 変数ファイル(variables.tf): instance_compartment_idsubnet_iddisplay_nameなどの変数が含まれます。サンプルvariables.tfを参照してください。
  • 構成ファイル(conf.json): コンパートメントOCIDやサブネットIDなどの変数の値を指定します。サンプルconf.jsonを参照してください。

構成の例は、Oracle Cloud Infrastructureプロバイダを参照してください。