AWS CloudFormation StackSets - AWS CodePipeline

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

AWS CloudFormation StackSets

CodePipeline CI/CD 프로세스의 일부로 AWS CloudFormation StackSets 작업을 수행할 수 있는 기능을 제공합니다. 스택 세트를 사용하면 단일 템플릿을 사용하여 여러 AWS 지역의 AWS 계정에 스택을 만들 수 있습니다. AWS CloudFormation 각 스택에 포함된 모든 리소스는 스택 세트의 AWS CloudFormation 템플릿에 의해 정의됩니다. 스택 세트를 생성할 때 사용할 템플릿과 템플릿에 필요한 파라미터 및 기능을 지정합니다.

의 개념에 대한 자세한 내용은 AWS CloudFormation 사용 설명서의 StackSets 개념을 참조하십시오. AWS CloudFormation StackSets

함께 사용하는 두 가지 작업 유형을 AWS CloudFormation StackSets 통해 파이프라인을 통합할 수 있습니다.

  • CloudFormationStackSet 작업은 파이프라인 소스 위치에 저장된 템플릿에서 스택 세트 또는 스택 인스턴스를 생성하거나 업데이트합니다. 스택 세트를 생성하거나 업데이트할 때마다 해당 변경 내용을 지정된 인스턴스에 배포하기 시작합니다. 콘솔에서 파이프라인을 만들거나 편집할 때 CloudFormation Stack Set 작업 공급자를 선택할 수 있습니다.

  • CloudFormationStackInstances 작업은 CloudFormationStackSet 작업의 변경 내용을 지정된 인스턴스에 배포하고, 새 스택 인스턴스를 만들고, 지정된 인스턴스에 대한 파라미터 재정의를 정의합니다. 콘솔에서 기존 파이프라인을 편집할 때 CloudFormation Stack Instances 작업 공급자를 선택할 수 있습니다.

이러한 작업을 사용하여 대상 AWS 계정 또는 대상 Organizations AWS 조직 단위 ID에 배포할 수 있습니다.

참고

대상 AWS Organizations 계정 또는 조직 단위 ID에 배포하고 서비스 관리 권한 모델을 사용하려면, Organizations 간의 AWS CloudFormation StackSets 신뢰할 수 있는 액세스를 활성화해야 합니다. AWS 자세한 내용은 Stackset을 통한 신뢰할 수 있는 AWS CloudFormation 액세스 활성화를 참조하십시오.

액션 작동 방식 AWS CloudFormation StackSets

CloudFormationStackSet 작업은 작업이 처음 실행되는지 여부에 따라 리소스를 생성하거나 업데이트합니다.

CloudFormationStackSet 작업은 스택 세트를 생성하거나 업데이트하고 해당 변경 내용을 지정된 인스턴스에 배포합니다.

참고

이 작업을 사용하여 스택 인스턴스 추가를 포함하는 업데이트를 수행하면 새 인스턴스가 먼저 배포되고 업데이트가 마지막으로 완료됩니다. 새 인스턴스는 먼저 이전 버전을 받은 다음 모든 인스턴스에 업데이트가 적용됩니다.

  • 만들기: 지정된 인스턴스가 없고 스택 세트가 존재하지 않는 경우 CloudFormationStackSet액션은 인스턴스를 만들지 않고 스택 세트를 만듭니다.

  • 업데이트: 이미 생성된 스택 세트에 대해 CloudFormationStackSet작업을 실행하면 해당 작업이 스택 세트를 업데이트합니다. 지정된 인스턴스가 없고 스택 세트가 이미 있는 경우 모든 인스턴스가 업데이트됩니다. 이 작업을 사용하여 특정 인스턴스를 업데이트하면 나머지 모든 인스턴스가 OUTDATED 상태로 전환됩니다.

    CloudFormationStackSet액션을 사용하여 다음과 같은 방법으로 스택 세트를 업데이트할 수 있습니다.

    • 일부 또는 모든 인스턴스에서 템플릿을 업데이트합니다.

    • 일부 또는 모든 인스턴스의 파라미터를 업데이트합니다.

    • 스택 세트의 실행 역할을 업데이트합니다(관리자 역할에 지정된 실행 역할과 일치해야 함).

    • 권한 모델을 변경합니다(인스턴스가 생성되지 않은 경우에만 해당).

    • 스택 세트 권한 모델이 Service Managed인 경우 AutoDeployment를 활성화/비활성화합니다.

    • 스택 세트 권한 모델이 다음과 같으면 멤버 계정에서 위임 관리자로 활동하세요. Service Managed

    • 관리자 역할을 업데이트합니다.

    • 스택 세트에 대한 설명을 업데이트합니다.

    • 스택 세트 업데이트에 배포 대상을 추가하여 새 스택 인스턴스를 생성합니다.

CloudFormationStackInstances 작업을 수행하면 새 스택 인스턴스가 생성되거나 오래된 스택 인스턴스가 업데이트됩니다. 스택 세트를 업데이트하면 인스턴스가 만료되지만, 스택 세트 내의 모든 인스턴스가 업데이트되지는 않습니다.

  • 생성: 스택이 이미 있는 경우 CloudFormationStackInstances 작업은 인스턴스만 업데이트하고 스택 인스턴스는 생성하지 않습니다.

  • 업데이트: CloudFormationStackSet 작업이 수행된 후 템플릿 또는 파라미터가 일부 인스턴스에서만 업데이트된 경우 나머지는 OUTDATED로 표시됩니다. 이후 파이프라인 단계에서 CloudFormationStackInstances는 스택의 나머지 인스턴스를 웨이브 형태로 업데이트하여 모든 인스턴스가 CURRENT로 표시되도록 합니다. 이 작업을 사용하여 인스턴스를 추가하거나 새 인스턴스 또는 기존 인스턴스의 파라미터를 재정의할 수도 있습니다.

업데이트의 일환으로 CloudFormationStackSetCloudFormationStackInstances 작업은 새 배포 대상을 지정하여 새 스택 인스턴스를 만들 수 있습니다.

업데이트의 일부로, CloudFormationStackSetCloudFormationStackInstances 작업은 스택 세트, 인스턴스 또는 리소스를 삭제하지 않습니다. 액션이 스택을 업데이트하지만 업데이트할 모든 인스턴스를 지정하지 않는 경우 업데이트하도록 지정되지 않은 인스턴스는 업데이트에서 제거되고 OUTDATED 상태로 설정됩니다.

배포 중에 스택 인스턴스에는 인스턴스에 대한 배포가 실패한 경우 OUTDATED 상태가 표시될 수도 있습니다.

파이프라인에서 StackSets 작업을 구조화하는 방법

가장 좋은 방법은 스택 세트가 생성되고 처음에 하위 집합 또는 단일 인스턴스에 배포되도록 파이프라인을 구성하는 것입니다. 배포를 테스트하고 생성된 스택 세트를 확인한 후 나머지 인스턴스가 생성되고 업데이트되도록 CloudFormationStackInstances 작업을 추가하세요.

콘솔 또는 CLI를 사용하여 다음과 같이 권장 파이프라인 구조를 생성합니다.

  1. 소스 작업(필수)을 사용하고 CloudFormationStackSet 작업을 배포 작업으로 사용하여 파이프라인을 생성합니다. 파이프라인을 실행합니다.

  2. 파이프라인이 처음 실행되면 CloudFormationStackSet 작업을 통해 스택 세트와 하나 이상의 초기 인스턴스가 생성됩니다. 스택 세트 생성을 확인하고 초기 인스턴스로의 배포를 검토하세요. 예를 들어, us-east-1이 지정된 리전인 계정 Account-A에 대한 초기 스택 세트 생성의 경우 스택 세트를 사용하여 스택 인스턴스가 생성됩니다.

    스택 인스턴스 지역 상태 표시기
    StackInstanceID-1 us-east-1 CURRENT
  3. 파이프라인을 편집하여 지정한 대상에 대한 스택 인스턴스를 생성/업데이트하는 두 번째 배포 작업으로 CloudFormationStackInstances를 추가하세요. 예를 들어, us-east-2eu-central-1 리전이 지정된 계정 Account-A에 대한 스택 인스턴스 생성의 경우 나머지 스택 인스턴스가 생성되고 초기 인스턴스는 다음과 같이 업데이트된 상태로 유지됩니다.

    스택 인스턴스 지역 상태 표시기
    StackInstanceID-1 us-east-1 CURRENT
    StackInstanceID-2 us-east-2 CURRENT
    StackInstanceID-3 eu-central-1 CURRENT
  4. 필요에 따라 파이프라인을 실행하여 스택 세트를 업데이트하고 스택 인스턴스를 업데이트하거나 생성합니다.

작업 구성에서 배포 대상을 제거한 스택 업데이트를 시작하면 업데이트하도록 지정되지 않은 스택 인스턴스가 배포에서 제거되고 OUTDATED 상태로 이동합니다. 예를 들어 작업 구성에서 us-east-2 리전이 제거된 계정 Account-A에 대한 스택 인스턴스 업데이트의 경우 다음과 같이 나머지 스택 인스턴스가 생성되고 제거된 인스턴스는 OUTDATE로 설정됩니다.

스택 인스턴스 지역 상태 표시기
StackInstanceID-1 us-east-1 CURRENT
StackInstanceID-2 us-east-2 OUTDATED
StackInstanceID-3 eu-central-1 CURRENT

스택 세트 배포 모범 사례에 대한 자세한 내용은 사용 설명서의 모범 사례를 참조하십시오. StackSets AWS CloudFormation

CloudFormationStackSet 작업

이 작업은 파이프라인 소스 위치에 저장된 템플릿에서 스택 세트를 생성하거나 업데이트합니다.

스택 세트를 정의하면 구성 파라미터에서 지정된 대상 계정 및 리전에서 스택을 생성, 업데이트 또는 삭제할 수 있습니다. 스택을 생성, 업데이트 또는 삭제하면 작업이 수행될 리전의 순서, 스택 작업이 중단되는 내결함성 비율, 스택에 대해 작업이 동시에 수행될 수 있는 계정 수 등의 기타 기본 설정도 지정할 수 있습니다.

스택 세트는 리전 리소스입니다. 한 AWS 지역에서 스택 세트를 생성하는 경우 다른 지역에서 해당 스택 세트에 액세스할 수 없습니다.

이 작업을 스택 세트에 대한 업데이트 작업으로 사용하는 경우 하나 이상의 스택 인스턴스를 배포하지 않으면 스택을 업데이트할 수 없습니다.

작업 유형

  • 범주: Deploy

  • 소유자: AWS

  • 공급자: CloudFormationStackSet

  • 버전: 1

구성 파라미터

StackSetName

필수 여부: 예

스택 세트와 연결할 이름입니다. 이 이름은 생성한 리전 내에서 고유해야 합니다.

이름에는 영숫자 및 하이픈 문자만 포함될 수 있습니다. 알파벳 문자로 시작해야 하고 128자 이하여야 합니다.

설명

필수 여부: 아니요

스택 세트에 대한 설명입니다. 이를 사용하여 스택 세트의 용도나 기타 관련 정보를 설명할 수 있습니다.

TemplatePath

필수 여부: 예

스택 세트의 리소스를 정의하는 템플릿의 위치입니다. 이는 최대 크기가 460,800바이트인 템플릿을 가리켜야 합니다.

소스 아티팩트 이름 및 템플릿 파일의 경로를 다음 예제와 같이 "InputArtifactName::TemplateFileName" 형식으로 입력합니다.

SourceArtifact::template.txt
파라미터

필수 여부: 아니요

배포 중에 업데이트되는 스택 세트의 템플릿 파라미터 목록입니다.

파라미터를 리터럴 목록 또는 파일 경로로 제공할 수 있습니다.

  • 다음과 같은 간편 구문 형식(ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string)으로 파라미터를 입력할 수 있습니다. 이러한 데이터 형식에 대한 자세한 내용은 템플릿 파라미터 데이터 유형 단원을 참조하세요.

    다음 예제는 my-bucket 값의 BucketName이라는 이름의 파라미터를 보여줍니다.

    ParameterKey=BucketName,ParameterValue=my-bucket

    다음 예제는 여러 파라미터가 있는 항목을 보여줍니다.

    ParameterKey=BucketName,ParameterValue=my-bucket ParameterKey=Asset1,ParameterValue=true ParameterKey=Asset2,ParameterValue=true
  • 다음 예제와 같이 "InputArtifactName::ParametersFileName" 형식에 입력된 템플릿 파라미터 재지정 목록이 포함된 파일 위치를 입력할 수 있습니다.

    SourceArtifact::parameters.txt

    다음 예제에서는 parameters.txt에 대한 파일 콘텐츠를 보여줍니다.

    [ { "ParameterKey": "KeyName", "ParameterValue": "true" }, { "ParameterKey": "KeyName", "ParameterValue": "true" } ]
기능

필수 여부: 아니요

템플릿의 리소스 유형에 따라 템플릿이 리소스를 생성하고 업데이트할 수 있음을 나타냅니다.

스택 템플릿에 IAM 리소스가 있거나 매크로가 포함된 템플릿에서 직접 스택을 만들 경우 이 속성을 사용해야 합니다. 이러한 방식으로 AWS CloudFormation 작업을 성공적으로 수행하려면 다음 기능 중 하나를 사용해야 합니다.

  • CAPABILITY_IAM

  • CAPABILITY_NAMED_IAM

기능 사이에 공백 없이 쉼표를 사용하여 둘 이상의 기능을 지정할 수 있습니다. CloudFormationStackSet작업 구성 예시의 예제는 여러 기능이 있는 항목을 보여줍니다.

PermissionModel

필수 여부: 아니요

IAM 역할을 생성하고 관리하는 방법을 결정합니다. 필드를 지정하지 않으면 기본값이 사용됩니다. 자세한 내용은 스택 세트 작업에 대한 권한 모델을 참조하세요.

유효한 값은 다음과 같습니다.

  • SELF_MANAGED(기본값): 대상 계정에 배포하려면 관리자 및 실행 역할을 생성해야 합니다.

  • SERVICE_MANAGED: AWS Organizations에서 관리하는 계정에 배포하는 데 필요한 IAM 역할을 AWS CloudFormation StackSets 자동으로 생성합니다. 이를 위해서는 계정이 조직 멤버이어야 합니다.

참고

이 파라미터는 스택 세트에 스택 인스턴스가 없는 경우에만 변경할 수 있습니다.

AdministrationRoleArn
참고

여러 계정에서 작업을 AWS CloudFormation StackSets 수행하므로 스택 세트를 생성하려면 먼저 해당 계정에서 필요한 권한을 정의해야 합니다.

필수 여부: 아니요

참고

이 파라미터는 SELF_MANAGED 권한 모델의 경우 선택 사항이며 SERVICE_MANAGED 권한 모델에는 사용되지 않습니다.

스택 세트 작업을 수행하는 데 사용되는 관리자 계정의 IAM 역할 ARN입니다.

이름에는 영숫자 문자, _+=,.@- 문자 중 하나를 사용할 수 있으며 공백은 사용할 수 없습니다. 이름은 대/소문자를 구분하지 않습니다. 이 역할 이름은 최소 길이 20자, 최대 길이 2,048자이어야 합니다. 역할 이름은 계정 내에서 고유해야 합니다. 여기에 지정된 역할 이름은 기존 역할 이름이어야 합니다. 역할 이름을 지정하지 않으면 로 설정됩니다 AWSCloudFormationStackSetAdministrationRole. 지정하는 ServiceManaged 경우 역할 이름을 정의해서는 안 됩니다.

ExecutionRoleName
참고

여러 계정에서 작업을 AWS CloudFormation StackSets 수행하므로 스택 세트를 만들려면 먼저 해당 계정에서 필요한 권한을 정의해야 합니다.

필수 여부: 아니요

참고

이 파라미터는 SELF_MANAGED 권한 모델의 경우 선택 사항이며 SERVICE_MANAGED 권한 모델에는 사용되지 않습니다.

스택 세트 작업을 수행하는 데 사용되는 대상 계정의 IAM 역할 이름입니다. 이름에는 영숫자 문자, _+=,.@- 문자 중 하나를 사용할 수 있으며 공백은 사용할 수 없습니다. 이름은 대/소문자를 구분하지 않습니다. 이 역할 이름은 최소 길이 1자, 최대 길이 64자이어야 합니다. 역할 이름은 계정 내에서 고유해야 합니다. 여기에 지정된 역할 이름은 기존 역할 이름이어야 합니다. 사용자 정의된 실행 역할을 사용하는 경우 이 역할을 지정하지 마십시오. 역할 이름을 지정하지 않으면 AWSCloudFormationStackSetExecutionRole로 설정됩니다. Service_Managed를 true로 설정하는 경우 역할 이름을 정의해서는 안 됩니다.

OrganizationsAutoDeployment

필수 여부: 아니요

참고

이 파라미터는 SERVICE_MANAGED 권한 모델의 경우 선택 사항이며 SELF_MANAGED 권한 모델에는 사용되지 않습니다.

대상 조직 또는 OU (조직 구성 단위) 에 추가된 Organizations 계정에 AWS CloudFormation StackSets 자동으로 배포할지 AWS 여부를 설명합니다. OrganizationsAutoDeployment가 지정된 경우 DeploymentTargetsRegions를 지정하지 마십시오.

참고

OrganizationsAutoDeployment에 입력이 제공되지 않은 경우 기본값은 Disabled입니다.

유효한 값은 다음과 같습니다.

  • Enabled. 필수 여부: 아니요.

    StackSets 지정된 지역의 대상 조직 또는 OU (조직 단위) 에 추가된 추가 스택 인스턴스를 Organizations 계정에 자동으로 배포합니다. AWS 대상 조직 또는 OU에서 계정을 제거하는 경우 지정된 지역의 계정에서 스택 인스턴스를 AWS CloudFormation StackSets 삭제합니다.

  • Disabled. 필수 여부: 아니요.

    StackSets 지정된 지역의 대상 조직 또는 OU (조직 단위) 에 추가된 추가 스택 인스턴스를 Organizations 계정에 자동으로 배포하지 않습니다. AWS

  • EnabledWithStackRetention. 필수 여부: 아니요.

    대상 조직 또는 OU에서 계정이 제거될 때 스택 리소스가 유지됩니다.

DeploymentTargets

필수 여부: 아니요

참고

SERVICE_MANAGED 권한 모델의 경우 배포 대상에 조직 루트 ID 또는 조직 단위 ID를 제공할 수 있습니다. SELF_MANAGED 권한 모델의 경우 계정만 제공할 수 있습니다.

참고

이 파라미터를 선택한 경우 리전도 선택해야 합니다.

스택 세트 인스턴스를 만들거나 업데이트해야 하는 AWS 계정 또는 조직 구성 단위 ID 목록입니다.

  • 계정:

    계정을 리터럴 목록 또는 파일 경로로 제공할 수 있습니다.

    • 리터럴: 다음 예제와 같이 간편 구문 형식 account_ID,account_ID로 파라미터를 입력합니다.

      111111222222,333333444444
    • 파일 경로: 스택 세트 인스턴스를 생성/업데이트해야 하는 AWS 계정 목록이 들어 있는 파일의 위치를 형식으로 입력합니다. InputArtifactName::AccountsFileName 파일 경로를 사용하여 계정 또는 OrganizationalUnitIds중 하나를 지정하는 경우 파일 형식은 다음 예와 같이 JSON이어야 합니다.

      SourceArtifact::accounts.txt

      다음 예제에서는 accounts.txt에 대한 파일 콘텐츠를 보여줍니다.

      [ "111111222222" ]

      다음 예제는 두 개 이상의 계정을 나열할 때 accounts.txt의 파일 내용을 보여줍니다.

      [ "111111222222","333333444444" ]
  • OrganizationalUnitIds:

    참고

    이 파라미터는 SERVICE_MANAGED 권한 모델의 경우 선택 사항이며 SELF_MANAGED 권한 모델에는 사용되지 않습니다. 선택한 OrganizationsAutoDeployment경우에는 이 옵션을 사용하지 마십시오.

    관련 스택 인스턴스를 업데이트할 AWS 조직 단위입니다.

    조직 단위 ID를 리터럴 목록 또는 파일 경로로 제공할 수 있습니다.

    • 리터럴: 다음 예제와 같이 쉼표로 구분하여 문자열 배열을 입력합니다.

      ou-examplerootid111-exampleouid111,ou-examplerootid222-exampleouid222
    • 파일 경로: 스택 세트 인스턴스를 만들거나 업데이트할 목록이 OrganizationalUnitIds 들어 있는 파일의 위치입니다. 파일 경로를 사용하여 계정 또는 OrganizationalUnitIds중 하나를 지정하는 경우 파일 형식은 다음 예와 같이 JSON이어야 합니다.

      파일 경로를 InputArtifactName::OrganizationalUnitIdsFileName 형식으로 입력합니다.

      SourceArtifact::OU-IDs.txt

      다음 예제에서는 OU-IDs.txt에 대한 파일 콘텐츠를 보여줍니다.

      [ "ou-examplerootid111-exampleouid111","ou-examplerootid222-exampleouid222" ]
리전

필수 여부: 아니요

참고

이 매개 변수를 선택한 경우 이 매개 변수도 선택해야 DeploymentTargets합니다.

스택 세트 인스턴스가 생성되거나 업데이트된 AWS 지역 목록. 리전은 입력한 순서대로 업데이트됩니다.

다음 예와 같이 유효한 AWS 지역 목록을 형식으로 Region1,Region2 입력합니다.

us-west-2,us-east-1
FailureTolerancePercentage

필수 여부: 아니요

해당 지역에서 작업을 AWS CloudFormation 중지하기 전에 이 스택 작업이 실패할 수 있는 지역별 계정의 비율입니다. 특정 지역에서 작업이 중지된 경우 후속 지역에서는 작업을 시도하지 AWS CloudFormation 않습니다. 지정된 비율을 기준으로 계정 수를 계산할 때는 다음 정수로 AWS CloudFormation 반올림합니다.

MaxConcurrentPercentage

필수 여부: 아니요

한 번에 이 작업을 수행할 최대 계정 백분율입니다. 지정된 백분율을 기준으로 계정 수를 계산할 때는 다음 정수로 AWS CloudFormation 반올림합니다. 반올림하여 0이 되는 경우 숫자를 1로 대신 AWS CloudFormation 설정합니다. 이 설정을 사용하여 최대값을 지정하지만 대규모 배포의 경우 동시에 실행된 실제 계정 수는 서비스 조절로 인해 낮아질 수 있습니다.

RegionConcurrencyType

필수 여부: 아니요

리전 동시성 배포 파라미터를 구성하여 스택 세트를 AWS 리전 에 순차적으로 배포할지 병렬로 배포할지 지정할 수 있습니다. 여러 스택을 AWS 리전 병렬로 배포하도록 지역 동시성을 지정하면 전체 배포 시간이 더 빨라질 수 있습니다.

  • 병렬: 리전의 배포 실패가 지정된 내결함성을 초과하지 않는 한 스택 세트 배포가 동시에 수행됩니다.

  • 순차: 리전의 배포 실패가 지정된 내결함성을 초과하지 않는 한 스택 세트 배포가 동시에 수행됩니다. 기본 선택 항목은 [순차(Sequential)] 배포입니다.

ConcurrencyMode

필수 여부: 아니요

동시성 모드 사용하면 스택 세트 작업 중에 동시성 수준이 작동하는 방식을 선택할 수 있습니다(엄격한 내결함성 또는 소프트 내결함성 포함). 엄격한 내결함성을 사용하면 스택 세트 작업이 실패할 때마다 동시성이 감소하므로 배포 속도가 느려집니다. Soft Failure Tolerance는 안전 기능을 계속 활용하면서 배포 속도에 우선 순위를 둡니다. AWS CloudFormation

  • STRICT_FAILURE_TOLERANCE: 이 옵션은 실패한 계정 수가 특정 내결함성을 초과하지 않도록 동시성 수준을 동적으로 낮춥니다. 이는 기본 설정 동작입니다.

  • SOFT_FAILURE_TOLERANCE: 이 옵션은 내결함성을 실제 동시성에서 분리합니다. 이렇게 하면 실패 횟수에 관계없이 설정된 동시성 수준에서 스택 세트 작업을 실행할 수 있습니다.

CallAs

필수 여부: 아니요

참고

이 매개변수는 권한 모델에서는 선택 사항이며 SERVICE_MANAGED 권한 모델에는 사용되지 않습니다. SELF_MANAGED

조직의 관리 계정에서 활동하는지 아니면 구성원 계정의 위임 관리자로 활동하는지 지정합니다.

참고

이 파라미터가 로 DELEGATED_ADMIN 설정된 경우 파이프라인 IAM 역할에 권한이 organizations:ListDelegatedAdministrators 있는지 확인하십시오. 그렇지 않으면 다음과 Account used is not a delegated administrator 비슷한 오류가 발생하면서 실행 중에 작업이 실패합니다.

  • SELF: 스택 세트 배포는 관리 계정에 로그인한 상태에서 서비스 관리 권한을 사용합니다.

  • DELEGATED_ADMIN: 스택 세트 배포에는 위임된 관리자 계정에 로그인되어 있는 동안 서비스 관리 권한이 사용됩니다.

입력 아티팩트

CloudFormationStackSet 작업에 설정된 스택용 템플릿이 포함된 입력 아티팩트를 하나 이상 포함해야 합니다. 배포 대상, 계정, 파라미터 목록에 더 많은 입력 아티팩트를 포함할 수 있습니다.

  • 아티팩트 수: 1 to 3

  • 설명: 다음을 제공할 아티팩트를 포함할 수 있습니다.

    • 스택 템플릿 파일. TemplatePath 파라미터를 참조하십시오.

    • 파라미터 파일. Parameters 파라미터를 참조하십시오.

    • 계정 파일. DeploymentTargets 파라미터를 참조하십시오.

출력 아티팩트

  • 아티팩트 수: 0

  • 설명: 이 작업 유형에는 출력 아티팩트가 적용되지 않습니다.

출력 변수

이 작업을 구성하면 파이프라인에서 다운스트림 작업의 작업 구성에서 참조할 수 있는 변수가 생성됩니다. 이러한 변수를 다운스트림 작업 구성에서 사용할 수 있도록 네임스페이스를 사용하여 작업을 구성합니다.

  • StackSetId: 스택 세트의 ID.

  • OperationId: 스택 세트 작업의 ID.

자세한 정보는 Variables을 참조하세요.

CloudFormationStackSet작업 구성 예시

다음 예는 작업에 대한 CloudFormationStackSet작업 구성을 보여줍니다.

자체 관리형 권한 모델의 예

다음 예는 입력한 배포 대상이 AWS 계정 ID인 CloudFormationStackSet작업을 보여줍니다.

YAML
Name: CreateStackSet ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormationStackSet Version: '1' RunOrder: 1 Configuration: DeploymentTargets: '111111222222' FailureTolerancePercentage: '20' MaxConcurrentPercentage: '25' PermissionModel: SELF_MANAGED Regions: us-east-1 StackSetName: my-stackset TemplatePath: 'SourceArtifact::template.json' OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact Region: us-west-2 Namespace: DeployVariables
JSON
{ "Name": "CreateStackSet", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "CloudFormationStackSet", "Version": "1" }, "RunOrder": 1, "Configuration": { "DeploymentTargets": "111111222222", "FailureTolerancePercentage": "20", "MaxConcurrentPercentage": "25", "PermissionModel": "SELF_MANAGED", "Regions": "us-east-1", "StackSetName": "my-stackset", "TemplatePath": "SourceArtifact::template.json" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "SourceArtifact" } ], "Region": "us-west-2", "Namespace": "DeployVariables" }

서비스 관리형 권한 모델의 예

다음 예는 스택 보존과 함께 AWS Organizations에 자동 배포하는 옵션을 활성화하는 서비스 관리형 권한 모델의 CloudFormationStackSet작업을 보여줍니다.

YAML
Name: Deploy ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormationStackSet Version: '1' RunOrder: 1 Configuration: Capabilities: 'CAPABILITY_IAM,CAPABILITY_NAMED_IAM' OrganizationsAutoDeployment: EnabledWithStackRetention PermissionModel: SERVICE_MANAGED StackSetName: stacks-orgs TemplatePath: 'SourceArtifact::template.json' OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact Region: eu-central-1 Namespace: DeployVariables
JSON
{ "Name": "Deploy", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "CloudFormationStackSet", "Version": "1" }, "RunOrder": 1, "Configuration": { "Capabilities": "CAPABILITY_IAM,CAPABILITY_NAMED_IAM", "OrganizationsAutoDeployment": "EnabledWithStackRetention", "PermissionModel": "SERVICE_MANAGED", "StackSetName": "stacks-orgs", "TemplatePath": "SourceArtifact::template.json" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "SourceArtifact" } ], "Region": "eu-central-1", "Namespace": "DeployVariables" }

액션은 CloudFormationStackInstances

이 작업은 새 인스턴스를 생성하고 지정된 인스턴스에 스택 세트를 배포합니다. 스택 인스턴스는 리전 내 대상 계정에서 스택에 대한 참조입니다. 스택 인스턴스는 스택 없이 존재할 수 있습니다. 예를 들어, 스택 생성이 성공적이지 않은 경우 스택 인스턴스는 스택 생성 실패에 대한 이유를 표시합니다. 스택 인스턴스는 하나의 스택 세트에만 연결됩니다.

스택 세트를 처음 생성한 후에는 CloudFormationStackInstances를 사용하여 새 스택 인스턴스를 추가할 수 있습니다. 스택 세트 인스턴스 생성 또는 업데이트 작업 중에 스택 인스턴스 수준에서 템플릿 파라미터 값을 재정의할 수 있습니다.

각 스택 세트에는 템플릿 하나와 템플릿 파라미터 세트가 있습니다. 템플릿 또는 템플릿 파라미터를 업데이트하면 전체 세트에 대해 업데이트됩니다. 그러면 변경 내용이 해당 인스턴스에 배포될 때까지 모든 인스턴스 상태가 OUTDATED로 설정됩니다.

예를 들어 템플릿에 값이 prodstage의 파라미터가 포함된 경우 특정 인스턴스의 파라미터 값을 재정의하려면 해당 파라미터의 값을 beta 또는 gamma로 재정의할 수 있습니다.

작업 유형

  • 범주: Deploy

  • 소유자: AWS

  • 공급자: CloudFormationStackInstances

  • 버전: 1

구성 파라미터

StackSetName

필수 여부: 예

스택 세트와 연결할 이름입니다. 이 이름은 생성한 리전 내에서 고유해야 합니다.

이름에는 영숫자 및 하이픈 문자만 포함될 수 있습니다. 알파벳 문자로 시작해야 하고 128자 이하여야 합니다.

DeploymentTargets

필수 여부: 아니요

참고

SERVICE_MANAGED 권한 모델의 경우 배포 대상에 조직 루트 ID 또는 조직 단위 ID를 제공할 수 있습니다. SELF_MANAGED 권한 모델의 경우 계정만 제공할 수 있습니다.

참고

이 파라미터를 선택한 경우 리전도 선택해야 합니다.

스택 세트 인스턴스를 생성/업데이트해야 하는 AWS 계정 또는 조직 구성 단위 ID 목록입니다.

  • 계정:

    계정을 리터럴 목록 또는 파일 경로로 제공할 수 있습니다.

    • 리터럴: 다음 예제와 같이 간편 구문 형식 account_ID,account_ID로 파라미터를 입력합니다.

      111111222222,333333444444
    • 파일 경로: 스택 세트 인스턴스를 생성/업데이트해야 하는 AWS 계정 목록이 들어 있는 파일의 위치를 형식으로 입력합니다. InputArtifactName::AccountsFileName 파일 경로를 사용하여 계정 또는 OrganizationalUnitIds중 하나를 지정하는 경우 파일 형식은 다음 예와 같이 JSON이어야 합니다.

      SourceArtifact::accounts.txt

      다음 예제에서는 accounts.txt에 대한 파일 콘텐츠를 보여줍니다.

      [ "111111222222" ]

      다음 예제는 두 개 이상의 계정을 나열할 때 accounts.txt의 파일 내용을 보여줍니다.

      [ "111111222222","333333444444" ]
  • OrganizationalUnitIds:

    참고

    이 파라미터는 SERVICE_MANAGED 권한 모델의 경우 선택 사항이며 SELF_MANAGED 권한 모델에는 사용되지 않습니다. 선택한 OrganizationsAutoDeployment경우에는 이 옵션을 사용하지 마십시오.

    관련 스택 인스턴스를 업데이트할 AWS 조직 단위입니다.

    조직 단위 ID를 리터럴 목록 또는 파일 경로로 제공할 수 있습니다.

    • 리터럴: 다음 예제와 같이 쉼표로 구분하여 문자열 배열을 입력합니다.

      ou-examplerootid111-exampleouid111,ou-examplerootid222-exampleouid222
    • 파일 경로: 스택 세트 인스턴스를 만들거나 업데이트할 목록이 OrganizationalUnitIds 들어 있는 파일의 위치입니다. 파일 경로를 사용하여 계정 또는 OrganizationalUnitIds중 하나를 지정하는 경우 파일 형식은 다음 예와 같이 JSON이어야 합니다.

      파일 경로를 InputArtifactName::OrganizationalUnitIdsFileName 형식으로 입력합니다.

      SourceArtifact::OU-IDs.txt

      다음 예제에서는 OU-IDs.txt에 대한 파일 콘텐츠를 보여줍니다.

      [ "ou-examplerootid111-exampleouid111","ou-examplerootid222-exampleouid222" ]
리전

필수 여부: 예

참고

이 매개 변수를 선택한 경우 이 매개 변수도 선택해야 DeploymentTargets합니다.

스택 세트 인스턴스가 생성되거나 업데이트된 AWS 지역 목록. 리전은 입력한 순서대로 업데이트됩니다.

다음 예와 같이 유효한 AWS 지역 목록을 Region1,Region2 :형식으로 입력합니다.

us-west-2,us-east-1
ParameterOverrides

필수 여부: 아니요

선택한 스택 인스턴스에서 재정의할 스택 세트 파라미터의 목록입니다. 재정의된 파라미터 값은 지정된 계정 및 리전의 모든 스택 인스턴스에 적용됩니다.

파라미터를 리터럴 목록 또는 파일 경로로 제공할 수 있습니다.

  • 다음과 같은 간편 구문 형식(ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string ParameterKey=string,ParameterValue=string,UsePreviousValue=boolean,ResolvedValue=string)으로 파라미터를 입력할 수 있습니다. 이러한 데이터 형식에 대한 자세한 내용은 템플릿 파라미터 데이터 유형 단원을 참조하세요.

    다음 예제는 my-bucket 값의 BucketName이라는 이름의 파라미터를 보여줍니다.

    ParameterKey=BucketName,ParameterValue=my-bucket

    다음 예제는 여러 파라미터가 있는 항목을 보여줍니다.

    ParameterKey=BucketName,ParameterValue=my-bucket ParameterKey=Asset1,ParameterValue=true ParameterKey=Asset2,ParameterValue=true
  • 다음 예제와 같이 InputArtifactName::ParameterOverridessFileName 형식에 입력된 템플릿 파라미터 재지정 목록이 포함된 파일 위치를 입력할 수 있습니다.

    SourceArtifact::parameter-overrides.txt

    다음 예제에서는 parameter-overrides.txt에 대한 파일 콘텐츠를 보여줍니다.

    [ { "ParameterKey": "KeyName", "ParameterValue": "true" }, { "ParameterKey": "KeyName", "ParameterValue": "true" } ]
FailureTolerancePercentage

필수 여부: 아니요

해당 지역에서 작업을 AWS CloudFormation 중지하기 전에 이 스택 작업이 실패할 수 있는 지역별 계정 비율입니다. 특정 지역에서 작업이 중지된 경우 후속 지역에서는 작업을 시도하지 AWS CloudFormation 않습니다. 지정된 비율을 기준으로 계정 수를 계산할 때는 다음 정수로 AWS CloudFormation 반올림합니다.

MaxConcurrentPercentage

필수 여부: 아니요

한 번에 이 작업을 수행할 최대 계정 백분율입니다. 지정된 백분율을 기준으로 계정 수를 계산할 때는 다음 정수로 AWS CloudFormation 반올림합니다. 반올림하여 0이 되는 경우 숫자를 1로 대신 AWS CloudFormation 설정합니다. 최대값을 지정하지만 대규모 배포의 경우 동시에 실행된 실제 계정 수는 서비스 조절로 인해 낮아질 수 있습니다.

RegionConcurrencyType

필수 여부: 아니요

리전 동시성 배포 파라미터를 구성하여 스택 세트를 AWS 리전 에 순차적으로 배포할지 병렬로 배포할지 지정할 수 있습니다. 여러 스택을 AWS 리전 병렬로 배포하도록 지역 동시성을 지정하면 전체 배포 시간이 더 빨라질 수 있습니다.

  • 병렬: 리전의 배포 실패가 지정된 내결함성을 초과하지 않는 한 스택 세트 배포가 동시에 수행됩니다.

  • 순차: 리전의 배포 실패가 지정된 내결함성을 초과하지 않는 한 스택 세트 배포가 동시에 수행됩니다. 기본 선택 항목은 [순차(Sequential)] 배포입니다.

ConcurrencyMode

필수 여부: 아니요

동시성 모드 사용하면 스택 세트 작업 중에 동시성 수준이 작동하는 방식을 선택할 수 있습니다(엄격한 내결함성 또는 소프트 내결함성 포함). 엄격한 내결함성을 사용하면 스택 세트 작업이 실패할 때마다 동시성이 감소하므로 배포 속도가 느려집니다. Soft Failure Tolerance는 안전 기능을 계속 활용하면서 배포 속도에 우선 순위를 둡니다. AWS CloudFormation

  • STRICT_FAILURE_TOLERANCE: 이 옵션은 실패한 계정 수가 특정 내결함성을 초과하지 않도록 동시성 수준을 동적으로 낮춥니다. 이는 기본 설정 동작입니다.

  • SOFT_FAILURE_TOLERANCE: 이 옵션은 내결함성을 실제 동시성에서 분리합니다. 이렇게 하면 실패 횟수에 관계없이 설정된 동시성 수준에서 스택 세트 작업을 실행할 수 있습니다.

CallAs

필수 여부: 아니요

참고

이 매개변수는 권한 모델에서는 선택 사항이며 SERVICE_MANAGED 권한 모델에는 사용되지 않습니다. SELF_MANAGED

조직의 관리 계정에서 활동하는지 아니면 구성원 계정의 위임 관리자로 활동하는지 지정합니다.

참고

이 파라미터가 로 DELEGATED_ADMIN 설정된 경우 파이프라인 IAM 역할에 권한이 organizations:ListDelegatedAdministrators 있는지 확인하십시오. 그렇지 않으면 다음과 Account used is not a delegated administrator 비슷한 오류가 발생하면서 실행 중에 작업이 실패합니다.

  • SELF: 스택 세트 배포는 관리 계정에 로그인한 상태에서 서비스 관리 권한을 사용합니다.

  • DELEGATED_ADMIN: 스택 세트 배포에는 위임된 관리자 계정에 로그인되어 있는 동안 서비스 관리 권한이 사용됩니다.

입력 아티팩트

CloudFormationStackInstances는 배포 대상 및 파라미터를 나열하는 아티팩트를 포함할 수 있습니다.

  • 아티팩트 수: 0 to 2

  • 설명: 선택적으로 스택 세트 작업은 다음의 용도로 아티팩트를 입력으로 수락합니다.

    • 사용할 파라미터 파일을 제공합니다. ParameterOverrides 파라미터를 참조하십시오.

    • 사용할 대상 계정 파일을 제공합니다. DeploymentTargets 파라미터를 참조하십시오.

출력 아티팩트

  • 아티팩트 수: 0

  • 설명: 이 작업 유형에는 출력 아티팩트가 적용되지 않습니다.

출력 변수

이 작업을 구성하면 파이프라인에서 다운스트림 작업의 작업 구성에서 참조할 수 있는 변수가 생성됩니다. 이러한 변수를 다운스트림 작업 구성에서 사용할 수 있도록 네임스페이스를 사용하여 작업을 구성합니다.

  • StackSetId: 스택 세트의 ID.

  • OperationId: 스택 세트 작업의 ID.

자세한 정보는 Variables을 참조하세요.

예제 작업 구성

다음 예제는 작업에 대한 CloudFormationStackInstances작업 구성을 보여줍니다.

자체 관리형 권한 모델의 예

다음 예제는 입력한 배포 대상이 AWS 계정 ID인 CloudFormationStackInstances작업을 보여줍니다111111222222.

YAML
Name: my-instances ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormationStackInstances Version: '1' RunOrder: 2 Configuration: DeploymentTargets: '111111222222' Regions: 'us-east-1,us-east-2,us-west-1,us-west-2' StackSetName: my-stackset OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact Region: us-west-2
JSON
{ "Name": "my-instances", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "CloudFormationStackInstances", "Version": "1" }, "RunOrder": 2, "Configuration": { "DeploymentTargets": "111111222222", "Regions": "us-east-1,us-east-2,us-west-1,us-west-2", "StackSetName": "my-stackset" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "SourceArtifact" } ], "Region": "us-west-2" }

서비스 관리형 권한 모델의 예

다음 예시는 배포 대상이 Organizations의 AWS 조직 단위 ID인 서비스 관리 권한 모델에 대한 CloudFormationStackInstances작업을 보여줍니다. ou-1111-1example

YAML
Name: Instances ActionTypeId: Category: Deploy Owner: AWS Provider: CloudFormationStackInstances Version: '1' RunOrder: 2 Configuration: DeploymentTargets: ou-1111-1example Regions: us-east-1 StackSetName: my-stackset OutputArtifacts: [] InputArtifacts: - Name: SourceArtifact Region: eu-central-1
JSON
{ "Name": "Instances", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "CloudFormationStackInstances", "Version": "1" }, "RunOrder": 2, "Configuration": { "DeploymentTargets": "ou-1111-1example", "Regions": "us-east-1", "StackSetName": "my-stackset" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "SourceArtifact" } ], "Region": "eu-central-1" }

스택 세트 작업에 대한 권한 모델

여러 계정에서 작업을 AWS CloudFormation StackSets 수행하므로 스택 세트를 만들려면 먼저 해당 계정에서 필요한 권한을 정의해야 합니다. 자체 관리형 권한 또는 서비스 관리형 권한을 통해 권한을 정의할 수 있습니다.

자체 관리 권한을 사용하면 필요한 두 개의 IAM 역할, StackSets 즉 스택 세트를 정의하는 계정의 관리자 역할과 스택 세트 인스턴스를 배포하는 각 계정의 실행 역할 (예: 스택 세트를 정의하는 계정 AWSCloudFormationStackSetExecutionRole 내 역할) 을 생성합니다. AWSCloudFormationStackSetAdministrationRole 이 권한 모델을 사용하면 사용자에게 IAM 역할을 생성할 권한이 있는 모든 AWS 계정에 배포할 StackSets 수 있습니다. 자세한 내용은 AWS CloudFormation 사용 설명서자체 관리형 권한 부여를 참조하세요.

참고

여러 계정에서 작업을 AWS CloudFormation StackSets 수행하므로 스택 세트를 생성하려면 먼저 해당 계정에서 필요한 권한을 정의해야 합니다.

서비스 관리 권한을 사용하면 AWS Organizations에서 관리하는 계정에 스택 인스턴스를 배포할 수 있습니다. 이 권한 모델을 사용하면 사용자 대신 IAM 역할을 StackSets 생성하므로 필요한 IAM 역할을 생성할 필요가 없습니다. 이 모델을 사용하면 나중에 조직에 추가되는 계정에 자동 배포를 활성화할 수도 있습니다. 사용 AWS CloudFormation 안내서의 AWS Organizations를 통한 신뢰할 수 있는 액세스 활성화를 참조하십시오.

템플릿 파라미터 데이터 유형

스택 세트 작업에 사용되는 템플릿 파라미터에는 다음 데이터 유형이 포함됩니다. 자세한 내용은 을 참조하십시오 DescribeStackSet.

ParameterKey
  • 설명: 파라미터와 연결된 키입니다. 특정 매개 변수에 키와 값을 지정하지 않는 경우 템플릿에 지정된 기본값을 AWS CloudFormation 사용합니다.

  • 예제

    "ParameterKey=BucketName,ParameterValue=my-bucket"
ParameterValue
  • 설명: 파라미터와 연결된 입력 값입니다.

  • 예제

    "ParameterKey=BucketName,ParameterValue=my-bucket"
UsePreviousValue
  • 스택 업데이트 중에는 스택에서 지정된 파라미터 키에 대해 사용 중인 기존 파라미터 값을 사용하세요. true를 지정한 경우 파라미터 값을 지정하지 마십시오.

  • 예제

    "ParameterKey=Asset1,UsePreviousValue=true"

각 스택 세트에는 템플릿 하나와 템플릿 파라미터 세트가 있습니다. 템플릿 또는 템플릿 파라미터를 업데이트하면 전체 세트에 대해 업데이트됩니다. 그러면 변경 내용이 해당 인스턴스에 배포될 때까지 모든 인스턴스 상태가 OUTDATED로 설정됩니다.

예를 들어 템플릿에 값이 prodstage의 파라미터가 포함된 경우 특정 인스턴스의 파라미터 값을 재정의하려면 해당 파라미터의 값을 beta 또는 gamma로 재정의할 수 있습니다.

이 작업을 수행할 때 참조할 수 있는 관련 리소스는 다음과 같습니다.

  • 매개 변수 유형AWS CloudFormation 사용 설명서의 이 참조 장에서는 CloudFormation 템플릿 매개 변수에 대한 자세한 설명과 예를 제공합니다.

  • 모범 사례 - 스택 세트 배포 모범 사례에 대한 자세한 내용은AWS CloudFormation 사용 설명서의 https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-bestpractices.html을 참조하세요.

  • AWS CloudFormation API 참조 — 스택 세트 작업에 사용되는 파라미터에 대한 자세한 내용은 AWS CloudFormation API 참조의 다음 CloudFormation 작업을 참조할 수 있습니다.

    • CreateStackSet작업은 스택 세트를 생성합니다.

    • UpdateStackSet작업은 지정된 계정 및 지역의 스택 세트 및 관련 스택 인스턴스를 업데이트합니다. 스택 세트를 업데이트하여 만든 스택 세트 작업이 완전히 또는 부분적으로, 지정된 실패 허용 오차 미만이나 초과로 실패하더라도 스택 세트는 이러한 변경 사항으로 업데이트됩니다. 지정된 스택 세트에 대한 후속 CreateStackInstances 호출은 업데이트된 스택 세트를 사용합니다.

    • CreateStackInstances작업을 수행하면 자체 관리형 권한 모델의 지정된 모든 계정 내 또는 서비스 관리 권한 모델의 지정된 모든 배포 대상 내에 지정된 모든 지역에 대한 스택 인스턴스가 생성됩니다. 이 작업으로 만든 인스턴스의 파라미터를 재정의할 수 있습니다. 인스턴스가 이미 있는 경우 동일한 입력 CreateStackInstances 파라미터를 UpdateStackInstances 사용하여 호출합니다. 이 작업을 사용하여 인스턴스를 생성할 때 다른 스택 인스턴스의 상태는 변경되지 않습니다.

    • UpdateStackInstances작업을 수행하면 자체 관리형 권한 모델의 지정된 모든 계정 또는 서비스 관리 권한 모델의 지정된 모든 배포 대상 내에 지정된 모든 지역에 대해 스택이 설정되어 스택 인스턴스가 최신 상태로 유지됩니다. 이 작업으로 업데이트된 인스턴스의 파라미터를 재정의할 수 있습니다. 이 작업을 사용하여 인스턴스의 하위 세트를 업데이트할 때 다른 스택 인스턴스의 상태는 변경되지 않습니다.

    • DescribeStackSetOperation작업은 지정된 스택 세트 작업에 대한 설명을 반환합니다.

    • DescribeStackSet액션은 지정된 스택 세트의 설명을 반환합니다.