가 인프라를 AWS Proton 프로비저닝하는 방법 - AWS Proton

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

가 인프라를 AWS Proton 프로비저닝하는 방법

AWS Proton 는 여러 가지 방법 중 하나로 인프라를 프로비저닝할 수 있습니다.

  • AWS관리형 프로비저닝 - 사용자를 대신하여 프로비저닝 엔진을 AWS Proton 호출합니다. 이 방법은 AWS CloudFormation 템플릿 번들만 지원합니다. 자세한 내용은 AWS CloudFormation IaC 파일 단원을 참조하십시오.

  • CodeBuild 프로비저닝 - 사용자가 제공하는 셸 명령을 실행하는 AWS CodeBuild 데 AWS Proton 사용합니다. 명령은가 AWS Proton 제공하는 입력을 읽을 수 있으며 인프라 프로비저닝 또는 프로비저닝 해제와 출력 값 생성을 담당합니다. 이 방법을 위한 템플릿 번들에는 매니페스트 파일의 명령과 이러한 명령에 필요할 수 있는 프로그램, 스크립트 또는 기타 파일이 포함되어 있습니다.

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

    자세한 내용은 CodeBuild 프로비저닝 템플릿 번들 단원을 참조하십시오.

    참고

    CodeBuild 프로비저닝을 환경 및 서비스와 함께 사용할 수 있습니다. 현재로서는 이 방법으로 구성 요소를 프로비저닝할 수 없습니다.

  • 자체 관리형 프로비저닝 - 사용자가 제공하는 리포지토리에 풀 요청(PR)을 AWS Proton 발행합니다. 여기에서 자체 인프라 배포 시스템이 프로비저닝 프로세스를 실행합니다. 이 방법은 Terraform 템플릿 번들만 지원합니다. 자세한 내용은 Terraform IaC 파일 단원을 참조하십시오.

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관리형 프로비저닝 작동 방식

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

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

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

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

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

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

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

에서 AWS관리형 프로비저닝을 보여주는 다이어그램 AWS Proton

AWS관리형 프로비저닝에 대한 고려 사항

  • 인프라 프로비저닝 역할 AWS- 환경 또는 환경에서 실행되는 서비스 인스턴스가 관리형 프로비저닝을 사용할 수 있는 경우 관리자는 IAM 역할을 구성해야 합니다(직접 또는 AWS Proton 환경 계정 연결의 일부로).는이 역할을 AWS Proton 사용하여 이러한 AWS관리형 프로비저닝 리소스의 인프라를 프로비저닝합니다. 역할에는 이러한 리소스의 템플릿에 포함된 모든 리소스를 생성하는 AWS CloudFormation 데 사용할 수 있는 권한이 있어야 합니다.

    자세한 내용은 IAM 역할AWS Proton IAM 서비스 역할 정책 예제 섹션을 참조하세요.

  • 서비스 프로비저닝 AWS- 개발자가 관리형 프로비저닝을 사용하는 서비스 인스턴스를 환경에 배포하면는 해당 환경에 제공된 역할을 AWS Proton 사용하여 서비스 인스턴스에 대한 인프라를 프로비저닝합니다. 개발자는 이 역할을 볼 수 없으며 변경할 수도 없습니다.

  • 파이프라인이 있는 서비스 AWS- 관리형 프로비저닝을 사용하는 서비스 템플릿에는 AWS CloudFormation YAML 스키마에 작성된 파이프라인 정의가 포함될 수 있습니다. AWS Proton 또한를 호출하여 파이프라인을 생성합니다 AWS CloudFormation. 가 파이프라인을 생성하는 데 AWS Proton 사용하는 역할은 각 개별 환경의 역할과 별개입니다. 이 역할은 AWS 계정 수준에서 한 번만 AWS Proton 별도로에 제공되며 모든 AWS관리형 파이프라인을 프로비저닝하고 관리하는 데 사용됩니다. 이 역할에는 파이프라인에 필요한 파이프라인 및 기타 리소스를 생성할 수 있는 권한이 있어야 합니다.

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

    AWS Proton console
    파이프라인 역할을 제공하려면
    1. AWS Proton 콘솔의 탐색 창에서 설정 > 계정 설정을 선택한 다음 구성을 선택합니다.

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

    AWS Proton API
    파이프라인 역할을 제공하려면
    1. UpdateAccountSettings API 작업을 사용합니다.

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

    AWS CLI

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

    다음 명령 실행:

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

CodeBuild 프로비저닝 작동 방식

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

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

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

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

  4. 프로비저닝이 완료되면 최종 고객 명령은 프로비저닝 상태를 CodeBuild로 반환하고 NotifyResourceDeploymentStatusChange AWS Proton API 작업을 호출하여 Amazon VPC ID와 같은 출력을 제공합니다.

    중요

    명령이 CodeBuild에 프로비저닝 상태를 올바르게 반환하고 출력을 제공하는지 확인하세요. 그렇지 않으면가 프로비저닝 상태를 AWS Proton 제대로 추적할 수 없으며 서비스 인스턴스에 올바른 출력을 제공할 수 없습니다.

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

의 CodeBuild 기반 프로비저닝을 보여주는 다이어그램 AWS Proton

CodeBuild 프로비저닝 고려 사항

  • 인프라 프로비저닝 역할 - 환경 또는 해당 환경에서 실행되는 서비스 인스턴스가 CodeBuild 기반 프로비저닝을 사용할 수 있는 경우 관리자는 IAM 역할을 구성해야 합니다(직접 또는 AWS Proton 환경 계정 연결의 일부로).는이 역할을 AWS Proton 사용하여 이러한 CodeBuild 프로비저닝 리소스의 인프라를 프로비저닝합니다. 역할에는 이러한 리소스의 템플릿에 포함된 모든 리소스를 만드는 데 사용할 수 있는 권한이 있어야 합니다.

    자세한 내용은 IAM 역할AWS Proton IAM 서비스 역할 정책 예제 섹션을 참조하세요.

  • 서비스 프로비저닝 - 개발자가 CodeBuild 프로비저닝을 사용하는 서비스 인스턴스를 환경에 배포하면는 해당 환경에 제공된 역할을 AWS Proton 사용하여 서비스 인스턴스에 대한 인프라를 프로비저닝합니다. 개발자는 이 역할을 볼 수 없으며 변경할 수도 없습니다.

  • 파이프라인이 있는 서비스 - CodeBuild 프로비저닝을 사용하는 서비스 템플릿에는 파이프라인을 프로비저닝하는 명령이 포함될 수 있습니다. AWS Proton 또한 CodeBuild를 호출하여 파이프라인을 생성합니다. 가 파이프라인을 생성하는 데 AWS Proton 사용하는 역할은 각 개별 환경의 역할과 별개입니다. 이 역할은 AWS 계정 수준에서 한 번만 AWS Proton 별도로에 제공되며 모든 CodeBuild 기반 파이프라인을 프로비저닝하고 관리하는 데 사용됩니다. 이 역할에는 파이프라인에 필요한 파이프라인 및 기타 리소스를 생성할 수 있는 권한이 있어야 합니다.

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

    AWS Proton console
    파이프라인 역할을 제공하려면
    1. AWS Proton 콘솔의 탐색 창에서 설정 > 계정 설정을 선택한 다음 구성을 선택합니다.

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

    AWS Proton API
    파이프라인 역할을 제공하려면
    1. UpdateAccountSettings API 작업을 사용합니다.

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

    AWS CLI

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

    다음 명령 실행:

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

자체 관리형 프로비저닝의 작동 방식

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

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

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

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

  4. 고객 (관리자 또는 개발자) 이 PR을 병합하면 고객의 자동화가 프로비저닝 엔진을 트리거하여 병합된 템플릿을 사용하여 인프라 프로비저닝을 시작합니다.

    참고

    고객(관리자 또는 개발자)이 PR을 닫으면는 PR을 닫힌 것으로 AWS Proton 인식하고 배포를 취소됨으로 표시합니다.

  5. 프로비저닝이 완료되면 고객의 자동화가 NotifyResourceDeploymentStatusChange AWS Proton API 작업을 호출하여 완료를 표시하고, 상태(성공 또는 실패)를 제공하고, 존재하는 경우 Amazon VPC ID와 같은 출력을 제공합니다.

    중요

    자동화 코드가 프로비저닝 상태 및 출력과 AWS Proton 함께를 다시 호출해야 합니다. 그렇지 않은 경우는 프로비저닝을 보류 중으로 간주하고 진행 중 상태를 계속 표시할 AWS Proton 수 있습니다.

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

의 자체 관리형 프로비저닝을 보여주는 다이어그램 AWS Proton

자체 관리형 프로비저닝에 대한 고려 사항

  • 인프라 리포지토리 - 관리자가 자체 관리형 프로비저닝을 위해 환경을 구성할 때 연결된 인프라 리포지토리를 제공해야 합니다.는 환경의 인프라와 환경에 배포된 모든 서비스 인스턴스를 프로비저닝하기 위해이 리포지토리에 PRs을 AWS Proton 제출합니다. 리포지토리의 고객 소유 자동화 작업은 환경 및 서비스 템플릿에 포함된 모든 리소스를 생성할 수 있는 권한이 있는 IAM 역할과 대상 AWS 계정을 반영하는 자격 증명을 수임해야 합니다. 역할을 수임하는 GitHub 작업 예제는 GitHub 작업에 대한 "자격 AWS 증명 구성" 작업 설명서의 역할 수임을 참조하세요.

  • 권한 - 프로비저닝 코드는 필요에 따라 계정으로 인증하고(예: 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 콘솔의 탐색 창에서 설정 > 계정 설정을 선택한 다음 구성을 선택합니다.

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

    AWS Proton API
    파이프라인 역할을 제공하려면
    1. UpdateAccountSettings API 작업을 사용합니다.

    2. 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 명령을 트리거할 수 있습니다.