환경 생성 - AWS Proton

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

환경 생성

AWS Proton 환경을 만드는 방법을 알아보십시오.

다음 두 가지 방법 중 하나로 AWS Proton 환경을 만들 수 있습니다.
  • 표준 환경 템플릿을 사용하여 표준 환경을 만들고, 관리하고, 프로비전하십시오. AWS Proton 환경에 맞게 인프라를 프로비저닝합니다.

  • 고객 관리 환경 템플릿을 사용하여 고객 관리 인프라에 연결합니다 AWS Proton . 외부에 자체 공유 리소스를 프로비저닝한 AWS Proton다음 사용할 수 있는 프로비저닝 출력을 제공합니다. AWS Proton

환경을 만들 때 여러 프로비저닝 접근 방식 중 하나를 선택할 수 있습니다.
  • AWS 관리형 프로비저닝 — 단일 계정으로 환경을 생성, 관리, 프로비저닝할 수 있습니다. AWS Proton 환경을 프로비저닝합니다.

    이 방법은 CloudFormation 인프라 코드 (IaC) 템플릿만 지원합니다.

  • AWS 다른 계정으로의 관리 프로비저닝 - 단일 관리 계정에서 환경 계정 연결을 통해 다른 계정에 프로비저닝된 환경을 만들고 관리합니다. AWS Proton 다른 계정에 환경을 프로비저닝합니다. 자세한 내용은 한 계정에서 환경을 만들고 다른 계정에서 프로비저닝합니다.환경 계정 연결 단원을 참조하세요.

    이 방법은 CloudFormation IaC 템플릿만 지원합니다.

  • 자체 관리형 프로비저닝 — 자체 프로비저닝 인프라가 있는 연결된 리포지토리에 프로비저닝 풀 요청을 AWS Proton 제출합니다.

    이 방법은 Terraform IaC 템플릿만 지원합니다.

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

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

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

    참고

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

AWS 관리형 프로비저닝 (동일한 계정과 다른 계정 모두) 을 AWS Proton 사용하면 직접 전화를 걸어 리소스를 프로비저닝할 수 있습니다.

자체 관리형 프로비저닝을 AWS Proton 사용하면 IaC 엔진이 리소스를 프로비저닝하는 데 사용하는 컴파일된 IaC 파일을 제공하도록 풀 요청을 생성합니다.

자세한 내용은 AWS Proton의 인프라 프로비저닝 방법, 템플릿 번들환경 템플릿 번들에 대한 스키마 요구 사항을 참조하세요.

동일한 계정에서 표준 환경을 만들고 프로비저닝합니다.

콘솔을 사용하거나 단일 계정으로 환경을 만들고 AWS CLI 프로비저닝할 수 있습니다. 프로비저닝은 에서 관리합니다. AWS

AWS Management Console
콘솔을 사용하여 단일 계정으로 환경을 만들고 프로비저닝할 수 있습니다.
  1. AWS Proton 콘솔에서 환경을 선택합니다.

  2. 환경 생성을 선택합니다.

  3. 환경 템플릿 선택 페이지에서 템플릿을 선택하고 구성을 선택합니다.

  4. 환경 구성 페이지의 프로비저닝 단원에서 AWS 관리형 프로비저닝을 선택합니다.

  5. 배포 계정 단원에서 이 AWS 계정를 선택합니다.

  6. 환경 구성 페이지의 환경 설정 단원에서 환경 이름을 입력합니다.

  7. (선택 사항) 환경에 대한 설명을 입력합니다.

  8. 환경 역할 단원에서 AWS Proton 서비스 역할 설정의 일부로 만든 AWS Proton 서비스 역할을 선택합니다.

  9. (선택 사항) 구성 요소 역할 단원에서 직접 정의된 구성 요소를 환경에서 실행할 수 있게 하고 해당 구성 요소가 프로비저닝할 수 있는 리소스의 범위를 좁히는 서비스 역할을 선택합니다. 자세한 내용은 AWS Proton 구성 요소을 참조하세요.

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

  11. 다음을 선택합니다.

  12. 환경 사용자 지정 설정 구성 페이지에서 required 파라미터 값을 입력해야 합니다. optional 파라미터 값을 입력하거나 지정된 경우 기본값을 사용할 수 있습니다.

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

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

    환경 세부 정보 및 상태는 물론 환경에 대한 AWS 관리 태그와 고객 관리 태그를 확인하세요.

  15. 탐색 창에서 환경을 선택합니다.

    새 페이지에는 환경 목록이 상태 및 기타 환경 세부 정보와 함께 표시됩니다.

AWS CLI

AWS CLI 를 사용하여 단일 계정으로 환경을 만들고 프로비전할 수 있습니다.

환경을 만들려면 AWS Proton 서비스 역할, 사양 파일 경로ARN, 환경 이름, 환경 템플릿, 메이저 및 마이너 버전ARN, 설명 (선택 사항) 을 지정합니다.

다음 예제는 환경 템플릿 스키마 파일에 정의된 두 입력의 값을 지정하는 YAML 형식이 지정된 사양 파일을 보여줍니다. get-environment-template-minor-version 명령을 사용하여 환경 템플릿 스키마를 볼 수 있습니다.

proton: EnvironmentSpec spec: my_sample_input: "the first" my_other_sample_input: "the second"

다음 명령을 실행하여 환경을 생성합니다.

$ aws proton create-environment \ --name "MySimpleEnv" \ --template-name simple-env \ --template-major-version 1 \ --proton-service-role-arn "arn:aws:iam::123456789012:role/AWS ProtonServiceRole" \ --spec "file://env-spec.yaml"

응답:

{ "environment": { "arn": "arn:aws:proton:region-id:123456789012:environment/MySimpleEnv", "createdAt": "2020-11-11T23:03:05.405000+00:00", "deploymentStatus": "IN_PROGRESS", "lastDeploymentAttemptedAt": "2020-11-11T23:03:05.405000+00:00", "name": "MySimpleEnv", "protonServiceRoleArn": "arn:aws:iam::123456789012:role/ProtonServiceRole", "templateName": "simple-env" } }

새 환경을 만든 후에는 다음 예제 명령과 같이 고객 관리 태그의 AWS 목록과 고객 관리 태그를 볼 수 있습니다. AWS Proton 자동으로 AWS 관리 태그를 생성합니다. AWS CLI를 사용하여 고객 관리 태그를 수정하고 생성할 수도 있습니다. 자세한 내용은 AWS Proton 리소스 및 태깅 단원을 참조하십시오.

명령:

$ aws proton list-tags-for-resource \ --resource-arn "arn:aws:proton:region-id:123456789012:environment/MySimpleEnv"

한 계정에서 환경을 만들고 다른 계정에서 프로비저닝합니다.

콘솔을 사용하거나 다른 계정에 환경 인프라를 프로비저닝하는 관리 계정에서 표준 환경을 만들 수 있습니다. AWS CLI 프로비저닝은 AWS에서 관리합니다.

콘솔을 사용하거나 사용하기 전에 다음 단계를 완료하십시오. CLI
  1. 관리 및 환경 계정을 식별하고 나중에 사용할 수 있도록 복사하십시오. AWS 계정 IDs

  2. 환경 계정에서 환경이 만들 수 있는 최소 권한이 있는 AWS Proton 서비스 역할을 생성하십시오. 자세한 내용은 AWS Proton 를 사용하여 프로비저닝하기 위한 서비스 역할 AWS CloudFormation 단원을 참조하십시오.

AWS Management Console
콘솔을 사용하여 한 계정에서 환경을 만들고 다른 계정에서 프로비저닝합니다.
  1. 환경 계정에서 환경 계정 연결을 생성하고 이를 사용하여 관리 계정에 연결하라는 요청을 보내십시오.
    1. AWS Proton 콘솔의 탐색 창에서 환경 계정 연결을 선택합니다.

    2. 환경 계정 연결 페이지에서 연결 요청을 선택합니다.

      참고

      환경 계정 연결 페이지 제목에 나열된 계정 ID가 미리 식별된 환경 계정 ID와 일치하는지 확인하세요.

    3. 연결 요청 페이지의 환경 역할 단원에서 기존 서비스 역할과 환경용으로 만든 서비스 역할의 이름을 선택합니다.

    4. 관리 계정에 연결 섹션에서 해당 환경의 관리 계정 ID와 환경 이름을 입력합니다. AWS Proton 나중에 사용할 수 있도록 이름을 복사하세요.

    5. 페이지 오른쪽 하단에서 연결 요청을 선택합니다.

    6. 관리 계정으로 전송된 환경 연결 테이블에 요청이 보류 중으로 표시되고 관리 계정의 요청을 수락하는 방법이 모달에 표시됩니다.

  2. 관리 계정에서 환경 계정의 연결 요청을 수락합니다.
    1. 관리 계정에 로그인하고 AWS Proton 콘솔에서 환경 계정 연결을 선택합니다.

    2. 환경 계정 연결 페이지의 환경 계정 연결 요청 테이블에서 미리 식별된 환경 계정 ID와 일치하는 환경 계정 ID를 가진 환경 계정 연결을 선택합니다.

      참고

      환경 계정 연결 페이지 제목에 나열된 계정 ID가 미리 식별된 관리 계정 ID와 일치하는지 확인하세요.

    3. 수락을 선택합니다. 상태가 에서 PENDING 로 바뀝니다CONNECTED.

  3. 관리 계정에서 환경을 생성합니다.
    1. 탐색 창에서 환경 템플릿을 선택합니다.

    2. 환경 템플릿 페이지에서 환경 템플릿 생성을 선택합니다.

    3. 환경 템플릿 선택 페이지에서 환경 템플릿을 선택합니다.

    4. 환경 구성 페이지의 프로비저닝 단원에서 AWS 관리형 프로비저닝을 선택합니다.

    5. 배포 계정 섹션에서 다른 AWS 계정; 을 선택합니다.

    6. 환경 세부 정보 단원에서 환경 계정 연결환경 이름을 선택합니다.

    7. Next(다음)를 선택합니다.

    8. 양식을 작성하고 검토 및 만들기 페이지가 표시될 때까지 다음을 선택합니다.

    9. 검토 후 환경 만들기를 선택합니다.

AWS CLI

AWS CLI 를 사용하여 한 계정에서 환경을 만들고 다른 계정에서 프로비저닝할 수 있습니다.

환경 계정에서 다음 명령을 실행하여 환경 계정 연결을 만들고 연결을 요청합니다.

$ aws proton create-environment-account-connection \ --environment-name "simple-env-connected" \ --role-arn "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role" \ --management-account-id "111111111111"

응답:

{ "environmentAccountConnection": { "arn": "arn:aws:proton:region-id:222222222222:environment-account-connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "environmentName": "simple-env-connected", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "lastModifiedAt": "2021-04-28T23:13:50.847000+00:00", "managementAccountId": "111111111111", "requestedAt": "2021-04-28T23:13:50.847000+00:00", "roleArn": "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role", "status": "PENDING" } }

관리 계정에서 다음 명령을 실행하여 환경 계정 연결 요청을 수락합니다.

$ aws proton accept-environment-account-connection \ --id "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"

응답:

{ "environmentAccountConnection": { "arn": "arn:aws:proton:region-id:222222222222:environment-account-connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "environmentName": "simple-env-connected", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "lastModifiedAt": "2021-04-28T23:15:33.486000+00:00", "managementAccountId": "111111111111", "requestedAt": "2021-04-28T23:13:50.847000+00:00", "roleArn": "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role", "status": "CONNECTED" } }

다음 명령을 실행하여 환경 계정 연결을 확인합니다.

$ aws proton get-environment-account-connection \ --id "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"

응답:

{ "environmentAccountConnection": { "arn": "arn:aws:proton:region-id:222222222222:environment-account-connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "environmentName": "simple-env-connected", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "lastModifiedAt": "2021-04-28T23:15:33.486000+00:00", "managementAccountId": "111111111111", "requestedAt": "2021-04-28T23:13:50.847000+00:00", "roleArn": "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role", "status": "CONNECTED" } }

관리 계정에서 다음 명령을 실행하여 환경을 만듭니다.

$ aws proton create-environment \ --name "simple-env-connected" \ --template-name simple-env-template \ --template-major-version "1" \ --template-minor-version "1" \ --spec "file://simple-env-template/specs/original.yaml" \ --environment-account-connection-id "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"

응답:

{ "environment": { "arn": "arn:aws:proton:region-id:111111111111:environment/simple-env-connected", "createdAt": "2021-04-28T23:02:57.944000+00:00", "deploymentStatus": "IN_PROGRESS", "environmentAccountConnectionId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "lastDeploymentAttemptedAt": "2021-04-28T23:02:57.944000+00:00", "name": "simple-env-connected", "templateName": "simple-env-template" } }

자체 관리형 프로비저닝을 사용하여 환경을 만들고 프로비저닝합니다.

자체 관리형 프로비저닝을 사용하는 경우 자체 프로비저닝 인프라가 있는 연결된 리포지토리에 프로비저닝 풀 요청을 AWS Proton 제출합니다. 풀 리퀘스트는 AWS 서비스를 호출하고 인프라를 프로비저닝하는 자체 워크플로를 시작합니다.

자체 관리형 프로비저닝 고려 사항:
  • 환경을 만들기 전에 자체 관리형 프로비저닝을 위한 리포지토리 리소스 디렉터리를 설정합니다. 자세한 내용은 AWS Proton 코드 파일로서의 인프라 단원을 참조하십시오.

  • 환경을 만든 후에는 인프라 프로비저닝 상태에 대한 비동기 알림 수신을 AWS Proton 기다립니다. 프로비저닝 코드에서 이러한 비동기 알림을 AWS Proton NotifyResourceStateChange API 보내려면 를 사용해야 합니다. AWS Proton

콘솔에서 또는 AWS CLI와 함께 자체 관리형 프로비저닝을 사용할 수 있습니다. 다음 예시는 Terraform에서 자체 관리형 프로비저닝을 사용하는 방법을 보여줍니다.

AWS Management Console
콘솔을 사용하여 자체 관리형 프로비저닝을 사용하여 Terraform 환경을 만들 수 있습니다.
  1. AWS Proton 콘솔에서 환경을 선택합니다.

  2. 환경 생성을 선택합니다.

  3. 환경 템플릿 선택 페이지에서 Terraform 템플릿을 선택하고 구성을 선택합니다.

  4. 환경 구성 페이지의 프로비저닝 단원에서 자체 관리형 프로비저닝을 선택합니다.

  5. 프로비전 리포지토리 세부 정보 단원에서,

    1. 프로비전 리포지토리를 아직 연결하지 않은 경우 새 리포지토리를 선택하고 리포지토리 제공자 중 하나를 선택한 다음 CodeStar연결을 위해 연결 중 하나를 선택합니다. AWS Proton

      참고

      관련 저장소 제공자 계정에 아직 연결되지 않은 경우 새 CodeStar 연결 추가를 선택합니다. 그런 다음 연결을 만든 다음 CodeStar 연결 메뉴 옆에 있는 새로 고침 버튼을 선택합니다. 이제 메뉴에서 새 연결을 선택할 수 있을 것입니다.

      리포지토리를 이미 연결했다면 기존 리포지토리를 AWS Proton 선택합니다.

    2. 리포지토리 이름에서 퍼블릭 리포지토리를 선택합니다. 드롭다운 메뉴에는 기존 리포지토리 또는 새 리포지토리의 공급자 계정에 있는 리포지토리 목록이 표시됩니다.

    3. 브랜치 이름에서 리포지토리 브랜치 중의 하나를 선택합니다.

  6. 환경 설정 단원에서 환경 이름을 입력합니다.

  7. (선택 사항) 환경에 대한 설명을 입력합니다.

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

  9. 다음을 선택합니다.

  10. 환경 사용자 지정 설정 구성 페이지에서 required 파라미터 값을 입력해야 합니다. optional 파라미터 값을 입력하거나 지정된 경우 기본값을 사용할 수 있습니다.

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

  12. 생성을 선택하여 풀 리퀘스트를 전송합니다.

    • 풀 리퀘스트를 승인하면 배포가 진행 중인 것입니다.

    • 풀 리퀘스트를 거부하면 환경 생성이 취소됩니다.

    • 풀 리퀘스트 제한 시간이 초과되면 환경 생성이 완료되지 않습니다.

  13. 환경 세부 정보 및 상태는 물론 환경에 대한 AWS 관리 태그와 고객 관리 태그를 볼 수 있습니다.

  14. 탐색 창에서 환경을 선택합니다.

    새 페이지에는 환경 목록이 상태 및 기타 환경 세부 정보와 함께 표시됩니다.

AWS CLI

자체 관리형 프로비저닝을 사용하여 환경을 만들 때는 provisioningRepository파라미터를 추가하고 ProtonServiceRoleArnenvironmentAccountConnectionId 파라미터는 생략합니다.

AWS CLI 를 사용하여 자체 관리형 프로비저닝이 포함된 Terraform 환경을 만들 수 있습니다.
  1. 환경을 만들고 검토 및 승인을 위해 리포지토리에 풀 리퀘스트를 보내세요.

    다음 예제에서는 환경 템플릿 스키마 파일을 기반으로 두 입력의 값을 정의하는 YAML 형식이 지정된 사양 파일을 보여줍니다. get-environment-template-minor-version 명령을 사용하여 환경 템플릿 스키마를 볼 수 있습니다.

    Spec:

    proton: EnvironmentSpec spec: ssm_parameter_value: "test"

    다음 명령을 실행하여 환경을 생성합니다.

    $ aws proton create-environment \ --name "pr-environment" \ --template-name "pr-env-template" \ --template-major-version "1" \ --provisioning-repository="branch=main,name=myrepos/env-repo,provider=GITHUB" \ --spec "file://env-spec.yaml"

    응답:>

    { "environment": { "arn": "arn:aws:proton:region-id:123456789012:environment/pr-environment", "createdAt": "2021-11-18T17:06:58.679000+00:00", "deploymentStatus": "IN_PROGRESS", "lastDeploymentAttemptedAt": "2021-11-18T17:06:58.679000+00:00", "name": "pr-environment", "provisioningRepository": { "arn": "arn:aws:proton:region-id:123456789012:repository/github:myrepos/env-repo", "branch": "main", "name": "myrepos/env-repo", "provider": "GITHUB" }, "templateName": "pr-env-template" }
  2. 요청을 검토합니다.

    • 요청을 승인하면 프로비저닝이 진행 중인 것입니다.

    • 요청을 거부하면 환경 생성이 취소됩니다.

    • 풀 리퀘스트 제한 시간이 초과되면 환경 생성이 완료되지 않습니다.

  3. 프로비저닝 상태를 비동기적으로 제공합니다. AWS Proton다음 예시에서는 프로비저닝이 성공했음을 알립니다. AWS Proton

    $ aws proton notify-resource-deployment-status-change \ --resource-arn "arn:aws:proton:region-id:123456789012:environment/pr-environment" \ --status "SUCCEEDED"