サービスの設定
services.yaml ファイルは、MySQL、Redis、ElasticsearchまたはOpenSearchなど、Adobe Commerceでクラウドインフラストラクチャ上でサポートおよび使用されるサービスを定義します。 外部サービスプロバイダーに加入する必要はありません。
.magento/services.yaml ファイルは、プロジェクトの.magento ディレクトリ内でローカルに管理されます。 この設定は、統合環境で必要なサービスバージョンを定義するためのビルドプロセス中にのみアクセスされ、デプロイメントが完了すると削除されるので、サーバー上で見つかりません。デプロイ スクリプトは、.magento ディレクトリの設定ファイルを使用して、設定されたサービスを使用して環境をプロビジョニングします。 サービスは、.magento.app.yaml ファイルのrelationships プロパティに含まれている場合、アプリケーションで利用できるようになります。 services.yaml ファイルには、typeと disk の値が含まれています。 サービスの種類は、サービス nameおよび version を定義します。
サービス設定を変更すると、更新されたサービスを使用して環境をプロビジョニングするデプロイメントが発生します。これは、次の環境に影響します。
- 実稼動環境
masterを含むすべてのスターター環境 - Pro統合環境
-
Pro プロジェクトの場合、
StagingおよびProduction環境でのみ サービス をインストールまたは更新するには、Adobe Commerce サポートチケット を送信する必要があります。 -
必要なサービス変更を示し、更新された
.magento.app.yamlおよびservices.yamlファイルを含め、チケットにPHP バージョンを明記します。 PHPのバージョン、拡張機能、環境設定に対するセルフサービスの変更については、アプリケーション設定のPHP設定を参照してください。
- 実稼動環境(Proのみ)への変更の場合、48時間以上の通知が必要です。 これにより、クラウドインフラチームはリソースを集め、安全なアップグレードを行うのに十分な時間を確保できます。 通知期間は、インフラチームがリクエストを確認し、週末を除くアップグレードをスケジュールした時点から開始されます。 例えば、月曜日にサービスのアップグレードを完了させるには、水曜日までにスケジュールされたアップグレードの確認を受け取る必要があります。 需要のピーク時には、リクエストの処理により多くの時間がかかる場合があります。
デフォルトサービスとサポート対象サービス
クラウドインフラストラクチャは、次のサービスをサポートおよびデプロイします。
現在の デフォルト services.yaml ファイル では、デフォルトバージョンとディスク値を表示できます。 次のサンプルは、services.yaml設定ファイルで定義されたmysql、redis、opensearchまたはelasticsearch、rabbitmqおよび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値は、プロジェクト内のサービスを識別します。 小文字の英数字のみを使用できます:a ~ z、および0 ~ 9 (例: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環境変数から取得できます。 設定データには、サービス名、タイプ、バージョンと、ポート番号やログイン資格情報などの必要な接続の詳細が含まれます。
ローカル環境の関係を確認するには:
-
ローカル環境で、アクティブな環境の関係を表示します。
code language-bash magento-cloud relationships -
応答から
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
リモート環境での関係を確認するには:
-
SSHを使用してリモート環境にログインします。
-
環境内で設定されたすべてのサービスの関係設定データを一覧表示します。
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 -
応答から
serviceとtypeを確認してください。 応答は、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に移行
Adobe Commerce バージョン 2.4.4以降については、OpenSearch サービスの設定を参照してください。
サービスのバージョンを変更
インストール済みのサービスのバージョンは、Cloud環境にデプロイされているAdobe Commerceのバージョンと互換性を保つためにアップグレードできます。
インストール済みサービスのサービス バージョンを直接ダウンロードすることはできません。 ただし、必要なバージョンのサービスを作成できます。 ダウングレードサービスバージョン を参照してください。
インストール済みサービスのバージョンのアップグレード
インストールされているサービスのバージョンは、services.yaml ファイルのサービス設定を更新することでアップグレードできます。
-
.magento/services.yamlファイルのサービスのtype値を変更します。元のサービス定義
code language-yaml mysql: type: mysql:10.3 disk: 2048サービス定義を更新しました
code language-yaml mysql: type: mysql:10.4 disk: 5120 -
コード変更を追加、コミット、プッシュします。
code language-bash git add .magento/services.yamlcode language-bash git commit -m "Upgrade MySQL from MariaDB 10.3 to 10.4."code language-bash git push origin <branch-name>
ダウングレードバージョン
インストール済みのサービスを直接ダウングレードすることはできません。 選択肢は次の2つです。
-
既存のサービスの名前を新しいバージョンに変更し、既存のサービスとデータを削除して新しいサービスを追加します。
-
サービスを作成し、既存のサービスからデータを保存します。
サービスのバージョンを変更する場合は、services.yaml ファイルのサービス設定を更新し、.magento.app.yaml ファイルの関係を更新する必要があります。
既存のサービスの名前を変更してサービスのバージョンをダウングレードするには:
-
.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 -
.magento.app.yamlファイルの関係を更新します。元の
.magento.app.yaml設定code language-yaml relationships: database: "mysql:mysql"更新された
.magento.app.yaml設定code language-yaml relationships: database: "mysql2:mysql" -
コード変更を追加、コミット、プッシュします。
サービスを作成してサービスをダウングレードするには:
-
ダウングレードされたバージョン仕様を使用して、プロジェクトの
services.yamlファイルにサービス定義を追加します。 次の例の mysql2 を参照してください。services.yaml
code language-yaml mysql: type: mysql:10.4 disk: 5120 mysql2: type: mysql:10.3 disk: 5120 -
新しいサービスを使用するように、
.magento.app.yamlファイルの関係設定を変更します。元の
.magento.app.yaml設定code language-yaml relationships: database: "mysql:mysql"新しい
.magento.app.yaml設定code language-yaml relationships: database: "mysql2:mysql" -
コード変更を追加、コミット、プッシュします。