

지원 종료 알림: 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)를 참조하세요.

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

# AWS Proton 작동 방식
<a name="ag-works"></a>

 AWS Proton를 사용하면 *환경을* 프로비저닝한 다음 해당 환경에서 실행되는 *서비스를* 프로비저닝할 수 있습니다. 환경 및 서비스는 각각 AWS Proton 버전이 지정된 *템플릿* 라이브러리에서 선택한 환경 및 서비스 템플릿을 기반으로 합니다.

![\[AWS Proton 인프라 리소스 세트에 대한 템플릿 번들을 생성하는 프로세스를 설명하는 다이어그램입니다.\]](http://docs.aws.amazon.com/ko_kr/proton/latest/userguide/images/works.png)


 ![\[Red circle with the number 1 inside, typically used as a notification icon.\]](http://docs.aws.amazon.com/ko_kr/proton/latest/userguide/images/label-one.png) 관리자로서 환경 템플릿을 선택할 때 필요한 *입력 파라미터* 값을 AWS Proton제공합니다.

 ![\[Number 2 icon in a pink circle.\]](http://docs.aws.amazon.com/ko_kr/proton/latest/userguide/images/label-two.png) AWS Proton 는 환경 템플릿과 파라미터 값을 사용하여 환경을 프로비저닝합니다.

 ![\[Pink square icon with a white exclamation mark inside a circle.\]](http://docs.aws.amazon.com/ko_kr/proton/latest/userguide/images/label-three.png) 개발자 또는 관리자는를 사용하여 서비스 템플릿을 선택할 때 필요한 입력 파라미터 값을 AWS Proton제공합니다. 또한 애플리케이션 또는 서비스를 배포할 환경을 선택합니다.

 ![\[Number 4 in a red circle icon, commonly used to indicate a notification count.\]](http://docs.aws.amazon.com/ko_kr/proton/latest/userguide/images/label-four.png) AWS Proton 는 서비스 템플릿과 서비스 및 선택한 환경 파라미터 값을 모두 사용하여 서비스를 프로비저닝합니다.

입력 파라미터 값을 제공하여 템플릿을 재사용 및 여러 사용 사례, 응용 프로그램 또는 서비스에 맞게 사용자 지정할 수 있습니다.

이 작업을 수행하려면 환경 또는 서비스 템플릿 번들을 만들어 등록된 환경 또는 서비스 템플릿에 각각 업로드해야 합니다.

[템플릿 번들에는](ag-template-authoring.md#ag-template-bundles) 환경 또는 서비스를 프로비저닝하는 데 AWS Proton 필요한 모든 것이 포함되어 있습니다.

환경 또는 서비스 템플릿을 만들 때는 AWS Proton 이 환경 또는 서비스를 프로비저닝하는 데 사용하는 파라미터화된 코드형 인프라(IaC) 파일이 포함된 템플릿 번들을 업로드합니다.

환경 또는 서비스를 만들거나 업데이트할 환경 또는 서비스 템플릿을 선택할 때는 템플릿 번들 IAC 파일 파라미터에 값을 제공합니다.

**Topics**
+ [AWS Proton 객체](ag-works-objects.md)
+ [가 인프라를 AWS Proton 프로비저닝하는 방법](ag-works-prov-methods.md)
+ [AWS Proton 용어](terminology.md)

# AWS Proton 객체
<a name="ag-works-objects"></a>

다음 다이어그램은 기본 AWS Proton 객체와 다른 AWS 객체 및 타사 객체와의 관계를 보여줍니다. 화살표는 데이터 흐름의 방향(종속성의 역방향)을 나타냅니다.

이러한 AWS Proton 객체에 대한 간략한 설명과 참조 링크가 포함된 다이어그램을 따릅니다.

![\[에서 AWS관리형 프로비저닝을 보여주는 다이어그램 AWS Proton\]](http://docs.aws.amazon.com/ko_kr/proton/latest/userguide/images/object-diagram.png)

+ **환경 템플릿** - AWS Proton 환경을 만드는 데 사용할 수 있는 환경 템플릿 버전 모음입니다.

  자세한 정보는 [템플릿 작성 및 번들](ag-template-authoring.md) 및 [AWS Proton 템플릿](ag-templates.md) 단원을 참조하세요.
+ **환경 템플릿 버전** — 환경 템플릿의 특정 버전입니다. S3 버킷 또는 Git 리포지토리에서 *템플릿 번들*을 입력으로 가져옵니다. 번들은 AWS Proton 환경에 대한 코드형 인프라(IaC) 및 관련 입력 파라미터를 지정합니다.

  자세한 내용은 [버전이 지정된 템플릿](ag-template-versions.md), [템플릿 등록 및 게시](template-create.md), [템플릿 동기화 구성](ag-template-sync-configs.md) 섹션을 참조하세요.
+ **환경** - AWS Proton 서비스가 배포되는 공유 AWS 인프라 리소스 및 액세스 정책 세트입니다. AWS 리소스는 특정 파라미터 값과 함께 호출된 환경 템플릿 버전을 사용하여 프로비저닝됩니다. 액세스 정책은 서비스 역할로 제공됩니다.

  자세한 내용은 [AWS Proton 환경](ag-environments.md) 단원을 참조하세요.
+ **서비스 템플릿** - AWS Proton 서비스를 생성하는 데 사용할 수 있는 서비스 템플릿 버전 모음입니다.

  자세한 정보는 [템플릿 작성 및 번들](ag-template-authoring.md) 및 [AWS Proton 템플릿](ag-templates.md) 단원을 참조하세요.
+ **서비스 템플릿 버전** — 서비스 템플릿의 특정 버전입니다. S3 버킷 또는 Git 리포지토리에서 *템플릿 번들*을 입력으로 가져옵니다. 번들은 AWS Proton 서비스에 대한 코드형 인프라(IaC) 및 관련 입력 파라미터를 지정합니다.

  또한 서비스 템플릿 버전은 버전을 기반으로 서비스 인스턴스에 대한 다음과 같은 제약 조건을 지정합니다.
  + **호환되는 환경 템플릿** - 인스턴스는 이러한 호환 가능한 환경 템플릿을 기반으로 하는 환경에서만 실행할 수 있습니다.
  + **지원되는 구성 요소 소스** - 개발자가 인스턴스와 연결할 수 있는 구성 요소 유형입니다.

  자세한 내용은 [버전이 지정된 템플릿](ag-template-versions.md), [템플릿 등록 및 게시](template-create.md), [템플릿 동기화 구성](ag-template-sync-configs.md) 단원을 참조하세요.
+ **서비스** - 서비스 템플릿에 지정된 리소스를 사용하여 애플리케이션을 실행하는 서비스 인스턴스 컬렉션과 해당 인스턴스에 애플리케이션 코드를 배포하는 CI/CD 파이프라인(선택 사항).

  다이어그램에서 **서비스 템플릿**의 점선은 서비스가 템플릿을 서비스 인스턴스와 파이프라인으로 전달한다는 의미입니다.

  자세한 내용은 [AWS Proton 서비스](ag-services.md) 단원을 참조하십시오.
+ **서비스 인스턴스** - 특정 AWS Proton 환경에서 애플리케이션을 실행하는 AWS 인프라 리소스 세트입니다. AWS 리소스는 특정 파라미터 값과 함께 호출된 서비스 템플릿 버전을 사용하여 프로비저닝됩니다.

  자세한 내용은 [AWS Proton 서비스](ag-services.md) 및 [서비스 인스턴스를 업데이트](ag-svc-instance-update.md) 섹션을 참조하세요.
+ **파이프라인** — 애플리케이션을 서비스 인스턴스에 배포하는 선택적 CI/CD 파이프라인으로, 이 파이프라인을 프로비저닝하기 위한 액세스 정책을 적용합니다. 액세스 정책은 서비스 역할로 제공됩니다. 서비스에 항상 연결된 AWS Proton 파이프라인이 있는 것은 아닙니다. 외부에서 앱 코드 배포를 관리하도록 선택할 수 있습니다 AWS Proton.

  다이어그램에서 **서비스의** 점선과 **파이프라인** 주위의 점선은 CI/CD 배포를 직접 관리하도록 선택한 경우 AWS Proton 파이프라인이 생성되지 않고 자체 파이프라인이 AWS 계정 내에 있지 않을 수 있음을 의미합니다.

  자세한 내용은 [AWS Proton 서비스](ag-services.md) 및 [서비스 파이프라인 업데이트](ag-svc-pipeline-update.md) 섹션을 참조하세요.
+ **구성 요소** — 개발자가 정의한 서비스 인스턴스 확장 프로그램입니다. 환경 및 서비스 인스턴스에서 제공하는 리소스 외에도 특정 애플리케이션에 필요할 수 있는 추가 AWS 인프라 리소스를 지정합니다. 플랫폼 팀은 구성 요소 역할을 환경에 연결하여 구성 요소가 제공할 수 있는 인프라를 제어합니다.

  자세한 내용은 [AWS Proton 구성 요소](ag-components.md) 단원을 참조하십시오.

# 가 인프라를 AWS Proton 프로비저닝하는 방법
<a name="ag-works-prov-methods"></a>

AWS Proton 는 다음 방법 중 하나로 인프라를 프로비저닝할 수 있습니다.
+ **AWS관리형 프로비저닝 -** 사용자를 대신하여 프로비저닝 엔진을 AWS Proton 호출합니다. 이 방법은 AWS CloudFormation 템플릿 번들만 지원합니다. 자세한 내용은 [CloudFormation IaC 파일](ag-infrastructure-tmp-files-cloudformation.md) 단원을 참조하십시오.
+ **CodeBuild 프로비저닝** - 사용자가 제공하는 셸 명령을 실행하는 AWS CodeBuild 데 AWS Proton 사용합니다. 명령은가 AWS Proton 제공하는 입력을 읽을 수 있으며 인프라 프로비저닝 또는 프로비저닝 해제와 출력 값 생성을 담당합니다. 이 방법을 위한 템플릿 번들에는 매니페스트 파일의 명령과 이러한 명령에 필요할 수 있는 프로그램, 스크립트 또는 기타 파일이 포함되어 있습니다.

  CodeBuild 프로비저닝을 사용하는 예로를 사용하여 AWS 리소스를 AWS Cloud Development Kit (AWS CDK) 프로비저닝하는 코드와 CDK를 설치하고 CDK 코드를 실행하는 매니페스트를 포함할 수 있습니다.

  자세한 내용은 [CodeBuild 프로비저닝 템플릿 번들](ag-infrastructure-tmp-files-codebuild.md) 단원을 참조하십시오.
**참고**  
CodeBuild 프로비저닝을 환경 및 서비스와 함께 사용할 수 있습니다. 현재로서는 이 방법으로 구성 요소를 프로비저닝할 수 없습니다.
+ **자체 관리형 프로비저닝 -** 사용자가 제공하는 리포지토리에 풀 요청(PR)을 AWS Proton 발행합니다.이 리포지토리에서는 자체 인프라 배포 시스템이 프로비저닝 프로세스를 실행합니다. 이 방법은 Terraform 템플릿 번들만 지원합니다. 자세한 내용은 [Terraform IaC 파일](ag-infrastructure-tmp-files-terraform.md) 단원을 참조하십시오.

AWS Proton 는 각 환경 및 서비스에 대한 프로비저닝 방법을 별도로 결정하고 설정합니다. 환경 또는 서비스를 만들거나 업데이트할 때 AWS Proton 는 제공하는 템플릿 번들을 검사하고 템플릿 번들이 나타내는 프로비전 방법을 결정합니다. 환경 수준에서는 환경 및 잠재적 서비스가 프로비저닝 방법에 필요할 수 있는AWS Identity and Access Management (IAM) 역할, 환경 계정 연결 또는 인프라 리포지토리와 같은 파라미터를 제공합니다.

 AWS Proton 를 사용하여 서비스를 프로비저닝하는 개발자는 프로비저닝 방법에 관계없이 동일한 경험을 하게 됩니다. 개발자는 프로비저닝 방법을 알 필요가 없으며 서비스 프로비전 프로세스에서 아무것도 변경할 필요가 없습니다. 서비스 템플릿은 프로비저닝 방법을 설정하며, 개발자가 서비스를 배포하는 각 환경은 서비스 인스턴스 프로비저닝에 필요한 파라미터를 제공합니다.

다음 다이어그램은 다양한 프로비전 방법의 몇 가지 주요 특성을 요약한 것입니다. 표 다음 단원에서는 각 방법에 대한 세부 정보를 제공합니다.


| 프로비저닝 방법 | 템플릿 | 프로비저닝 제공자 | 추적 대상 상태 | 
| --- | --- | --- | --- | 
| AWS관리형 | 매니페스트, 스키마, IAC 파일(CloudFormation) | AWS Proton (CloudFormation을 통해) | AWS Proton (CloudFormation을 통해) | 
| CodeBuild | 매니페스트(명령 포함), 스키마, 명령 종속성(예: AWS CDK 코드) | AWS Proton (CodeBuild를 통해) | AWS Proton (명령은 CodeBuild를 통해 상태를 반환합니다.) | 
| 자체 관리형 | 매니페스트, 스키마, IAC 파일(Terraform) | 사용자 코드(Git 작업을 통해) | 코드(API 호출을 AWS 통해에 전달됨) | 

## AWS관리형 프로비저닝 작동 방식
<a name="ag-works-prov-methods-direct"></a>

환경 또는 서비스가 AWS관리형 프로비저닝을 사용하는 경우 인프라는 다음과 같이 프로비저닝됩니다.

1.  AWS Proton 고객(관리자 또는 개발자)은 AWS Proton 리소스(환경 또는 서비스)를 생성합니다. 고객은 리소스의 템플릿을 선택하고 필요한 파라미터를 제공합니다. 자세한 내용은 다음 [AWS관리형 프로비저닝에 대한 고려 사항](#ag-works-prov-methods-direct-consider) 단원을 참조하세요.

1. AWS Proton 는 리소스를 프로비저닝하기 위한 전체 CloudFormation 템플릿을 렌더링합니다.

1. AWS Proton 는를 호출 CloudFormation 하여 렌더링된 템플릿을 사용하여 프로비저닝을 시작합니다.

1. AWS Proton 는 CloudFormation 배포를 지속적으로 모니터링합니다.

1. 프로비저닝이 완료되면 실패 시 오류를 다시 AWS Proton 보고하고 성공 시 Amazon VPC ID와 같은 프로비저닝 출력을 캡처합니다.

다음 다이어그램은 AWS Proton 가 이러한 단계 대부분을 직접 처리함을 보여줍니다.

![\[에서 AWS관리형 프로비저닝을 보여주는 다이어그램 AWS Proton\]](http://docs.aws.amazon.com/ko_kr/proton/latest/userguide/images/provisioning-direct.png)


### AWS관리형 프로비저닝에 대한 고려 사항
<a name="ag-works-prov-methods-direct-consider"></a>
+ *인프라 프로비저닝 역할* AWS- 환경 또는 환경에서 실행되는 서비스 인스턴스가 관리형 프로비저닝을 사용할 수 있는 경우 관리자는 IAM 역할을 구성해야 합니다(직접 또는 AWS Proton 환경 계정 연결의 일부로).는이 역할을 AWS Proton 사용하여 이러한 AWS관리형 프로비저닝 리소스의 인프라를 프로비저닝합니다. 역할에는 이러한 리소스의 템플릿에 포함된 모든 리소스를 생성하는 CloudFormation 데 사용할 수 있는 권한이 있어야 합니다.

  자세한 내용은 [IAM 역할](ag-environment-roles.md) 및 [AWS Proton IAM 서비스 역할 정책 예제](security_iam_service-role-policy-examples.md) 섹션을 참조하세요.
+ *서비스 프로비저닝* AWS- 개발자가 관리형 프로비저닝을 사용하는 서비스 인스턴스를 환경에 배포하면는 해당 환경에 제공된 역할을 AWS Proton 사용하여 서비스 인스턴스에 대한 인프라를 프로비저닝합니다. 개발자는 이 역할을 볼 수 없으며 변경할 수도 없습니다.
+ *파이프라인이 있는 서비스* AWS- 관리형 프로비저닝을 사용하는 서비스 템플릿에는 CloudFormation YAML 스키마에 작성된 파이프라인 정의가 포함될 수 있습니다. AWS Proton 또한를 호출하여 파이프라인을 생성합니다 CloudFormation. 가 파이프라인을 생성하는 데 AWS Proton 사용하는 역할은 각 개별 환경의 역할과 별개입니다. 이 역할은 AWS 계정 수준에서 한 번만 AWS Proton 별도로에 제공되며 모든 AWS관리형 파이프라인을 프로비저닝하고 관리하는 데 사용됩니다. 이 역할에는 파이프라인에 필요한 파이프라인 및 기타 리소스를 생성할 수 있는 권한이 있어야 합니다.

  다음 절차는 AWS Proton에 파이프라인 역할을 제공하는 방법을 보여줍니다.

------
#### [ AWS Proton console ]

**파이프라인 역할을 제공하려면**

  1. [AWS Proton 콘솔의](https://console.aws.amazon.com//proton/) 탐색 창에서 **설정 > 계정 설정**을 선택한 다음 **구성**을 선택합니다.

  1. **파이프라인 AWS관리형 역할** 섹션을 사용하여 AWS관리형 프로비저닝을 위한 새 파이프라인 역할 또는 기존 파이프라인 역할을 구성합니다.

------
#### [ AWS Proton API ]

**파이프라인 역할을 제공하려면**

  1. [UpdateAccountSettings](https://docs.aws.amazon.com/proton/latest/APIReference/API_UpdateAccountSettings.html) API 작업을 사용합니다.

  1. `pipelineServiceRoleArn` 파라미터에서 파이프라인 서비스 역할의 리소스 이름(ARN)을 제공하세요.

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

  **파이프라인 역할을 제공하려면**

  다음 명령을 실행합니다.

  ```
  $ aws proton update-account-settings \
      --pipeline-service-role-arn \
          "arn:aws:iam::123456789012:role/my-pipeline-role"
  ```

------

## CodeBuild 프로비저닝 작동 방식
<a name="ag-works-prov-methods-codebuild"></a>

환경 또는 서비스가 관리형 프로비저닝을 사용하는 경우 인프라는 다음과 같이 프로비저닝됩니다.

1.  AWS Proton 고객(관리자 또는 개발자)은 AWS Proton 리소스(환경 또는 서비스)를 생성합니다. 고객은 리소스의 템플릿을 선택하고 필요한 파라미터를 제공합니다. 자세한 내용은 다음 [CodeBuild 프로비저닝 고려 사항](#ag-works-prov-methods-codebuild-consider) 단원을 참조하세요.

1. AWS Proton 는 리소스를 프로비저닝하기 위한 입력 파라미터 값으로 입력 파일을 렌더링합니다.

1. AWS Proton 는 CodeBuild를 호출하여 작업을 시작합니다. CodeBuild 작업은 템플릿에 지정된 고객 쉘 명령을 실행합니다. 이러한 명령은 원하는 인프라를 프로비저닝하는 동시에 선택적으로 입력 값을 읽습니다.

1. 프로비저닝이 완료되면 최종 고객 명령은 프로비저닝 상태를 CodeBuild로 반환하고 [NotifyResourceDeploymentStatusChange](https://docs.aws.amazon.com/proton/latest/APIReference/API_NotifyResourceDeploymentStatusChange.html) AWS Proton API 작업을 호출하여 Amazon VPC ID와 같은 출력을 제공합니다.
**중요**  
명령이 CodeBuild에 프로비저닝 상태를 올바르게 반환하고 출력을 제공하는지 확인하세요. 그렇지 않으면가 프로비저닝 상태를 AWS Proton 제대로 추적할 수 없으며 서비스 인스턴스에 올바른 출력을 제공할 수 없습니다.

다음 다이어그램은가 AWS Proton 수행하는 단계와 명령이 CodeBuild 작업 내에서 수행하는 단계를 보여줍니다.

![\[의 CodeBuild 기반 프로비저닝을 보여주는 다이어그램 AWS Proton\]](http://docs.aws.amazon.com/ko_kr/proton/latest/userguide/images/provisioning-codebuild.png)


### CodeBuild 프로비저닝 고려 사항
<a name="ag-works-prov-methods-codebuild-consider"></a>
+ *인프라 프로비저닝 역할* - 환경 또는 해당 환경에서 실행되는 서비스 인스턴스가 CodeBuild 기반 프로비저닝을 사용할 수 있는 경우 관리자는 IAM 역할을 구성해야 합니다(직접 또는 AWS Proton 환경 계정 연결의 일부로).는이 역할을 AWS Proton 사용하여 이러한 CodeBuild 프로비저닝 리소스의 인프라를 프로비저닝합니다. 역할에는 이러한 리소스의 템플릿에 포함된 모든 리소스를 만드는 데 사용할 수 있는 권한이 있어야 합니다.

  자세한 내용은 [IAM 역할](ag-environment-roles.md) 및 [AWS Proton IAM 서비스 역할 정책 예제](security_iam_service-role-policy-examples.md) 섹션을 참조하세요.
+ *서비스 프로비저닝* - 개발자가 CodeBuild 프로비저닝을 사용하는 서비스 인스턴스를 환경에 배포하면는 해당 환경에 제공된 역할을 AWS Proton 사용하여 서비스 인스턴스에 대한 인프라를 프로비저닝합니다. 개발자는 이 역할을 볼 수 없으며 변경할 수도 없습니다.
+ *파이프라인이 있는 서비스* - CodeBuild 프로비저닝을 사용하는 서비스 템플릿에는 파이프라인을 프로비저닝하는 명령이 포함될 수 있습니다. AWS Proton 또한는 CodeBuild를 호출하여 파이프라인을 생성합니다. 가 파이프라인을 생성하는 데 AWS Proton 사용하는 역할은 각 개별 환경의 역할과 별개입니다. 이 역할은 AWS 계정 수준에서 한 번만 AWS Proton 별도로에 제공되며 모든 CodeBuild 기반 파이프라인을 프로비저닝하고 관리하는 데 사용됩니다. 이 역할에는 파이프라인에 필요한 파이프라인 및 기타 리소스를 생성할 수 있는 권한이 있어야 합니다.

  다음 절차는 AWS Proton에 파이프라인 역할을 제공하는 방법을 보여줍니다.

------
#### [ AWS Proton console ]

**파이프라인 역할을 제공하려면**

  1. [AWS Proton 콘솔의](https://console.aws.amazon.com//proton/) 탐색 창에서 **설정 > 계정 설정**을 선택한 다음 **구성**을 선택합니다.

  1. **Codebuild 파이프라인 프로비저닝 역할** 섹션을 사용하여 CodeBuild 프로비저닝을 위한 새 파이프라인 역할 또는 기존 파이프라인 역할을 구성할 수 있습니다.

------
#### [ AWS Proton API ]

**파이프라인 역할을 제공하려면**

  1. [UpdateAccountSettings](https://docs.aws.amazon.com/proton/latest/APIReference/API_UpdateAccountSettings.html) API 작업을 사용합니다.

  1. `pipelineCodebuildRoleArn` 파라미터에서 파이프라인 서비스 역할의 리소스 이름(ARN)을 제공하세요.

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

  **파이프라인 역할을 제공하려면**

  다음 명령을 실행합니다.

  ```
  $ aws proton update-account-settings \
      --pipeline-codebuild-role-arn \
          "arn:aws:iam::123456789012:role/my-pipeline-role"
  ```

------

## 자체 관리형 프로비저닝의 작동 방식
<a name="ag-works-prov-methods-self"></a>

환경 또는 서비스가 자체 관리형 프로비저닝을 사용하는 경우 인프라는 다음과 같이 프로비저닝됩니다.

1.  AWS Proton 고객(관리자 또는 개발자)은 AWS Proton 리소스(환경 또는 서비스)를 생성합니다. 고객은 리소스의 템플릿을 선택하고 필요한 파라미터를 제공합니다. 환경의 경우 고객은 연결된 인프라 리포지토리도 제공합니다. 자세한 내용은 다음 [자체 관리형 프로비저닝에 대한 고려 사항](#ag-works-prov-methods-self-consider) 단원을 참조하세요.

1. AWS Proton 는 전체 Terraform 템플릿을 렌더링합니다. 잠재적으로 여러 폴더에 있는 하나 이상의 Terraform 파일과 `.tfvars` 변수 파일로 구성됩니다.는 리소스 생성 호출에 제공된 파라미터 값을이 변수 파일에 AWS Proton 씁니다.

1. AWS Proton 는 렌더링된 Terraform 템플릿을 사용하여 인프라 리포지토리에 PR을 제출합니다.

1. 고객 (관리자 또는 개발자) 이 PR을 병합하면 고객의 자동화가 프로비저닝 엔진을 트리거하여 병합된 템플릿을 사용하여 인프라 프로비저닝을 시작합니다.
**참고**  
고객(관리자 또는 개발자)이 PR을 닫으면는 PR을 닫힌 것으로 AWS Proton 인식하고 배포를 취소됨으로 표시합니다.

1. 프로비저닝이 완료되면 고객의 자동화가 [NotifyResourceDeploymentStatusChange](https://docs.aws.amazon.com/proton/latest/APIReference/API_NotifyResourceDeploymentStatusChange.html) AWS Proton API 작업을 호출하여 완료를 표시하고, 상태(성공 또는 실패)를 제공하고, 존재하는 경우 Amazon VPC ID와 같은 출력을 제공합니다.
**중요**  
자동화 코드가 프로비저닝 상태 및 출력과 AWS Proton 함께를 다시 호출해야 합니다. 그렇지 않은 경우는 프로비저닝을 보류 중으로 간주하고 **진행 중** 상태를 계속 표시할 AWS Proton 수 있습니다.

다음 다이어그램은가 AWS Proton 수행하는 단계와 자체 프로비저닝 시스템이 수행하는 단계를 보여줍니다.

![\[의 자체 관리형 프로비저닝을 보여주는 다이어그램 AWS Proton\]](http://docs.aws.amazon.com/ko_kr/proton/latest/userguide/images/provisioning-self.png)


### 자체 관리형 프로비저닝에 대한 고려 사항
<a name="ag-works-prov-methods-self-consider"></a>
+ *인프라 리포*지토리 - 관리자가 자체 관리형 프로비저닝을 위해 환경을 구성할 때 연결된 인프라 리포지토리를 제공해야 합니다.는 환경의 인프라와 환경에 배포된 모든 서비스 인스턴스를 프로비저닝하기 위해이 리포지토리에 PRs을 AWS Proton 제출합니다. 리포지토리의 고객 소유 자동화 작업은 환경 및 서비스 템플릿에 포함된 모든 리소스를 생성할 수 있는 권한이 있는 IAM 역할과 대상 AWS 계정을 반영하는 자격 증명을 수임해야 합니다. 역할을 수임하는 GitHub 작업 예제는 * GitHub 작업에 대한 "자격 AWS 증명 구성" 작업* 설명서의 [역할 수임을](https://github.com/aws-actions/configure-aws-credentials#assuming-a-role) 참조하세요.
+ *권한* - 프로비저닝 코드는 필요에 따라 계정으로 인증하고(예: AWS 계정에 인증) 리소스 프로비저닝 권한 부여를 제공해야 합니다(예: 역할 제공).
+ *서비스 프로비저닝* - 개발자가 자체 관리형 프로비저닝을 사용하는 서비스 인스턴스를 환경에 배포하면는 환경과 연결된 리포지토리에 PR을 AWS Proton 제출하여 서비스 인스턴스에 대한 인프라를 프로비저닝합니다. 개발자는 리포지토리를 볼 수 없으며 변경할 수도 없습니다.
**참고**  
서비스를 만드는 개발자는 프로비저닝 방법에 상관없이 동일한 프로세스를 사용하며, 이러한 프로세스를 통해 차이점을 파악할 수 있습니다. 하지만 자체 관리형 프로비저닝을 사용하는 개발자의 경우 프로비저닝을 시작하기 전에 누군가(자신이 아닐 수도 있음)가 인프라 저장소의 PR을 병합할 때까지 기다려야 하기 때문에 개발자의 응답 속도가 느려질 수 있습니다.
+ *파이프라인이 있는 서비스* - 자체 관리형 프로비저닝이 있는 환경에 대한 서비스 템플릿에는 Terraform HCL로 작성된 파이프라인 정의(예: AWS CodePipeline 파이프라인)가 포함될 수 있습니다. 가 이러한 파이프라인을 프로비저닝 AWS Proton 할 수 있도록 관리자는 연결된 파이프라인 리포지토리를 제공합니다 AWS Proton. 파이프라인을 프로비저닝할 때 리포지토리의 고객 소유 자동화 작업은 파이프라인을 프로비저닝할 권한이 있는 IAM 역할과 대상 AWS 계정을 반영하는 자격 증명을 수임해야 합니다. 파이프라인 리포지토리 및 역할은 각 개별 환경에 사용되는 것과 별개입니다. 연결된 리포지토리는 AWS 계정 수준에서 한 번만 AWS Proton 별도로에 제공되며 모든 파이프라인을 프로비저닝하고 관리하는 데 사용됩니다. 해당 역할에는 파이프라인에 필요한 파이프라인 및 기타 리소스를 생성할 수 있는 권한이 있어야 합니다.

  다음 절차는 AWS Proton에 파이프라인 리포지토리 및 역할을 제공하는 방법을 보여줍니다.

------
#### [ AWS Proton console ]

**파이프라인 역할을 제공하려면**

  1. [AWS Proton 콘솔의](https://console.aws.amazon.com//proton/) 탐색 창에서 **설정 > 계정 설정**을 선택한 다음 **구성**을 선택합니다.

  1. **CI/CD 파이프라인 리포지토리** 섹션을 사용하여 새 리포지토리 링크 또는 기존 리포지토리 링크를 구성할 수 있습니다.

------
#### [ AWS Proton API ]

**파이프라인 역할을 제공하려면**

  1. [UpdateAccountSettings](https://docs.aws.amazon.com/proton/latest/APIReference/API_UpdateAccountSettings.html) API 작업을 사용합니다.

  1. `pipelineProvisioningRepository` 파라미터에 파이프라인 리포지토리의 공급자, 이름, 브랜치를 입력합니다.

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

  **파이프라인 역할을 제공하려면**

  다음 명령을 실행합니다.

  ```
  $ aws proton update-account-settings \
      --pipeline-provisioning-repository \
          "provider=GITHUB,name=my-pipeline-repo-name,branch=my-branch"
  ```

------
+ *자체 관리형 프로비저닝 리소스 삭제* — Terraform 모듈에는 리소스 정의 외에도 Terraform 작업에 필요한 구성 요소가 포함될 수 있습니다. 따라서 AWS Proton 는 환경 또는 서비스 인스턴스에 대한 모든 Terraform 파일을 삭제할 수 없습니다. 대신는 삭제할 파일을 AWS Proton 표시하고 PR 메타데이터에서 플래그를 업데이트했습니다. 자동화는 해당 플래그를 읽고 이를 사용하여 terraform destroy 명령을 트리거할 수 있습니다.

# AWS Proton 용어
<a name="terminology"></a>

**환경 템플릿**  
여러 애플리케이션 또는 리소스에서 사용되는 VPC 또는 클러스터와 같은 공유 인프라를 정의합니다.

**환경 템플릿 번들**  
 AWS Proton에서 환경 템플릿을 만들고 등록하기 위해 업로드하는 파일 모음입니다. 환경 템플릿 번들에는 다음이 포함됩니다.  

1. 인프라를 코드 입력 파라미터로 정의하는 스키마 파일입니다.

1. 여러 애플리케이션이나 리소스에서 사용하는 VPC 또는 클러스터와 같은 공유 인프라를 정의하는 코드형 인프라(IaC) 파일입니다.

1. IaC 파일을 나열하는 매니페스트 파일.

**환경**  
여러 애플리케이션 또는 리소스에서 사용되는 VPC 또는 클러스터와 같은 공유 인프라를 프로비저닝합니다.

**서비스 템플릿**  
환경에 애플리케이션 또는 마이크로서비스를 배포하고 유지 관리하는 데 필요한 인프라 유형을 정의합니다.

**서비스 템플릿 번들**  
 AWS Proton에서 서비스 템플릿을 만들고 등록하기 위해 업로드하는 파일 모음입니다. 서비스 템플릿 번들에는 다음이 포함됩니다.  

1. 코드형 인프라(IaC) 입력 파라미터를 정의하는 스키마 파일입니다.

1. 환경에서 애플리케이션 또는 마이크로서비스를 배포하고 유지 관리하는 데 필요한 인프라를 정의하는 IaC 파일입니다.

1. IaC 파일을 나열하는 매니페스트 파일.

1. 선택 사항

   1. 서비스 파이프라인 인프라를 정의하는 IaC 파일.

   1. IaC 파일을 나열하는 매니페스트 파일.

**서비스:**  
환경에 애플리케이션 또는 마이크로서비스를 배포하고 유지 관리하는 데 필요한 프로비저닝하는 인프라.

**서비스 인스턴스**  
환경에 애플리케이션 또는 마이크로서비스를 지원하는 프로비저닝하는 인프라.

**서비스 파이프라인**  
파이프라인을 지원하는 프로비저닝된 인프라.

**템플릿 버전**  
템플릿의 메이저 또는 마이너 버전. 자세한 내용은 [버전이 지정된 템플릿](ag-template-versions.md) 단원을 참조하세요.

**입력 파라미터**  
스키마 파일에 정의되고 IaC(코드형 인프라) 파일에 사용되므로 IaC 파일을 다양한 사용 사례에 반복적으로 사용할 수 있습니다.

**스키마 파일**  
코드형 인프라 파일 입력 파라미터를 정의합니다.

**스펙 파일**  
스키마 파일에 정의된 대로 코드형 인프라 파일 입력 파라미터 값을 지정합니다.

**매니페스트 파일**  
코드형 인ㅍ라 파일을 나열합니다.