서비스 편집 - AWS Proton

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

서비스 편집

AWS Proton 서비스를 다음과 같이 편집할 수 있습니다.

  • 서비스 설명을 편집합니다.

  • 서비스 인스턴스를 추가 및 제거하여 서비스를 편집합니다.

서비스 설명 편집

콘솔 또는 AWS CLI을 사용하여 서비스 설명을 편집할 수 있습니다.

AWS Management Console

다음 단계에 설명된 대로 콘솔을 사용하여 서비스를 편집합니다.

서비스 목록에서.
  1. AWS Proton 콘솔에서 서비스를 선택합니다.

  2. 서비스 목록에서 업데이트하려는 서비스 왼쪽에 있는 라디오 버튼을 선택합니다.

  3. 편집(Edit)을 선택합니다.

  4. 서비스 구성 페이지에서 양식을 작성하고 다음을 선택합니다.

  5. 사용자 지정 설정 구성 페이지에서 다음을 선택합니다.

  6. 편집 내용을 검토하고 변경 사항 저장을 선택합니다.

서비스 세부 정보 페이지에서.
  1. AWS Proton 콘솔에서 서비스를 선택합니다.

  2. 서비스 목록에서 수정하려는 서비스의 이름을 선택합니다.

  3. 서비스 세부 정보 페이지에서 편집을 선택합니다.

  4. 서비스 구성 페이지에서 양식을 작성하고 다음을 선택합니다.

  5. 사용자 지정 설정 페이지에서 양식을 작성하고 다음을 선택합니다.

  6. 편집 내용을 검토하고 변경 사항 저장을 선택합니다.

AWS CLI

다음 CLI 예제 명령 및 응답에 표시된 대로 설명을 편집합니다.

명령:

$ aws proton update-service \ --name "MySimpleService" \ --description "Edit by updating description"

응답:

{ "service": { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService", "branchName": "main", "createdAt": "2021-03-12T22:39:42.318000+00:00", "description": "Edit by updating description", "lastModifiedAt": "2021-03-12T22:44:21.975000+00:00", "name": "MySimpleService", "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "repositoryId": "my-repository/myorg-myapp", "status": "ACTIVE", "templateName": "fargate-service" } }

서비스를 편집하여 서비스 인스턴스 추가 또는 제거

AWS Proton 서비스의 경우 편집된 사양을 제출하여 서비스 인스턴스를 추가하거나 삭제할 수 있습니다. 요청이 성공하려면 다음 조건을 충족해야 합니다.

  • 편집 요청을 제출할 때 서비스 및 파이프라인이 이미 편집 또는 삭제되어 있지 않아야 합니다.

  • 편집한 명세서에는 서비스 파이프라인을 수정하는 편집 내용이나 삭제할 수 없는 기존 서비스 인스턴스에 대한 편집 내용이 포함되지 않습니다.

  • 사양을 편집해도 연결된 구성 요소가 있는 기존 서비스 인스턴스는 제거되지 않습니다. 이러한 서비스 인스턴스를 삭제하려면 먼저 구성 요소를 업데이트하여 서비스 인스턴스에서 분리해야 합니다. 구성 요소에 대한 자세한 내용은 AWS Proton 구성 요소를 참조하세요.

삭제 실패 인스턴스는 DELETE_FAILED 상태의 서비스 인스턴스입니다. 서비스 편집을 요청하면 편집 프로세스의 일환으로 AWS Proton은 삭제에 실패한 인스턴스를 제거하려고 시도합니다. 서비스 인스턴스 중 하나라도 삭제에 실패한 경우 콘솔 또는 AWS CLI에 표시되지 않더라도 해당 인스턴스와 연결된 리소스가 남아 있을 수 있습니다. 삭제에 실패한 인스턴스 인프라 리소스를 확인하고 정리하여 AWS Proton이 제거할 수 있도록 합니다.

서비스의 서비스 인스턴스 할당량은 AWS Proton 할당량을 참조하세요. 또한 서비스를 생성한 후에는 서비스에 대한 최소 1개의 서비스 인스턴스를 유지 관리해야 합니다. 업데이트 프로세스 중에 기존 서비스 인스턴스와 추가 또는 제거할 인스턴스의 수를 계산합니다. AWS Proton 삭제에 실패한 인스턴스는 이 수에 포함되며, spec 편집 시 해당 인스턴스를 고려해야 합니다.

콘솔 또는 AWS CLI을 사용하거나 서비스 인스턴스를 추가 또는 제거할 수 있습니다.

AWS Management Console

콘솔을 사용하여 서비스 인스턴스를 추가하거나 제거하려면 서비스를 편집합니다.

AWS Proton 콘솔에서

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

  2. 편집할 서비스를 선택합니다.

  3. 편집(Edit)을 선택합니다.

  4. (선택 사항) 서비스 구성 페이지에서 서비스 이름 또는 설명을 편집한 후 다음을 선택합니다.

  5. 사용자 지정 설정 구성 페이지에서 삭제를 선택하여 서비스 인스턴스를 삭제하고 새 인스턴스 추가를 선택하여 서비스 인스턴스를 추가하고 양식을 작성합니다.

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

  7. 업데이트를 검토하고 변경 사항 저장을 선택합니다.

  8. 서비스 인스턴스 삭제를 확인하라는 모달이 표시됩니다. 지침을 따르고 예, 삭제를 선택합니다.

  9. 서비스 세부 정보 페이지에서 서비스의 상태 세부 정보를 확인합니다.

AWS CLI

다음 AWS CLI 예제 명령 및 응답에 표시된 대로 편집된 spec로 서비스 인스턴스를 추가 및 삭제합니다.

CLI를 사용할 때는 spec이 삭제할 서비스 인스턴스를 제외하고 추가할 서비스 인스턴스와 삭제 대상으로 표시하지 않은 기존 서비스 인스턴스를 모두 포함해야 합니다.

다음 목록은 편집 전 예제 spec와 사양별로 배포된 서비스 인스턴스 목록을 보여줍니다. 이 사양은 이전 예제에서 서비스 설명을 편집하는 데 사용되었습니다.

Spec:

proton: ServiceSpec pipeline: my_sample_pipeline_optional_input: "abc" my_sample_pipeline_required_input: "123" instances: - name: "my-instance" environment: "simple-env" spec: my_sample_service_instance_optional_input: "def" my_sample_service_instance_required_input: "456" - name: "my-other-instance" environment: "simple-env" spec: my_sample_service_instance_required_input: "789"

다음 예제 CLI list-service-instances 명령 및 응답은 서비스 인스턴스를 추가 또는 삭제하기 전의 활성 인스턴스를 보여줍니다.

명령:

$ aws proton list-service-instances \ --service-name "MySimpleService"

응답:

{ "serviceInstances": [ { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService/service-instance/my-other-instance", "createdAt": "2021-03-12T22:39:42.318000+00:00", "deploymentStatus": "SUCCEEDED", "environmentName": "simple-env", "lastDeploymentAttemptedAt": "2021-03-12T22:39:43.109000+00:00", "lastDeploymentSucceededAt": "2021-03-12T22:39:43.109000+00:00", "name": "my-other-instance", "serviceName": "example-svc", "templateMajorVersion": "1", "templateMinorVersion": "0", "templateName": "fargate-service" }, { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService/service-instance/my-instance", "createdAt": "2021-03-12T22:39:42.318000+00:00", "deploymentStatus": "SUCCEEDED", "environmentName": "simple-env", "lastDeploymentAttemptedAt": "2021-03-12T22:39:43.160000+00:00", "lastDeploymentSucceededAt": "2021-03-12T22:39:43.160000+00:00", "name": "my-instance", "serviceName": "example-svc", "serviceTemplateArn": "arn:aws:proton:region-id:123456789012:service-template/fargate-service", "templateMajorVersion": "1", "templateMinorVersion": "0", "templateName": "fargate-service" } ] }

다음 목록은 인스턴스를 삭제 및 추가하는 데 사용된 편집 예제 spec를 보여줍니다. 이름이 지정된 기존 인스턴스 my-instance가 제거되고 이름이 지정된 새 인스턴스 yet-another-instance가 추가됩니다.

Spec:

proton: ServiceSpec pipeline: my_sample_pipeline_optional_input: "abc" my_sample_pipeline_required_input: "123" instances: - name: "my-other-instance" environment: "simple-env" spec: my_sample_service_instance_required_input: "789" - name: "yet-another-instance" environment: "simple-env" spec: my_sample_service_instance_required_input: "789"

값이 spec 에 있는 경우 "${Proton::CURRENT_VAL}"을 원본 spec에서 보존할 파라미터 값을 지정하는 데 사용할 수 있습니다. 서비스 데이터 보기에 설명된 대로 서비스의 원본 spec을 보는 데 get-service을 사용합니다.

다음 목록은 "${Proton::CURRENT_VAL}"을 사용하여 기존 서비스 인스턴스가 유지되도록 spec이 파라미터 값 변경 사항을 포함하지 않도록 하는 방법을 보여줍니다.

Spec:

proton: ServiceSpec pipeline: my_sample_pipeline_optional_input: "${Proton::CURRENT_VAL}" my_sample_pipeline_required_input: "${Proton::CURRENT_VAL}" instances: - name: "my-other-instance" environment: "simple-env" spec: my_sample_service_instance_required_input: "${Proton::CURRENT_VAL}" - name: "yet-another-instance" environment: "simple-env" spec: my_sample_service_instance_required_input: "789"

다음 목록은 서비스를 편집하기 위한 CLI 명령 및 응답을 보여줍니다.

명령:

$ aws proton update-service --name "MySimpleService" \ --description "Edit by adding and deleting a service instance" \ --spec "file://spec.yaml"

응답:

{ "service": { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService", "branchName": "main", "createdAt": "2021-03-12T22:39:42.318000+00:00", "description": "Edit by adding and deleting a service instance", "lastModifiedAt": "2021-03-12T22:55:48.169000+00:00", "name": "MySimpleService", "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "repositoryId": "my-repository/myorg-myapp", "status": "UPDATE_IN_PROGRESS", "templateName": "fargate-service" } }

다음 list-service-instances 명령 및 응답은 명명된 기존 인스턴스 my-instance가 제거되고 이름이 지정된 새 인스턴스 yet-another-instance가 추가되었음을 확인합니다.

명령:

$ aws proton list-service-instances \ --service-name "MySimpleService"

응답:

{ "serviceInstances": [ { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService/service-instance/yet-another-instance", "createdAt": "2021-03-12T22:39:42.318000+00:00", "deploymentStatus": "SUCCEEDED", "environmentName": "simple-env", "lastDeploymentAttemptedAt": "2021-03-12T22:56:01.565000+00:00", "lastDeploymentSucceededAt": "2021-03-12T22:56:01.565000+00:00", "name": "yet-another-instance", "serviceName": "MySimpleService", "templateMajorVersion": "1", "templateMinorVersion": "0", "templateName": "fargate-service" }, { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService/service-instance/my-other-instance", "createdAt": "2021-03-12T22:39:42.318000+00:00", "deploymentStatus": "SUCCEEDED", "environmentName": "simple-env", "lastDeploymentAttemptedAt": "2021-03-12T22:39:43.109000+00:00", "lastDeploymentSucceededAt": "2021-03-12T22:39:43.109000+00:00", "name": "my-other-instance", "serviceName": "MySimpleService", "templateMajorVersion": "1", "templateMinorVersion": "0", "templateName": "fargate-service" } ] }

서비스 인스턴스 추가 또는 제거 시 발생하는 상황

서비스 인스턴스를 삭제하고 추가하기 위한 서비스 편집을 제출한 후에 AWS Proton은 다음 작업을 수행합니다.

  • 서비스를 UPDATE_IN_PROGRESS로 설정합니다.

  • 서비스에 파이프라인이 있는 경우 상태를 IN_PROGRESS로 설정하고 파이프라인 작업을 차단합니다.

  • 삭제할 모든 서비스 인스턴스를 DELETE_IN_PROGRESS로 설정합니다.

  • 서비스 작업을 차단합니다.

  • 삭제하도록 표시한 서비스 인스턴스 상의 작업을 차단합니다.

  • 새 서비스 인스턴스를 생성합니다.

  • 삭제 대상으로 등록한 인스턴스를 삭제합니다.

  • 삭제에 실패한 인스턴스를 제거하려고 시도합니다.

  • 추가 및 삭제가 완료되면 서비스 파이프라인(있는 경우)을 다시 프로비저닝하고, 서비스를 ACTIVE로 설정하고 서비스 및 파이프라인 작업을 사용 설정합니다.

AWS Proton은 다음과 같이 장애 모드를 재조정하려고 시도합니다.

  • 하나 이상의 서비스 인스턴스를 만들지 못한 경우 AWS Proton는 새로 만든 모든 서비스 인스턴스를 디프로비저닝하려고 시도하고 spec을 이전 상태로 되돌립니다. 서비스 인스턴스는 삭제되지 않으며 파이프라인을 어떤 식으로든 수정하지 않습니다.

  • 하나 이상의 서비스 인스턴스를 삭제하지 못한 경우 AWS Proton는 삭제된 인스턴스 없이 파이프라인을 다시 프로비저닝합니다. spec은 추가된 인스턴스를 포함하고 삭제 대상으로 표시된 인스턴스는 제외하도록 업데이트되었습니다.

  • 파이프라인 프로비저닝에 실패할 경우 롤백은 시도되지 않으며 서비스와 파이프라인 모두 실패한 업데이트 상태를 반영합니다.

태깅 및 서비스 편집

서비스 편집의 일부로 서비스 인스턴스를 추가하면 AWS 관리형 태그가 새 인스턴스 및 프로비저닝된 리소스에 전파되고 해당 리소스에 대해 자동으로 생성됩니다. 새 태그를 만들면 해당 태그는 새 인스턴스에만 적용됩니다. 기존 서비스 고객 관리형 태그도 새 인스턴스에 전파됩니다. 자세한 내용은 AWS Proton 리소스 및 태깅 단원을 참조하세요.