サービスの設定

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

NOTE
.magento/services.yaml ファイルは、プロジェクトの .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-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. 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