기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
서비스 동기화 구성
서비스 동기화를 사용하면 Git을 사용하여 AWS Proton 서비스를 구성하고 배포할 수 있습니다. 서비스 동기화를 사용하여 Git 리포지토리에 정의된 구성으로 AWS Proton 서비스의 초기 배포 및 업데이트를 관리할 수 있습니다. Git을 통해 버전 추적 및 풀 요청과 같은 기능을 사용하여 서비스를 구성, 관리 및 배포할 수 있습니다. Service Sync는 AWS Proton Git과 결합하여 AWS Proton 템플릿을 통해 정의되고 관리되는 표준화된 인프라를 프로비저닝할 수 있도록 지원합니다. Git 리포지토리의 서비스 정의를 관리하고 도구 전환을 줄입니다. Git만 사용할 때와 비교하여 AWS Proton에서 템플릿과 배포를 표준화하면 인프라 관리에 소요되는 시간을 줄일 수 있습니다. 또한 AWS Proton는 개발자와 플랫폼 팀 모두에게 더 높은 투명성과 감사 가능성을 제공합니다.
AWS Proton OPS 파일
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"
인스턴스가 동기화되지 않고 동기화를 시도할 때 계속 문제가 발생하는 경우 GetServiceInstanceSyncStatus
API를 호출하면 문제를 해결하는 데 도움이 될 수 있습니다.
참고
서비스 동기화를 사용하는 고객은 여전히 AWS Proton 한도에 따라 제한됩니다.
Blockers
AWS Proton 서비스 동기화를 사용하여 서비스를 동기화하면 서비스 사양을 업데이트하고 Git 리포지토리에서 서비스 인스턴스를 생성 및 업데이트할 수 있습니다. 하지만 AWS Management Console 또는 AWS CLI를 통해 서비스 또는 인스턴스를 수동으로 업데이트해야 하는 경우가 있을 수 있습니다.
AWS Proton를 사용하면 서비스 인스턴스 업데이트나 서비스 인스턴스 삭제와 같이 AWS Management Console 또는 AWS CLI을 통해 수동으로 변경한 내용을 덮어쓰지 않도록 할 수 있습니다. 이를 위해 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 Management Console를 사용하여 AWS Proton로 이동하여 서비스 동기화 탭을 선택하면 서비스 동기화가 비활성화되어 있는지 여부를 확인할 수 있습니다. 서비스 또는 서비스 인스턴스가 차단된 경우 활성화 버튼이 나타납니다. 서비스 동기화를 활성화하려면 활성화를 선택합니다.