서비스 편집 - 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"

다음 예제 CLIlist-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"

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

다음 목록은 기존 서비스 인스턴스에 대한 매개 변수 값 변경 내용을spec 포함하지 않도록 하는 데 사용할"${Proton::CURRENT_VAL}" 수 있는 방법을 보여줍니다.

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다음과 같이 장애 모드를 수정하려고 시도합니다.

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

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

  • 파이프라인이 프로비저닝에 실패하면 롤백이 시도되지 않고 서비스와 파이프라인 모두에 실패한 업데이트 상태가 반영됩니다.

태깅 및 서비스 편집

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