[PaaS のみ]{class="badge informative" title="Adobe Commerce on Cloud プロジェクト(Adobeが管理する PaaS インフラストラクチャ)およびオンプレミスプロジェクトにのみ適用されます。"}

サービスの設定

services.yaml ファイルは、MySQL、Redis、ElasticsearchまたはOpenSearchなど、Adobe Commerceでクラウドインフラストラクチャ上でサポートおよび使用されるサービスを定義します。 外部サービスプロバイダーに加入する必要はありません。

NOTE
.magento/services.yaml ファイルは、プロジェクトの.magento ディレクトリ内でローカルに管理されます。 この設定は、統合環境で必要なサービスバージョンを定義するためのビルドプロセス中にのみアクセスされ、デプロイメントが完了すると削除されるので、サーバー上で見つかりません。

デプロイ スクリプトは、.magento ディレクトリの設定ファイルを使用して、設定されたサービスを使用して環境をプロビジョニングします。 サービスは、.magento.app.yaml ファイルのrelationships プロパティに含まれている場合、アプリケーションで利用できるようになります。 services.yaml ファイルには、type​と​ disk ​の値が含まれています。 サービスの種類は、サービス name​および​ version ​を定義します。

サービス設定を変更すると、更新されたサービスを使用して環境をプロビジョニングするデプロイメントが発生します。これは、次の環境に影響します。

  • 実稼動環境masterを含むすべてのスターター環境
  • Pro統合環境
recommendation-more-help
  • Pro プロジェクトの場合、StagingおよびProduction環境でのみ​ サービス ​をインストールまたは更新するには、Adobe Commerce サポートチケット ​を送信する必要があります。

  • 必要なサービス変更を示し、更新された.magento.app.yamlおよびservices.yaml ファイルを含め、チケットにPHP バージョンを明記します。 PHPのバージョン、拡張機能、環境設定に対するセルフサービスの変更については、アプリケーション設定​のPHP設定を参照してください。

IMPORTANT
新しいチケットフォームで「環境」フィールドを選択する場合は、Adobeの環境命名を使用します。 例えば、その環境​ Dev ​を内部的に呼び出す場合でも、「ステージング」を選択します。 説明に内部名を記載できますが、「環境」フィールド自体にはAdobeの命名規則を使用する必要があります。
  • 実稼動環境(Proのみ)への変更の場合、48時間以上の通知が必要です。 これにより、クラウドインフラチームはリソースを集め、安全なアップグレードを行うのに十分な時間を確保できます。 通知期間は、インフラチームがリクエストを確認し、週末を除くアップグレードをスケジュールした時点から開始されます。 例えば、月曜日にサービスのアップグレードを完了させるには、水曜日までにスケジュールされたアップグレードの確認を受け取る必要があります。 需要のピーク時には、リクエストの処理により多くの時間がかかる場合があります。
NOTE
すべての通信で明確さと一貫性を確保するために、スケジュールされたすべてのメンテナンスウィンドウをUTC形式で提供する必要があります。 ステージング環境ではサービスのアップグレードをスケジュールできません。ほとんどの場合、ステージングのアップグレードはリクエストと同じ日に実行されます。
RabbitMQ アップグレードをリクエストする場合は、アップグレード完了後に環境を再デプロイして、メッセージキューが再初期化されるようにしてください。

デフォルトサービスとサポート対象サービス

クラウドインフラストラクチャは、次のサービスをサポートおよびデプロイします。

NOTE
例えば、使用可能なバージョン 🔗間でRabbitMQを順次 アップグレードする必要があります。例えば、3.9から4.1に直接アップグレードすることはできません
新しいバージョンのRabbitMQにアップグレードした後、完全なデプロイメントをトリガーして、カスタムメッセージキューがRabbitMQで再作成されるようにします。

現在の​ デフォルト services.yaml ファイル ​では、デフォルトバージョンとディスク値を表示できます。 次のサンプルは、services.yaml設定ファイルで定義されたmysqlredisopensearchまたはelasticsearchrabbitmqおよびactivemq-artemis サービスを示しています。

mysql:
    type: mysql:10.4
    disk: 5120

redis:
    type: redis:6.2

opensearch:
    type: opensearch:2  # minor version not required; uses latest
    disk: 1024

rabbitmq:
    type: rabbitmq:3.9
    disk: 1024

activemq-artemis:
    type: activemq-artemis:2.42
    disk: 1024

サービス値

サービス IDとサービス タイプ設定type: <name>:<version>を指定する必要があります。 サービスで永続ストレージを使用する場合は、ディスク値を指定する必要があります。

次の形式を使用します。

<service-id>:
    type: <name>:<version>
    disk: <value-MB>

service-id

service-id値は、プロジェクト内のサービスを識別します。 小文字の英数字のみを使用できます:az、および09 (例:redis)。

この​ service-id ​値は、.magento.app.yaml設定ファイルのrelationships プロパティで使用されます。

relationships:
    redis: "<name>:redis"

各サービスタイプの複数のインスタンスに名前を付けることができます。 例えば、複数のRedis インスタンス(セッション用に1つ、キャッシュ用に1つ)を使用できます。

redis:
    type: redis:<version>

redis2:
    type: redis:<version>

services.yaml ファイル のサービスの名前を変更すると、次の​が完全に削除されます。

  • 指定した新しい名前のサービスを作成する前の既存のサービス。
  • サービスの既存のデータはすべて削除されます。 Adobeでは、既存のサービスの名前を変更する前に、Starter環境をバックアップすることを強くお勧めします。

type

type値は、サービス名とバージョンを指定します。 例:

mysql:
    type: mysql:10.4

disk

disk値は、サービスに割り当てる永続的なディスク ストレージのサイズ (MB)を指定します。 MySQLなどの永続ストレージを使用するサービスでは、ディスク値を提供する必要があります。 Redisなどの永続ストレージの代わりにメモリを使用するサービスでは、ディスク値は必要ありません。

mysql:
    type: mysql:10.4
    disk: 5120

プロジェクトごとの現在のデフォルトのストレージ容量は5 GB、つまり512 0MBです。 この金額は、アプリケーションとその各サービスの間で配布できます。

サービスとの関係

クラウドインフラストラクチャプロジェクト上のAdobe Commerceで、.magento.app.yaml ファイルで設定されたサービス relationshipsによって、アプリケーションで使用できるサービスが決まります。

すべてのサービス関係の設定データは、$MAGENTO_CLOUD_RELATIONSHIPS環境変数から取得できます。 設定データには、サービス名、タイプ、バージョンと、ポート番号やログイン資格情報などの必要な接続の詳細が含まれます。

ローカル環境の関係を確認するには:

  1. ローカル環境で、アクティブな環境の関係を表示します。

    code language-bash
    magento-cloud relationships
    
  2. 応答からservicetypeを確認してください。 応答は、IP アドレスやポート番号などの接続情報を提供します。

    簡略化されたサンプル応答

    code language-yaml
    redis:
        -
    ...
            type: 'redis:7.0'
            port: 6379
    elasticsearch:
        -
    ...
            type: 'opensearch:2'
            port: 9200
    database:
        -
    ...
            type: 'mysql:10.6'
            port: 3306
    

リモート環境での関係を確認するには:

  1. SSHを使用してリモート環境にログインします。

  2. 環境内で設定されたすべてのサービスの関係設定データを一覧表示します。

    code language-bash
    echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
    

    または、次のece-tools コマンドを使用して関係を表示します。

    code language-bash
    php ./vendor/bin/ece-tools env:config:show services
    
  3. 応答からservicetypeを確認してください。 応答は、IP アドレスとポート番号、必要なユーザー名とパスワードの資格情報などの接続情報を提供します。

サービスバージョン

Adobe Commerce on cloud infrastructureのサービスバージョンと互換性のサポートは、クラウドインフラストラクチャにデプロイおよびテストされたバージョンによって決まり、Adobe Commerce オンプレミスのデプロイメントでサポートされているバージョンとは異なる場合があります。 Adobeが特定のAdobe CommerceおよびMagento Open Source リリースでテストしたサードパーティ製ソフトウェアの依存関係の一覧については、インストール ガイドの必要システム構成を参照してください。

ソフトウェアのEOL チェック

デプロイメントプロセス中、ece-tools パッケージは、各サービスの提供終了(EOL)日に対して、インストールされたサービスのバージョンを確認します。

  • サービスのバージョンがEOL日から3か月以内の場合、デプロイログに通知が表示されます。
  • EOL日が過去の場合は、警告通知が表示されます。

ストアのセキュリティを維持するには、インストール済みのソフトウェアのバージョンがEOLに達する前に更新する必要があります。 ece-tools' eol.yaml ファイル ​でEOLの日付を確認できます。

OpenSearchに移行

WARNING
Elasticsearch 7.11以降は、Adobe Commerce オンクラウドインフラストラクチャではサポートされていません。 Adobe Commerce バージョン 2.3.7-p3、2.4.3-p2、および2.4.4以降では、OpenSearch サービスがサポートされています。 オンプレミスのインストールは、引き続きElasticsearchをサポートします。

Adobe Commerce バージョン 2.4.4以降については、OpenSearch サービスの設定を参照してください。

サービスのバージョンを変更

インストール済みのサービスのバージョンは、Cloud環境にデプロイされているAdobe Commerceのバージョンと互換性を保つためにアップグレードできます。

インストール済みサービスのサービス バージョンを直接ダウンロードすることはできません。 ただし、必要なバージョンのサービスを作成できます。 ​ ダウングレードサービスバージョン ​を参照してください。

インストール済みサービスのバージョンのアップグレード

インストールされているサービスのバージョンは、services.yaml ファイルのサービス設定を更新することでアップグレードできます。

  1. .magento/services.yaml ファイルのサービスのtype値を変更します。

    元のサービス定義

    code language-yaml
    mysql:
        type: mysql:10.3
        disk: 2048
    

    サービス定義を更新しました

    code language-yaml
    mysql:
        type: mysql:10.4
        disk: 5120
    
  2. コード変更を追加、コミット、プッシュします。

    code language-bash
    git add .magento/services.yaml
    
    code language-bash
    git commit -m "Upgrade MySQL from MariaDB 10.3 to 10.4."
    
    code language-bash
    git push origin <branch-name>
    

ダウングレードバージョン

インストール済みのサービスを直接ダウングレードすることはできません。 選択肢は次の2つです。

  1. 既存のサービスの名前を新しいバージョンに変更し、既存のサービスとデータを削除して新しいサービスを追加します。

  2. サービスを作成し、既存のサービスからデータを保存します。

サービスのバージョンを変更する場合は、services.yaml ファイルのサービス設定を更新し、.magento.app.yaml ファイルの関係を更新する必要があります。

既存のサービスの名前を変更してサービスのバージョンをダウングレードするには:

  1. .magento/services.yaml ファイル内の既存のサービスの名前を変更し、バージョンを変更します。

    note warning
    WARNING
    既存のサービスの名前を変更すると、既存のサービスに置き換わり、すべてのデータが削除されます。 データを保持する必要がある場合は、既存の名前を変更する代わりにサービスを作成します。

    例えば、mysql サービスのMariaDB バージョンをバージョン 10.4から10.3にダウングレードするには、既存の​ service-id ​および​ type ​設定を変更します。

    元のservices.yaml定義

    code language-yaml
    mysql:
        type: mysql:10.4
        disk: 5120
    

    新しいservices.yaml定義

    code language-yaml
    mysql2:
         type: mysql:10.3
         disk: 5120
    
  2. .magento.app.yaml ファイルの関係を更新します。

    元の.magento.app.yaml設定

    code language-yaml
    relationships:
        database: "mysql:mysql"
    

    更新された.magento.app.yaml設定

    code language-yaml
    relationships:
        database: "mysql2:mysql"
    
  3. コード変更を追加、コミット、プッシュします。

サービスを作成してサービスをダウングレードするには:

  1. ダウングレードされたバージョン仕様を使用して、プロジェクトのservices.yaml ファイルにサービス定義を追加します。 次の例の​ mysql2 ​を参照してください。

    services.yaml

    code language-yaml
    mysql:
        type: mysql:10.4
        disk: 5120
    mysql2:
        type: mysql:10.3
        disk: 5120
    
  2. 新しいサービスを使用するように、.magento.app.yaml ファイルの関係設定を変更します。

    元の.magento.app.yaml設定

    code language-yaml
    relationships:
        database: "mysql:mysql"
    

    新しい.magento.app.yaml設定

    code language-yaml
    relationships:
        database: "mysql2:mysql"
    
  3. コード変更を追加、コミット、プッシュします。

7c2b03ac-000c-497d-aba3-2c6dc720a938