자체 관리형 권한으로 AWS CloudFormation StackSet 생성 - AWS CloudFormation

자체 관리형 권한으로 AWS CloudFormation StackSet 생성

이 주제에서는 AWS 계정 및 리전에 스택을 배포할 자체 관리형 권한이 있는 StackSet를 생성하는 방법을 설명합니다.

참고

계속하려면 먼저 StackSet를 관리하는 계정과 스택을 배포할 계정 간에 신뢰할 수 있는 관계를 설정하하기 위해 StackSet에 필요한 IAM 서비스 역할을 생성해야 합니다. 자세한 내용은 자체 관리형 권한 부여 섹션을 참조하세요.

자체 관리형 권한으로 StackSet 생성(콘솔)

StackSet를 생성하려면
  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/cloudformation에서 AWS CloudFormation 콘솔을 엽니다.

  2. 화면 상단의 탐색 모음에서 StackSet를 관리할 AWS 리전을 선택합니다.

  3. 탐색 창에서 스택 세트를 선택합니다.

  4. StackSet 페이지의 상단에서 StackSet 만들기를 선택합니다.

  5. 권한에서 셀프 서비스 권한을 선택하고 생성한 IAM 역할을 선택합니다.

  6. 사전 조건 - 템플릿 준비에서 템플릿 준비 완료를 선택합니다.

  7. 템플릿 지정, 아래에서 스택 템플릿을 포함하는 S3 버킷의 URL을 지정하거나 스택 템플릿 파일을 업로드하도록 선택합니다. 그리고 다음을 선택합니다.

  8. StackSet 세부 정보 지정 페이지에서 StackSet의 이름을 제공하고 파라미터를 지정한 후 다음을 선택합니다.

  9. 다음을 선택하여 계속 진행합니다.

  10. StackSet 옵션 구성 페이지의 태그 아래에서 스택의 리소스에 적용할 태그를 지정합니다. AWS에서 태그를 사용하는 방법에 대한 자세한 내용은 AWS 결제 및 비용 관리 사용 설명서Organizing and tracking costs using AWS cost allocation tags를 참조하세요.

  11. 실행 구성에서 활성을 선택하여 CloudFormation의 최적화된 작업 처리를 활성화합니다.

    • 배포 시간을 단축하기 위해, 서로 충돌하지 않는 작업이 동시에 실행됩니다.

    • 서로 충돌하는 작업은 요청된 순서대로 자동으로 대기열에 추가되고 처리됩니다.

    실행 중이거나 대기 중인 작업이 있는 경우 CloudFormation은 충돌하지 않더라도 모든 수신 작업을 대기열에 넣습니다. 이 시간 동안에는 실행 설정을 변경할 수 없습니다.

  12. 템플릿에 IAM 리소스가 포함되어 있는 경우 기능에서 이 템플릿이 IAM 리소스를 생성할 수 있음을 확인합니다를 선택하여 템플릿에서 IAM 리소스를 사용하도록 지정합니다. 자세한 내용은 CloudFormation 템플릿에서 IAM 리소스 승인 섹션을 참조하세요.

  13. 다음을 선택합니다.

  14. 배포 옵션 설정 페이지의 StackSet에 스택 추가에서 새 스택 배포를 선택합니다.

  15. 계정의 경우 Deploy stacks in accounts(계정에 스택 배포)를 선택하십시오. 숫자 여러 개를 쉼표로 구분하여 대상 AWS 계정 번호를 텍스트 상자에 붙여 넣습니다.

    참고

    관리자 계정에도 스택을 배포하려는 경우 해당 계정 ID를 포함하면 됩니다.

  16. 리전 지정에서 스택을 배포하려는 리전을 선택하세요.

  17. 배포 옵션에서 다음을 수행하세요.

    • 최대 동시 계정에서 동시에 처리되는 계정 수를 지정하세요.

    • 내결함성에서 리전당 허용되는 최대 계정 실패 횟수를 지정합니다. 이 한도에 도달하면 작업이 중지되고 다른 리전으로 진행되지 않습니다.

    • 리전 동시성에서 리전을 처리하는 방법(순차: 한 번에 하나의 리전 또는 병렬: 동시에 여러 리전)을 선택하세요.

    • 동시성 모드에서 작업 실행 중에 동시성이 작동하는 방식을 선택하세요.

      • 엄격한 내결함성 - 내결함성 +1의 범위를 유지하면서 장애가 발생하는 경우 계정 동시성 수준을 줄입니다.

      • 소프트한 내결함성 - 장애에 관계없이 지정된 동시성 수준(최대 동시 계정의 값)을 유지합니다.

  18. 다음을 선택합니다.

  19. [검토] 페이지에서 선택 사항을 검토합니다. 변경하려면 관련 섹션에서 편집을 선택합니다.

  20. StackSet를 생성할 준비가 되면 제출을 선택합니다.

    CloudFormation이 StackSet 생성을 시작합니다. 제출을 선택하면 열리는 StackSet 세부 정보 페이지에서 StackSet의 스택 생성 진행률 및 상태를 봅니다.

자체 관리형 권한으로 StackSet 생성(AWS CLI)

이 섹션의 다음 단계를 따라 AWS CLI을 사용합니다.

  • StackSet 컨테이너를 생성합니다.

  • 스택 인스턴스를 배포합니다.

StackSet를 생성하려면
  1. create-stack-set 명령을 사용하여 my-stackset라는 이름의 새 StackSet를 생성합니다. 다음 예에서는 S3 버킷에 저장된 템플릿을 사용하고, KeyPairName 값을 TestKey으로 설정하는 파라미터를 포함합니다.

    aws cloudformation create-stack-set \ --stack-set-name my-stackset \ --template-url https://s3.region-code.amazonaws.com/amzn-s3-demo-bucket/MyApp.template \ --parameters ParameterKey=KeyPairName,ParameterValue=TestKey
  2. create-stack-set 명령이 완료되면 list-stack-sets 명령을 실행하여 StackSet가 생성되었는지 확인합니다. 결과에 새 StackSet가 표시됩니다.

    aws cloudformation list-stack-sets
  3. create-stack-instances 명령을 사용하여 StackSet 내에 스택을 배포합니다. 다음 예에서는 두 리전(us-west-2us-east-1)의 두 AWS 계정(account_ID_1account_ID_2)에 스택을 배포합니다.

    --operation-preferences 옵션을 사용하여 동시 계정 처리 및 기타 배포 기본 설정을 지정하세요. 이 예제에서는 개수 기반 설정을 사용합니다. MaxConcurrentCountFailureToleranceCount + 1을 초과해서는 안 됩니다. 백분율 기반 설정의 경우 대신 FailureTolerancePercentage 또는 MaxConcurrentPercentage를 사용하세요.

    aws cloudformation create-stack-instances \ --stack-set-name my-stackset \ --accounts account_ID_1 account_ID_2 \ --regions us-west-2 us-east-1 \ --operation-preferences MaxConcurrentCount=1,FailureToleranceCount=0

    자세한 내용은 AWS CloudFormation API 참조CreateStackInstances를 참조하세요.

  4. describe-stack-set-operation 명령을 사용하여, 스택이 성공적으로 생성되었는지 확인합니다. --operation-id 옵션에서, create-stack-instances 출력의 일부로 반환된 작업 ID를 지정합니다.

    aws cloudformation describe-stack-set-operation \ --stack-set-name my-stackset \ --operation-id operation_ID