서비스 구성

services.yaml 파일은 MySQL, Redis 또는 Valkey, Elasticsearch 또는 OpenSearch와 같은 클라우드 인프라에서 Adobe Commerce이 지원하고 사용하는 서비스를 정의합니다. 외부 서비스 공급자에 가입할 필요가 없습니다.

NOTE
.magento/services.yaml 파일은 프로젝트의 .magento 디렉터리에서 로컬로 관리됩니다. 배포 중에 클라우드 인프라의 Adobe Commerce은 이 구성을 사용하여 대상 환경에 지원되는 서비스를 프로비저닝합니다. 배포 후 .magento 디렉터리가 원격 서버에서 제거되었으므로 배포된 환경에 services.yaml이(가) 없습니다.

배포 스크립트는 .magento 디렉터리의 구성 파일을 사용하여 구성된 서비스로 환경을 프로비전합니다. 응용 프로그램이 .magento.app.yaml 파일의 relationships 속성에 포함된 경우 해당 응용 프로그램에서 서비스를 사용할 수 있게 됩니다. services.yaml 파일에 typedisk 값이 있습니다. 서비스 유형은 서비스 nameversion​을(를) 정의합니다.

.magento/services.yaml의 서비스 구성이 composer.json에 정의된 PHP 및 Composer 패키지 종속성과 분리되어 composer.lock에 잠겨 있습니다.

서비스 변경 사항이 적용되는 위치

서비스 구성을 변경하면 배포에서 업데이트된 서비스로 환경을 프로비저닝하게 되며, 이는 다음 환경에 영향을 줍니다.

  • 프로덕션 master을(를) 포함한 모든 시작 환경
  • Pro 통합 환경

Pro 서비스 지원

스테이징 또는 프로덕션에서 Pro 서비스 업그레이드를 요청하고 완료하려면 다음 단계를 따르십시오.

  1. StagingProduction 환경에서만 서비스를 설치하거나 업데이트하려면 Adobe Commerce 지원 티켓을 제출하세요.

    티켓에서 필요한 서비스 변경 사항을 지정하고 업데이트된 .magento.app.yaml.magento/services.yaml 파일을 포함한 다음 대상 PHP 버전을 확인합니다.

    PHP 버전, Composer 업데이트, 확장, 환경 설정 등은 셀프서비스 변경 사항입니다. Adobe에서 PHP 버전 호환성을 위해 New Relic 에이전트를 업데이트해야 할 수 있습니다. 응용 프로그램 구성​에서 PHP 설정을 참조하십시오.

    note important
    IMPORTANT
    티켓 양식에서 Environment 필드를 선택할 때 Adobe의 환경 이름을 사용하십시오. 예를 들어 내부적으로 해당 환경 Dev​을(를) 호출하는 경우에도 [스테이징]을 선택합니다. 설명에 내부 이름을 언급할 수 있지만 Environment 필드에는 Adobe의 명명법을 사용해야 합니다.
  2. Adobe의 두 가지 프로세스를 통해 업그레이드 일정을 확인: 요청한 날짜와 시간을 먼저 확인한 다음, 지원 팀에서 최종 확인을 위해 인프라 팀에 제출합니다.

    생산 변경(Pro 전용)에는 주말을 제외하고 영업일 기준으로 최소 2일 이상의 통지가 필요합니다. 예를 들어 클라우드 인프라 팀은 이전 수요일까지 월요일 업그레이드를 승인해야 합니다. 최대 수요 동안 추가 리드 타임을 예상합니다. 지연을 방지하려면 초기 요청에 적어도 창 48시간 전에 응답합니다. 업그레이드는 최종 확인을 받을 때까지 예약된 것으로 간주되지 않습니다.

    note
    NOTE
    유지 관리 기간을 UTC로 제공합니다. 스테이징 업그레이드는 미리 예약되지 않으며 일반적으로 요청과 같은 날에 완료됩니다.
    RabbitMQ 업그레이드 후 환경을 다시 배포하여 메시지 큐를 다시 초기화합니다.
  3. 프로덕션에서 예약하기 전에 스테이징 또는 통합 환경에서 업그레이드의 유효성을 검사하십시오.

    서드파티 모듈, 사용자 지정 코드 또는 종속성 호환성으로 인해 발생한 문제는 서비스 업그레이드 후 재배포 중에 종종 발생합니다. 여러 서비스 업그레이드를 한 번에 하나씩 검증하려면 Valkey 또는 Redis, RabbitMQ, OpenSearch, MariaDB를 차례로 주문해야 합니다. 이 시퀀스는 필수 시퀀스가 아닙니다. 데이터베이스 업그레이드는 운영에 가장 큰 영향을 미치므로 가장 주의해야 합니다.

    시간은 환경 및 관련 서비스에 따라 다르므로 Adobe은 프로덕션 유지 관리 기간의 정확한 기간을 사전에 보장하지 않습니다. 프로덕션 창을 계획할 때 스테이징 업그레이드가 실제 예상으로 소요되는 시간을 사용합니다.

  4. Adobe 응용 프로그램 버전이 변경되지 않더라도 변경 사항이 적용되도록 Adobe Commerce이 서비스 업그레이드를 완료한 후 환경을 다시 배포​합니다.

    업그레이드에 OpenSearch가 포함된 경우 전체 색인 재지정도 계획합니다. Adobe은 서비스 업그레이드에 대해 무중단 다운타임을 보장할 수 없으므로 사이트를 다시 열기 전에 재배포하고, 필요한 경우 색인을 재지정하고, 상점 및 관리자의 유효성을 확인할 수 있는 유지 관리 기간을 계획하십시오.

업그레이드 중 고객 가용성

예약된 프로덕션 업그레이드 기간 동안 팀이나 구현 파트너의 담당자를 온라인으로 사용할 수 있어야 합니다. 트래픽이 적은 기간 동안 일정을 예약해도 업그레이드가 중단되지 않습니다. Adobe은 클라우드 인프라 업그레이드를 관리하지만 애플리케이션 동작, 통합, 사용자 지정 코드 또는 비즈니스 워크플로의 유효성을 검사할 수 없습니다.

사용 가능한 담당자는 다음 작업을 수행할 수 있어야 합니다.

  • 업그레이드 중과 이후에 상점 및 중요한 비즈니스 트랜잭션을 모니터링.
  • Adobe 지원 또는 클라우드 인프라 팀의 질문에 응답​합니다.
  • 통합, 확장, 사용자 지정, cron 작업, 큐 및 기타 고객 특정 기능이 예상대로 작동하는지 확인​합니다.
  • 체크아웃, 카탈로그 보기, 검색, 로그인 및 주문 처리와 같은 비즈니스 크리티컬 워크플로를 확인​합니다.
  • 업그레이드 컨텍스트와 로그를 계속 사용할 수 있는 동안 예기치 않은 동작이 즉시 보고​됩니다.
TIP
Pro 프로젝트의 경우 프로덕션 환경에서 서비스를 업그레이드하려면 사전 예약과 Adobe 지원 을 통한 2파트 확인 프로세스도 필요합니다. Pro 서비스 지원을 참조하세요.

유지 관리 모드

유지 관리 모드는 고객 가용성의 대체물이 아닙니다. 유지 관리 모드는 상점 액세스를 차단하지만 애플리케이션 서비스, 통합, 대기열, cron 작업, 체크아웃 또는 기타 고객별 기능을 검증하지는 않습니다.

계획된 작업에 유지 관리 모드가 필요한 경우 Adobe 지원 을 통해 사용을 조정하고 해당 업그레이드에 대한 지침을 따르십시오. 이후에, 작업 완료를 고려하기 전에 상점 및 주요 워크플로우가 정상적으로 작동하는지 확인하십시오.

기본 및 지원 서비스

Adobe Commerce on cloud infrastructure는 프로젝트에 대해 구성할 수 있는 다음 서비스를 지원합니다.

NOTE
사용 가능한 버전 간에 순차적으로 RabbitMQ를 업그레이드합니다. 예를 들어 3.9에서 4.1로 바로 업그레이드하지 마십시오.
새 버전으로 업그레이드한 후 RabbitMQ에서 사용자 지정 메시지 대기열을 다시 만들려면 전체 배포를 트리거합니다.

구성된 서비스 및 버전 보기

현재 템플릿 services.yaml 파일에서 예제 서비스 정의 및 디스크 값을 볼 수 있습니다. 실제 기본 및 지원되는 서비스 버전은 Adobe Commerce 버전과 현재 클라우드 템플릿에 따라 다릅니다.

다음 예제에서는 services.yaml 구성 파일에 서비스 정의를 표시합니다.

mysql:
    type: mysql:11.8
    disk: 5120

cache:
    type: valkey:9.0

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

rabbitmq:
    type: rabbitmq:4.3
    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까지 영숫자만 사용할 수 있습니다(예: valkey).

service-id 값은 .magento.app.yaml 구성 파일의 relationships 속성에 사용됩니다.

relationships:
    valkey: "valkey:valkey"

각 서비스 유형의 여러 인스턴스에 이름을 지정할 수 있습니다. 예를 들어 세션용 인스턴스 및 캐시용 인스턴스 등 여러 개의 Valkey 인스턴스를 사용할 수 있습니다.

valkey:
    type: valkey:<version>

valkey2:
    type: valkey:<version>

services.yaml 파일의 서비스 이름 바꾸기:

  • 지정한 새 이름으로 서비스를 만들기 전의 기존 서비스입니다.
  • 서비스에 대한 기존 데이터가 모두 제거됩니다. Adobe에서는 기존 서비스의 이름을 변경하기 전에 스타터 환경을 백업하는 것이 좋습니다.

type

type 값은 서비스 이름과 버전을 지정합니다. For example:

mysql:
    type: mysql:10.4

disk

disk 값은 서비스에 할당할 영구 디스크 저장소 크기(MB)를 지정합니다. MySQL과 같은 영구 저장소를 사용하는 서비스는 디스크 값을 제공해야 합니다. Valkey와 같이 영구 저장소 대신 메모리를 사용하는 서비스에는 디스크 값이 필요하지 않습니다.

mysql:
    type: mysql:10.4
    disk: 5120

프로젝트당 현재 기본 스토리지 용량은 5GB 또는 5,120MB입니다. 이 금액을 애플리케이션과 각 서비스 간에 분배할 수 있습니다.

서비스 관계

클라우드 인프라 프로젝트의 Adobe Commerce에서 .magento.app.yaml 파일에 구성된 서비스 관계은(는) 애플리케이션에서 사용할 수 있는 서비스를 결정합니다.

$MAGENTO_CLOUD_RELATIONSHIPS 환경 변수에서 모든 서비스 관계에 대한 구성 데이터를 검색할 수 있습니다. 구성 데이터에는 포트 번호 및 로그인 자격 증명과 같은 필수 연결 세부 정보와 함께 서비스 이름, 유형 및 버전이 포함됩니다.

로컬 개발 환경에서 관계 확인

  1. 로컬 개발 환경에서 활성 환경의 관계를 표시합니다.

    code language-bash
    magento-cloud relationships
    
  2. 응답에서 servicetype을(를) 확인합니다. 이 응답은 IP 주소 및 포트 번호와 같은 연결 정보를 제공합니다.

    축약된 샘플 응답

    code language-yaml
    valkey:
        -
    ...
            type: 'valkey:8.0'
            port: 6379
    opensearch:
        -
    ...
            type: 'opensearch:3'
            port: 9200
    database:
        -
    ...
            type: 'mysql:11.8'
            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에 대한 서비스 버전 및 호환성 지원을 결정합니다. 이는 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 이상 버전은 클라우드 인프라의 Adobe Commerce에서 지원되지 않습니다. Adobe Commerce 2.4.4 이상 버전은 OpenSearch 서비스를 지원합니다.

Adobe Commerce 버전 2.4.4 이상은 OpenSearch 서비스 설정을 참조하십시오.

서비스 버전 변경

설치된 서비스 버전을 업그레이드하여 클라우드 환경에 배포된 Adobe Commerce 버전과의 호환성을 유지할 수 있습니다.

설치된 서비스의 서비스 버전을 직접 다운그레이드할 수 없습니다. 그러나 필요한 버전으로 서비스를 만들 수는 있습니다. 다운그레이드 서비스 버전을 참조하세요.

설치된 서비스 버전 업그레이드

services.yaml 파일에서 서비스 구성을 업데이트하여 설치된 서비스 버전을 업그레이드할 수 있습니다.

  1. .magento/services.yaml 파일에서 서비스에 대한 type 값을 변경합니다.

    원래 서비스 정의

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

    업데이트된 서비스 정의

    code language-yaml
    mysql:
        type: mysql:12.3
        disk: 5120
    
  2. 코드 변경 사항을 추가, 커밋 및 푸시합니다.

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

다운그레이드 버전

설치된 서비스를 직접 다운그레이드할 수는 없습니다. 다음 두 가지 옵션이 있습니다.

  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
commerce-on-cloud-help-cloud-guide