サービスの設定

services.yaml ファイルは、MySQL、Redis、Elasticsearchまたは OpenSearch など、クラウドインフラストラクチャー上のAdobe Commerceでサポートされ、使用されるサービスを定義します。 外部サービスプロバイダーに登録する必要はありません。 このファイルは、プロジェクトの .magento ディレクトリにあります。

デプロイ スクリプトは、.magento ディレクトリの設定ファイルを使用して、設定済みのサービスを環境にプロビジョニングします。 サービスは、.magento.app.yaml ファイルの relationships プロパティに含まれていると、アプリケーションで使用できるようになります。 services.yaml ファイルには typedisk の値が含まれています。 サービスタイプは、サービス nameversion を定義します。

サービス設定を変更すると、デプロイメントによって更新されたサービスを環境にプロビジョニングされます。これにより、次の環境が影響を受けます。

  • 実稼動環境を含むすべてのスタータ master 環境
  • Pro 統合環境
TIP
Pro プロジェクトの場合、Staging および Production 環境でのみ サービスをインストールまたは更新するには、Adobe Commerce サポートチケットを送信する必要があります。
必要なサービスの変更を示し、更新した .magento.app.yaml ファイルと services.yaml ファイルを含め、PHP バージョンをチケットに記載します。 PHP のバージョン、拡張機能、または環境設定のセルフサービスでの変更については、 アプリケーション設定 _のPHP 設定_ を参照してください。
ライブ 実稼動環境(Pro のみ)への変更の場合、クラウドインフラストラクチャチームがリソースをマーシャリングし、安全なアップグレードを実施するのに十分な時間を確保できるように、少なくとも 48 時間の注意事項を提供する必要があります。

デフォルトおよびサポートされているサービス

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

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

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

サービス値

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

次の形式を使用します。

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

service-id

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

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

relationships:
    redis: "<name>:redis"

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

redis:
    type: redis:<version>

redis2:
    type: redis:<version>

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

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

type

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

mysql:
    type: mysql:10.4

disk

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

mysql:
    type: mysql:10.4
    disk: 5120

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

サービスの関係

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

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

ローカル環境で関係を検証するには:

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

    code language-bash
    magento-cloud relationships
    
  2. service を確認し、応答から type を返します。 応答では、IP アドレスやポート番号などの接続情報が提供されます。

    短縮されたサンプル応答

    code language-terminal
    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. service を確認し、応答から type を返します。 応答では、IP アドレスやポート番号、必要なユーザー名やパスワードの認証情報などの接続情報が提供されます。

サービスのバージョン

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

ソフトウェアの 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 サービスの設定を参照してください。

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

インストールしたサービスバージョンは、クラウド環境にデプロイされた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-idtype の設定を変更します。

    元の 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. コードの変更を追加、コミット、プッシュします。

recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26