

지원 종료 알림: 2026년 10월 7일에 AWS 에 대한 지원이 종료됩니다 AWS Proton. 2026년 10월 7일 이후에는 AWS Proton 콘솔 또는 AWS Proton 리소스에 더 이상 액세스할 수 없습니다. 배포된 인프라는 그대로 유지됩니다. 자세한 내용은 [AWS Proton 서비스 사용 중단 및 마이그레이션 안내서](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html)를 참조하세요.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 서비스 동기화 구성
<a name="ag-service-sync-configs"></a>

서비스 동기화를 사용하면 Git을 사용하여 AWS Proton 서비스를 구성하고 배포할 수 있습니다. 서비스 동기화를 사용하여 Git 리포지토리에 정의된 구성으로 AWS Proton 서비스에 대한 초기 배포 및 업데이트를 관리할 수 있습니다. Git을 통해 버전 추적 및 풀 요청과 같은 기능을 사용하여 서비스를 구성, 관리 및 배포할 수 있습니다. 서비스 동기화는 AWS Proton 및 Git을 결합하여 AWS Proton 템플릿을 통해 정의되고 관리되는 표준화된 인프라를 프로비저닝하는 데 도움이 됩니다. Git 리포지토리의 서비스 정의를 관리하고 도구 전환을 줄입니다. Git을 단독으로 사용하는 것에 비해에서 템플릿 및 배포 AWS Proton 를 표준화하면 인프라 관리에 소요되는 시간을 줄일 수 있습니다. AWS Proton 또한 개발자와 플랫폼 팀 모두에게 더 높은 투명성과 감사 가능성을 제공합니다.

## AWS Proton OPS 파일
<a name="service-sync-ops"></a>

`proton-ops` 파일은가 서비스 인스턴스를 업데이트하는 데 사용되는 사양 파일을 AWS Proton 찾는 위치를 정의합니다. 또한 서비스 인스턴스를 업데이트할 순서와 한 인스턴스에서 다른 인스턴스로 변경 사항을 프로모션할 시기를 정의합니다.

이 `proton-ops` 파일은 연결된 저장소에 있는 사양 파일 또는 여러 사양 파일을 사용하여 서비스 인스턴스를 동기화하는 것을 지원합니다. 다음 예와 같이 `proton-ops` 파일에 동기화 블록을 정의하여 이 작업을 수행할 수 있습니다.

**예시 ./configuration/proton-ops.yaml:**

```
sync:
  services:
      frontend-svc:
          alpha:
              branch: dev
              spec: ./frontend-svc/test/frontend-spec.yaml
          beta:
              branch: dev
              spec: ./frontend-svc/test/frontend-spec.yaml
          gamma:
              branch: pre-prod
              spec: ./frontend-svc/pre-prod/frontend-spec.yaml
          prod-one:
              branch: prod
              spec: ./frontend-svc/prod/frontend-spec-second.yaml
          prod-two:
              branch: prod
              spec: ./frontend-svc/prod/frontend-spec-second.yaml
          prod-three:
              branch: prod
              spec: ./frontend-svc/prod/frontend-spec-second.yaml
```

위 예시에서 `frontend-svc`는 서비스 이름이고, `alpha`, `beta` , `gamma`, `prod-one`, `prod-two` 및 `prod-three`은 는 인스턴스입니다.

`spec` 파일은 `proton-ops`파일 내에 정의된 모든 인스턴스 또는 인스턴스의 하위 집합일 수 있습니다. 하지만 최소한 브랜치 내에 정의된 인스턴스와 동기화 대상 사양이 있어야 합니다. 인스턴스가 특정 브랜치 및 `spec` 파일 위치와 함께 `proton-ops` 파일에 정의되어 있지 않으면 서비스 동기화에서 해당 인스턴스를 만들거나 업데이트하지 않습니다.

다음 예는 `spec` 파일의 모양을 보여줍니다. `proton-ops` 파일은 이러한 `spec` 파일에서 동기화된다는 점을 기억합니다.

**예제 `./frontend-svc/test/frontend-spec.yaml`:**

```
proton: "ServiceSpec"
instances:
- name: "alpha"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
- name: "beta"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
```

**예제 `./frontend-svc/pre-prod/frontend-spec.yaml`:**

```
proton: "ServiceSpec"
instances:
- name: "gamma"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
```

**예제 `./frontend-svc/prod/frontend-spec-second.yaml`:**

```
proton: "ServiceSpec"
instances:
- name: "prod-one"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
- name: "prod-two"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
- name: "prod-three"
  environment: "frontend-env"
  spec:
    port: 80
    desired_count: 1
    task_size: "x-small"
    image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"
```

인스턴스가 동기화되지 않고 동기화를 시도할 때 계속 문제가 발생하는 경우 [https://docs.aws.amazon.com//proton/latest/APIReference/API_GetServiceInstanceSyncStatus.html](https://docs.aws.amazon.com//proton/latest/APIReference/API_GetServiceInstanceSyncStatus.html)API를 직접 호출하면 문제를 해결하는 데 도움이 될 수 있습니다.

**참고**  
서비스 동기화를 사용하는 고객은 여전히 AWS Proton 제한으로 제한됩니다.

**Blockers**

서비스 동기화를 사용하여 AWS Proton 서비스를 동기화하면 서비스 사양을 업데이트하고 Git 리포지토리에서 서비스 인스턴스를 생성하고 업데이트할 수 있습니다. 그러나 AWS Management Console 또는를 통해 서비스 또는 인스턴스를 수동으로 업데이트해야 하는 경우가 있을 수 있습니다 AWS CLI.

AWS Proton 는 서비스 인스턴스 업데이트 또는 서비스 인스턴스 삭제 AWS CLI와 같이 AWS Management Console 또는를 통해 수행한 수동 변경 사항을 덮어쓰지 않도록 합니다. 이를 위해 AWS Proton 은 수동 변경이 감지되면 서비스 동기화를 비활성화하여 서비스 동기화 차단기를 자동으로 생성합니다.

서비스와 관련된 모든 차단기를 가져오려면 서비스와 관련된 각 `serviceInstance`에 대해 다음을 순서대로 수행해야 합니다.
+ `serviceName`만 사용하여 `getServiceSyncBlockerSummary` API를 직접 호출합니다.
+ `serviceName`와 `serviceInstanceName`를 사용하여 `getServiceSyncBlockerSummary` API를 직접 호출합니다.

그러면 가장 최근의 차단기 목록과 이와 관련된 상태가 반환됩니다. **ACTIVE**로 표시된 차단기가 있는 경우 각각의 경우에 대해 `blockerId` 및 `resolvedReason`가 있는 `UpdateServiceSyncBlocker` API를 직접 호출하여 해결해야 합니다.

서비스 인스턴스를 수동으로 업데이트하거나 생성하는 경우는 서비스 인스턴스에서 서비스 동기화 블로커를 AWS Proton 생성합니다.는 AWS Proton 다른 모든 서비스 인스턴스를 동기화하기 위해 계속 진행하지만 블로커가 해결될 때까지이 서비스 인스턴스의 동기화를 비활성화합니다. 서비스에서 서비스 인스턴스를 삭제하면가 서비스에서 서비스 동기화 차단기를 AWS Proton 생성합니다. 이렇게 하면 AWS Proton 가 블로커가 해결될 때까지 서비스 인스턴스를 동기화할 수 없습니다.

모든 활성 차단기를 설정한 후에는 활성 차단기 각각에 `blockerId` 및 `resolvedReason`이 있는 `UpdateServiceSyncBlocker` API를 직접 호출하여 차단기를 해결해야 합니다.

를 사용하여 로 이동하여 AWS Proton 서비스 동기화 탭을 선택하여 **서비스 동기화**가 비활성화되었는지 확인할 AWS Management Console수 있습니다. 서비스 또는 서비스 인스턴스가 차단된 경우 **활성화** 버튼이 나타납니다. 서비스 동기화를 활성화하려면 **활성화**를 선택합니다.

**Topics**
+ [AWS Proton OPS 파일](#service-sync-ops)
+ [서비스 동기화 구성 생성](create-service-sync.md)
+ [서비스 동기화의 구성 세부 정보 보기](get-service-sync.md)
+ [서비스 동기화 구성 편집](update-service-sync.md)
+ [서비스 동기화 구성 삭제](delete-service-sync.md)

# 서비스 동기화 구성 생성
<a name="create-service-sync"></a>



콘솔 또는를 사용하여 서비스 동기화 구성을 생성할 수 있습니다 AWS CLI.

------
#### [ AWS Management Console ]

1. **서비스 템플릿 선택** 페이지에서 템플릿을 선택하고 **구성**을 선택합니다.

1. **서비스 구성** 페이지의 **서비스 세부 정보** 단원에서 새 **서비스 이름**을 입력합니다.

1. (선택 사항) 서비스 설명을 입력합니다.

1. **애플리케이션 소스 코드 리포지토리** 섹션에서 **연결된 Git 리포**지토리 선택을 선택하여 이미 연결한 리포지토리를 선택합니다 AWS Proton. 연결된 리포지토리가 아직 없는 경우 **다른 Git 리포지토리 연결**을 선택하고 [리포지토리 링크 만들기](https://docs.aws.amazon.com//proton/latest/userguide/ag-create-repo.html)의 지침을 따릅니다.

1. **리포지토리**의 경우 목록에서 소스 코드 리포지토리의 이름을 선택합니다.

1. **브랜치** 경우 목록에서 소스 코드의 리포지토리 브랜치 이름을 선택합니다.

1. (선택 사항) **태그** 단원에서 **새 태그 추가** 를 선택하고 키와 값을 입력하여 고객 관리형 태그를 생성합니다.

1. **다음**을 선택합니다.

1. **서비스 인스턴스 구성** 페이지의 **서비스 정의 소스** 단원에서 **Git에서 서비스 동기화**를 선택합니다.

1. **서비스 정의 파일** 단원에서 AWS Proton 가 `proton-ops` 파일을 생성하려면 **AWS Proton이 파일을 생성하도록 하기**를 선택합니다. 이 옵션을 사용하면가 지정한 위치에 `spec` 및 `proton-ops` 파일을 AWS Proton 생성합니다. 자체 OPS 파일을 생성하려면 **자체 파일을 제공합니다**를 선택합니다.

1. **서비스 정의 리포지토리** 섹션에서 **연결된 Git 리포지**토리 선택을 선택하여 이미 연결한 리포지토리를 선택합니다 AWS Proton.

1. **리포지토리 이름**의 경우 목록에서 소스 코드 리포지토리의 이름을 선택합니다.

1. **`proton-ops` 파일 브랜치**의 경우가 OPS 및 사양 파일을 AWS Proton 넣을 목록에서 브랜치의 이름을 선택합니다.

1. **서비스 인스턴스** 섹션의 각 필드는 `proton-ops` 파일의 값을 기반으로 자동으로 채워집니다.

1. **다음**을 선택하고 입력 내용을 검토합니다.

1. **생성(Create)**을 선택합니다.

------
#### [ AWS CLI ]

**를 사용하여 서비스 동기화 구성 생성 AWS CLI**
+ 다음 명령을 실행합니다.

  ```
  $ aws proton create-service-sync-config \
      --resource "service-arn" \
      --repository-provider "GITHUB" \
      --repository "example/proton-sync-service" \
      --ops-file-branch "main" \
      --proton-ops-file "./configuration/custom-proton-ops.yaml" (optional)
  ```

  응답은 다음과 같습니다.

  ```
  {
      "serviceSyncConfig": {
          "branch": "main",
          "filePath": "./configuration/custom-proton-ops.yaml",
          "repositoryName": "example/proton-sync-service",
          "repositoryProvider": "GITHUB",
          "serviceName": "service name"
      }
  }
  ```

------

# 서비스 동기화의 구성 세부 정보 보기
<a name="get-service-sync"></a>

콘솔 또는 AWS CLI를 사용하여 서비스 동기화에 대한 구성 세부 정보 데이터를 볼 수 있습니다.

------
#### [ AWS Management Console ]

**콘솔을 사용하여 서비스 동기화의 구성 세부 정보를 봅니다.**

1. 탐색 창에서 ** 서비스**를 선택합니다.

1. 세부 데이터를 보려면 서비스 동기화 구성을 만든 서비스의 이름을 선택합니다.

1. 서비스의 세부 정보 페이지에서 서비스 **동기화 탭을 선택하여 서비스 동기화에** 대한 구성 세부 데이터를 확인합니다.

------
#### [ AWS CLI ]

** AWS CLI 를 사용하여 동기화된 서비스를 가져옵니다.**

다음 명령을 실행합니다.

```
$ aws proton get-service-sync-config \
    --service-name "service name"
```

응답은 다음과 같습니다.

```
{
    "serviceSyncConfig": {
        "branch": "main",
        "filePath": "./configuration/custom-proton-ops.yaml",
        "repositoryName": "example/proton-sync-service",
        "repositoryProvider": "GITHUB",
        "serviceName": "service name"
    }
}
```

** AWS CLI 를 사용하여 서비스 동기화 상태를 가져옵니다.**

다음 명령을 실행합니다.

```
$ aws proton get-service-sync-status \
    --service-name "service name"
```

------

# 서비스 동기화 구성 편집
<a name="update-service-sync"></a>

콘솔 또는를 사용하여 서비스 동기화 구성을 편집할 수 있습니다 AWS CLI.



------
#### [ AWS Management Console ]

콘솔을 사용하여 서비스 동기화 구성을 편집합니다.

1. 탐색 창에서 ** 서비스**를 선택합니다.

1. 세부 데이터를 보려면 서비스 동기화 구성을 만든 서비스의 이름을 선택합니다.

1. 서비스 세부 정보 페이지에서 **서비스 동기화** 탭을 선택합니다.

1. **서비스 동기화** 단원에서 **편집**을 선택합니다.

1. **편집** 페이지에서 편집하려는 정보를 업데이트한 다음 **저장**을 선택합니다.

------
#### [ AWS CLI ]

**다음 예제 명령 및 응답은 AWS CLI를 사용하여 서비스 동기화 구성을 편집하는 방법을 보여줍니다.**

다음 명령을 실행합니다.

```
$ aws proton update-service-sync-config \
    --service-name "service name" \
    --repository-provider "GITHUB" \
    --repository "example/proton-sync-service" \
    --ops-file-branch "main" \
    --ops-file "./configuration/custom-proton-ops.yaml"
```

응답은 다음과 같습니다.

```
{
    "serviceSyncConfig": {
        "branch": "main",
        "filePath": "./configuration/custom-proton-ops.yaml",
        "repositoryName": "example/proton-sync-service",
        "repositoryProvider": "GITHUB",
        "serviceName": "service name"
    }
}
```

------

# 서비스 동기화 구성 삭제
<a name="delete-service-sync"></a>

콘솔 또는를 사용하여 서비스 동기화 구성을 삭제할 수 있습니다 AWS CLI.

------
#### [ AWS Management Console ]

**콘솔을 사용하여 서비스 동기화 구성 삭제**

1. 서비스 세부 정보 페이지에서 **서비스 동기화** 탭을 선택합니다.

1. **서비스 동기화 세부 정보** 단원에서 **연결 해제**를 선택하여 리포지토리 연결을 끊습니다. 리포지토리 연결이 끊긴 후에는 더 이상 해당 리포지토리에서 서비스를 동기화하지 않습니다.

------
#### [ AWS CLI ]

**다음 예제 명령 및 응답은를 사용하여 서비스 동기화 구성을 삭제 AWS CLI 하는 방법을 보여줍니다.**

다음 명령을 실행합니다.

```
$ aws proton delete-service-sync-config \
    --service-name "service name"
```

응답은 다음과 같습니다.

```
{
    "serviceSyncConfig": {
        "branch": "main",
        "filePath": "./configuration/custom-proton-ops.yaml",
        "repositoryName": "example/proton-sync-service",
        "repositoryProvider": "GITHUB",
        "serviceName": "service name"
    }
}
```

**참고**  
서비스 동기화는 서비스 인스턴스를 삭제하지 않습니다. 구성만 삭제됩니다.

------