서비스 생성 - AWS Proton

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

서비스 생성

개발자로서 AWS Proton로 애플리케이션을 배포하려면 서비스를 생성하고 다음과 같은 입력을 제공해야 합니다.

  1. 플랫폼 팀에서 게시한 AWS Proton 서비스 템플릿의 이름.

  2. 서비스의 이름.

  3. 배포하려는 서비스 인스턴스 수입니다.

  4. 사용할 환경 선택.

  5. 서비스 파이프라인이 포함된 서비스 템플릿을 사용하는 경우 코드 리포지토리에 대한 연결(선택 사항).

서비스에는 무엇이 있나요?

AWS Proton 서비스를 생성할 때, 두 가지 다른 유형의 서비스 템플릿 중에서 선택할 수 있습니다.

  • 서비스 파이프라인이 포함된 서비스 템플릿(기본값).

  • 서비스 파이프라인을 포함하지 않는 서비스 템플릿.

서비스를 생성할 때 서비스 인스턴스 하나 이상 만들어야 합니다.

서비스 인스턴스와 선택적 파이프라인은 서비스와 연결되어 있습니다. 서비스 생성 및 삭제 작업의 컨텍스트 내에서만 파이프라인을 생성하거나 삭제할 수 있습니다. 서비스에 인스턴스 추가 및 제거 방법에 대해 알아보려면 서비스 편집을 참조하세요.

참고

환경은 AWS 또는 자체 관리형 프로비저닝 중 한 가지로 구성되어 있습니다. AWS Proton는 환경에서 사용하는 것과 동일한 프로비저닝 방법을 사용하여 환경에 서비스를 프로비저닝합니다. 개발자가 서비스 인스턴스를 만들거나 업데이트해도 차이는 없으며 두 경우 모두 경험도 동일합니다.

프로비저닝 방법에 대한 자세한 내용은 AWS Proton의 인프라 프로비저닝 방법을 참조하세요.

서비스 템플릿

메이저 버전과 마이너 버전의 서비스 템플릿을 모두 사용할 수 있습니다. 콘솔을 사용할 때는 서비스 템플릿의 최신 Recommended 메이저 버전과 마이너 버전을 선택합니다. AWS CLI를 사용하고 서비스 템플릿의 메이저 버전만 지정하는 경우 암시적으로 최신 Recommended 마이너 버전을 지정합니다.

다음은 메이저 템플릿 버전과 마이너 템플릿 버전 간의 차이점과 용도에 대한 설명입니다.

  • 템플릿의 새 버전은 플랫폼 팀 구성원의 승인을 받는 즉시 Recommended이 됩니다. 즉, 해당 버전을 사용하여 새 서비스가 생성되고 기존 서비스를 새 버전으로 업데이트하라는 메시지가 표시됩니다.

  • AWS Proton를 통해 플랫폼 팀은 서비스 인스턴스를 서비스 템플릿의 새 마이너 버전으로 자동 업데이트할 수 있습니다. 마이너 버전은 이전 버전과 호환되어야 합니다.

  • 메이저 버전에서는 업데이트 프로세스의 일부로 새 입력을 제공해야 하므로 서비스를 해당 서비스 템플릿의 메이저 버전으로 업데이트해야 합니다. 메이저 버전은 이전 버전과 호환되지 않습니다.

서비스 생성

다음 절차는 AWS Proton 콘솔을 사용하거나 서비스 파이프라인이 있거나 없는 서비스를 생성하는 AWS CLI 방법을 보여줍니다.

AWS Management Console
다음 콘솔 단계에 표시된 대로 서비스를 생성합니다.
  1. AWS Proton 콘솔에서 서비스를 선택합니다.

  2. [Create service]를 선택합니다.

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

    활성화된 파이프라인을 사용하지 않으려면 해당 서비스의 파이프라인 제외로 표시된 템플릿을 선택합니다.

  4. 서비스 구성 페이지의 서비스 설정 단원에서 서비스 이름을 입력합니다.

  5. (선택 사항) 서비스 설명을 입력합니다.

  6. 서비스 리포지토리 설정 단원에서,
    1. CodeStar 연결의 경우 목록에서 연결을 선택합니다.

    2. 리포지토리 ID의 경우 목록에서 소스 코드 리포지토리의 이름을 선택합니다.

    3. 브랜치 이름의 경우 목록에서 소스 코드 저장소 브랜치의 이름을 선택합니다.

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

  8. 다음(Next)을 선택합니다.

  9. 사용자 지정 설정 구성 페이지, 서비스 인스턴스 섹션, 새 인스턴스 단원에서. required 파라미터 값을 입력해야 합니다. optional 파라미터 값을 입력하거나 지정된 경우 기본값을 사용할 수 있습니다.

  10. 파이프라인 입력 단원에서 required 파라미터 값을 입력해야 합니다. optional 파라미터 값을 입력하거나 지정된 경우 기본값을 사용할 수 있습니다.

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

  12. 생성을 선택합니다.

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

  13. 탐색 창에서 서비스를 선택합니다.

    새 페이지에 서비스 목록과 함께 상태 및 기타 서비스 세부 정보가 표시됩니다.

AWS CLI

AWS CLI를 사용할 때는 소스 코드 디렉터리에 있는 YAML 형식의 spec 파일 .aws-proton/service.yaml에 서비스 입력을 지정합니다.

CLI get-service-template-minor-version 명령을 사용하여 스펙 파일에 값을 제공하는 스키마 필수 및 선택적 파라미터를 볼 수 있습니다.

pipelineProvisioning: "CUSTOMER_MANAGED"가 있는 서비스 템플릿을 사용하려면 사양에 pipeline: 섹션을 포함하지 말고 create-service 명령에 -repository-connection-arn, -repository-id-branch-name 파라미터를 포함하지 마십시오.

다음 CLI 단계와 같이 서비스 파이프라인을 사용하여 서비스를 생성합니다.

  1. 다음 CLI 예제 명령에 표시된 대로 파이프라인의 서비스 역할을 설정합니다.

    명령:

    $ aws proton update-account-settings \ --pipeline-service-role-arn "arn:aws:iam::123456789012:role/AWSProtonServiceRole"
  2. 다음 목록은 서비스 템플릿 스키마를 기반으로 하는 서비스 파이프라인 및 인스턴스 입력을 포함하는 예제 사양을 보여줍니다.

    Spec:

    proton: ServiceSpec pipeline: my_sample_pipeline_required_input: "hello" my_sample_pipeline_optional_input: "bye" instances: - name: "acme-network-dev" environment: "ENV_NAME" spec: my_sample_service_instance_required_input: "hi" my_sample_service_instance_optional_input: "ho"

    다음 CLI 예제 명령 및 응답에 표시된 대로 파이프라인을 사용하여 서비스를 만듭니다.

    명령:

    $ aws proton create-service \ --name "MySimpleService" \ --branch-name "mainline" \ --template-major-version "1" \ --template-name "fargate-service" \ --repository-connection-arn "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" \ --repository-id "myorg/myapp" \ --spec "file://spec.yaml"

    응답:

    { "service": { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService", "createdAt": "2020-11-18T19:50:27.460000+00:00", "lastModifiedAt": "2020-11-18T19:50:27.460000+00:00", "name": "MySimpleService", "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "repositoryId": "myorg/myapp", "status": "CREATE_IN_PROGRESS", "templateName": "fargate-service" } }

다음 CLI 예제 명령 및 응답에 표시된 대로 서비스 파이프라인을 사용하지 않는 서비스를 만듭니다.

다음은 서비스 파이프라인 입력을 포함하지 않는 예제 사양을 보여줍니다.

Spec:

proton: ServiceSpec instances: - name: "acme-network-dev" environment: "ENV_NAME" spec: my_sample_service_instance_required_input: "hi" my_sample_service_instance_optional_input: "ho"

프로비저닝된 서비스 파이프라인 없이 서비스를 생성하려면 다음 CLI 예제 명령 및 응답에 표시된 대로 spec.yaml에 대한 경로를 제공하고 리포지토리 파라미터는 포함하지 마십시오.

명령:

$ aws proton create-service \ --name "MySimpleServiceNoPipeline" \ --template-major-version "1" \ --template-name "fargate-service" \ --spec "file://spec-no-pipeline.yaml"

응답:

{ "service": { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleServiceNoPipeline", "createdAt": "2020-11-18T19:50:27.460000+00:00", "lastModifiedAt": "2020-11-18T19:50:27.460000+00:00", "name": "MySimpleServiceNoPipeline", "status": "CREATE_IN_PROGRESS", "templateName": "fargate-service-no-pipeline" } }