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

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

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

AWS Proton다음과 같은 여러 방법 중 하나로 인프라를 프로비저닝할 수 있습니다.

  • AWS-관리형 프로비저닝 — 사용자를 대신하여 프로비저닝 엔진을AWS Proton 호출합니다. 이 메서드는AWS CloudFormation 템플릿 번들만 지원합니다. 자세한 내용은 AWS CloudFormationIAC 파일을 참조하세요.

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

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

    자세한 내용은 CodeBuild 프로비저닝 템플릿 번들을 참조하세요.

    참고

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

  • 자체 관리형 프로비저닝 — 사용자가 제공한 리포지토리에 풀 리퀘스트 (PR) 를AWS Proton 발행합니다. 리포지토리는 자체 인프라 배포 시스템에서 프로비전 프로세스를 실행합니다. 이 메서드는 Terraform 템플릿 번들만 지원합니다. 자세한 내용은 테라폼 IaC 파일을 참조하세요.

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

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

다음 다이어그램에는 다양한 프로비저닝 방법의 몇 가지 주요 특성이 요약되어 있습니다. 표 다음 섹션에서는 각 방법에 대한 세부 정보를 제공합니다.

프로비저닝 템플릿 에 의해 프로비저닝 Status Tradle

AWS-관리형

매니페스트, 스키마, IaC 파일 (CloudFormation)

AWS Proton(를 통해 CloudFormation)

AWS Proton(를 통해 CloudFormation)

CodeBuild

매니페스트 (명령 포함), 스키마, 명령 종속성 (예:AWS CDK 코드)

AWS Proton(를 통해 CodeBuild)

AWS Proton(명령은 다음을 통해 상태를 반환합니다. CodeBuild)

자체 관리형

매니페스트, 스키마, IaC 파일 (테라폼)

내 코드 (Git 액션을 통해)

사용자 코드 (API 호출을AWS 통해 전달됨)

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

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

  1. AWS Proton고객 (관리자 또는 개발자) 이AWS Proton 리소스 (환경 또는 서비스) 를 만듭니다. 고객은 리소스에 대한 템플릿을 선택하고 필요한 매개 변수를 제공합니다. 자세한 내용은 다음 단원을 참조하십시오AWS관리형 프로비저닝에 대한 고려 사항.

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

  3. AWS Proton렌더링된 템플릿을 사용하여 프로비저닝을 시작하기 위한 호출AWS CloudFormation

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

  5. 프로비저닝이 완료되면 장애 발생 시 오류를AWS Proton 보고하고, 성공적인 경우 Amazon VPC ID와 같은 프로비저닝 출력을 캡처합니다.

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


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

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

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

    자세한 내용은 IAM 역할AWS ProtonIAM 서비스 역할 정책 예제 단원을 참조하세요.

  • 서비스 프로비저닝 — 개발자가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. UpdateAccountSettingsAPI 작업을 사용하십시오.

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

    AWS CLI

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

    다음 명령을 실행합니다.

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

CodeBuild 프로비저닝 작동 방식

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

  1. AWS Proton고객 (관리자 또는 개발자) 이AWS Proton 리소스 (환경 또는 서비스) 를 만듭니다. 고객은 리소스에 대한 템플릿을 선택하고 필요한 매개 변수를 제공합니다. 자세한 내용은 다음 단원을 참조하십시오 CodeBuild 프로비저닝 고려 사항.

  2. AWS Proton리소스 프로비저닝을 위한 입력 파라미터 값이 포함된 입력 파일을 렌더링합니다.

  3. AWS Proton일을 시작하기 CodeBuild 위해 전화하십시오. 이 CodeBuild 작업은 템플릿에 지정된 고객 셸 명령을 실행합니다. 이러한 명령은 입력 값을 선택적으로 읽으면서 원하는 인프라를 제공합니다.

  4. 프로비저닝이 완료되면 최종 고객 명령이 프로비저닝 상태를 CodeBuild 반환하고 NotifyResourceDeploymentStatusChangeAWS ProtonAPI 작업을 호출하여 Amazon VPC ID와 같은 출력을 제공합니다 (있는 경우).

    중요

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

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


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

CodeBuild 프로비저닝 고려 사항

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

    자세한 내용은 IAM 역할AWS ProtonIAM 서비스 역할 정책 예제 단원을 참조하세요.

  • 서비스 프로비저닝 — 개발자가 환경에 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. UpdateAccountSettingsAPI 작업을 사용하십시오.

    2. pipelineCodebuildRoleArn파라미터에 파이프라인 서비스 역할의 Amazon 리소스 이름 (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 파일과.tfvars 변수 파일로 구성됩니다. AWS Proton리소스 생성 호출 시 제공된 파라미터 값을 이 변수 파일에 기록합니다.

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

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

    참고

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

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

    중요

    자동화 코드가 프로비저닝 상태 및AWS Proton 출력과 함께 를 다시 호출하는지 확인하십시오. 그렇지 않은 경우 프로비저닝이 예상보다 오래 보류 중인 것으로 간주하고 진행 중 상태로 계속AWS Proton 표시될 수 있습니다.

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


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

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

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

  • 권한 — 프로비저닝 코드는 필요에 따라 계정을 통해 인증 (예: 계정 인증) 하고 리소스 프로비저닝 권한 부여 (예: 역할 제공) 를 제공해야 합니다.AWS

  • 서비스 프로비저닝 — 개발자가 자체 관리형 프로비저닝을 사용하는 서비스 인스턴스를 환경에 배포하면 환경과 연결된 리포지토리에 PR을AWS Proton 제출하여 서비스 인스턴스의 인프라를 프로비저닝합니다. 개발자는 리포지토리를 볼 수 없으며 변경할 수도 없습니다.

    참고

    서비스를 만드는 개발자는 프로비저닝 방법에 관계없이 동일한 프로세스를 사용하며, 그 차이는 추상화됩니다. 그러나 자체 관리형 프로비저닝을 사용하는 개발자는 프로비저닝을 시작하기 전에 누군가 (자신이 아닐 수도 있음) 가 인프라 리포지토리의 PR을 병합할 때까지 기다려야 하기 때문에 응답 속도가 느려질 수 있습니다.

  • 파이프라인을 사용한 서비스 - 자체 관리형 프로비저닝이 있는 환경을 위한 서비스 템플릿에는 Terraform HCL로 작성된AWS CodePipeline 파이프라인 정의 (예: 파이프라인) 가 포함될 수 있습니다. 이러한 파이프라인을AWS Proton 프로비전할 수 있도록 관리자는 연결된 파이프라인 리포지토리를 제공합니다AWS Proton. 파이프라인을 프로비저닝할 때 리포지토리의 고객 소유 자동화 작업은 파이프라인을 프로비저닝할 권한이 있는 IAM 역할과 대상AWS 계정을 반영하는 ID를 맡아야 합니다. 파이프라인 리포지토리와 역할은 각 개별 환경에 사용되는 것과는 별개입니다. 연결된 리포지토리는AWS 계정 수준에서 한 번만AWS Proton 별도로 제공되며 모든 파이프라인을 프로비저닝하고 관리하는 데 사용됩니다. 역할에는 파이프라인에 필요한 파이프라인 및 기타 리소스를 만들 수 있는 권한이 있어야 합니다.

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

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

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

    AWS Proton API
    파이프라인 역할을 제공하려면
    1. UpdateAccountSettingsAPI 작업을 사용하십시오.

    2. pipelineProvisioningRepository파라미터에 파이프라인 리포지토리의 공급자, 이름 및 분기를 입력합니다.

    AWS CLI

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

    다음 명령을 실행합니다.

    $ aws proton update-account-settings \ --pipeline-provisioning-repository \ "provider=GITHUB,name=my-pipeline-repo-name,branch=my-branch"
  • 자체 관리되는 프로비저닝 리소스 삭제 — Terraform 모듈에는 리소스 정의 외에도 Terraform 운영에 필요한 구성 요소가 포함될 수 있습니다. 따라서 환경 또는 서비스 인스턴스의 모든 Terraform 파일을 삭제할AWS Proton 수 없습니다. 대신 파일을 삭제할 것으로AWS Proton 표시하고 PR 메타데이터에서 플래그를 업데이트했습니다. 자동화는 해당 플래그를 읽고 이를 사용하여 terraform destroy 명령을 트리거할 수 있습니다.